今のWindowsでも使うことができるhostsファイル
80年代後半、TCP/IPを使うコンピュータでは、LAN内のマシンのIPアドレスとホスト名を記述したhostsファイルを使って、LAN内のホストの「名前解決」をしていた。ドメイン名システムは存在していたが、インターネット側に公開するホストの名前解決のみをして、LAN内でのみ使われるホストの名前解決には使われていなかった。
実用面から言えば、追加されるホストが必ずしも何らかのサービスを提供しているわけではないので、1週間程度の周期でhostsファイルを更新しても大きな問題は無かった。
このhostsファイルは、現在のWindows 11でも有効である。hostsファイルを使うことで、起動直後から名前解決ができるなどのメリットがあるからだ。
なぜ今更hostsファイルなのかというと、IPoEで割り当てられたグローバルアドレスを、外出先で名前解決するのにhostsファイルが利用できるからだ。更新の頻度が高くないので、hostsファイルを作って、各マシンにコピーすれば、外出先からOpenSSHなどを使って、自宅マシンにアクセスできる。今回はこの利用方法に即してhostsファイルを解説する。
hostsファイルを編集する
hostsファイルは、Windows 11では「c:\windows\System32\drivers\etc\」にある。デフォルトでは、localhostぐらいしか登録されていないが、Docker Desktopをインストールすると、関連のホストが登録されることがある。ここにLAN内のホストのIPv6アドレスを登録しておく。ホスト名はWindowsと同じものにせず、後ろに「v6」を付けるなど、対象ホスト名から容易に推測できるものにしておく。
Windowsと同じホスト名を付けてしまうと、LAN内でのWindowsの名前解決が混乱してしまう。hostsファイルの目的は、外出先など、自宅のLANに接続していないときに、OpenSSHなどの宛先ホストの名前解決をするためだ。なので、覚えやすい名前であれば構わない。なお、hostsファイルでは、1つのIPアドレスに複数のホスト名(ホスト名のエイリアス)をつけて構わない。
hostsファイルでは、1行で1つのIPアドレスとホスト名を対応させる。具体的には、
IPアドレス␣ホスト名
という行を追加することでホスト名とIPアドレスが登録できる。IPv6アドレスを使うなら、
2001:0db8:c4aa:c86:2180:97a9:10ba:8596 myhostv6 myhostaliasv6
などとする。IPアドレスの後ろは、スペースでホスト名を区切るが、タブでも複数のスペースでも構わない。また、ホスト名の後ろにスペースで区切って、ホストの別名(エイリアス)を定義することもできる。どちらの名前でも指定したIPアドレスで名前解決がされる。
なお、PowerToysには、hostsファイルエディターがある。入力の手間は普通に入力するのと大きく違うわけではないが、トグルスイッチを使ってのエントリの無効化(注釈化)ができるなどのメリットがある。
各ホストでのIPv6アドレスを調べる方法は、ipconfig.exeの出力を見るか、過去記事(「Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法」)を参考にしてほしい。
Windowsでのhostsファイルの扱い
hostsファイルは、起動時に読み込まれて、WindowsのDNSキャッシュに入る。これにより、Windows内での名前解決にhostsの情報が使われる。その状態を見るには、
ipconfig /displaydns
とする。
hostsファイルを書き換えたあとは、Windowsを再起動してもいいが、DNSキャッシュをフラッシュして、再度登録することもできる。その場合は
ipconfig.exe /flush
ipconfig.exe /registerdns
とする。
この連載の記事
-
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ