ルーターとモデムを使用して、VerizonなどのISPから小さな場所にローカルWi-Fiネットワークを設定すると、ネットワーク内のマシンにプライベートIPアドレスが割り当てられます。
このようなローカルWi-Fiネットワークでは、ssh name@<hostname>
別のコンピューターのSSHサーバーにアクセスするには<hostname>
、 どこ <hostname>
は、コマンドhostname
の出力です。 hostname
の出力は、一部のDNSサーバー(おそらくルーター上)によってプライベートIPアドレスに解決されていますか?
しかし、私は hostname
の出力はDNSによるホスト名解決とは無関係 だと聞きました。では、なぜssh name@<hostname>
、 どこ <hostname>
はコマンドhostname
の出力ですか。
ここで機能しているメカニズムがいくつかあります。
まず、システムはローカルに構成されたホスト名をDHCPクライアント識別子として含めることが多く、ルーター(DHCPおよびDNSサーバーでもあります)は、その要求に対して提供したIPと一致するクライアントIDのDNSレコードを動的に追加します。
もう1つの可能性のあるケースは、システムがローカルで構成されたホスト名をマルチキャストDNSサービスディスカバリ(macOSのBonjourサービスまたはLinuxのavahiデーモンを介して)を使用してアドバタイズし、多くの最新のディストリビューションがデフォルトでNSSルックアップチェーンにmDNSを含めることです。
Ns [myvarname]を使用するLinuxシステムは、getaddrinfo
/gethostbyname
を使用すると、現在構成されているローカルホスト名(一部のシステムでは/ etc/hostnameに由来する)を解決します。 nss-myhostnameのないシステムは、通常、/etc/hosts
、ローカルホスト名をそのように解決します。
具体的にDNSルックアップを行う場合(たとえば、nslookup
またはDig
を使用)、nssをバイパスし、dnsのみを使用するため、nss-myhostnameは結果に影響を与える可能性がありません。
お望みならば ssh@<hostname>
他のデバイスから機能するには、ホスト名がDNSで解決されるか、または/etc/hosts
これらのデバイス。