
私は普段からLinuxのhostsファイルについて言及しており、誰もがその内容を知っていると思っています。しかし、時々、Linux初心者で基本的な知識が必要な人がいることを思い出すような質問を受けることがあります。
参照:知っておくべきオープンソースと Linux の用語 40 選 (TechRepublic Premium)
hostsファイルは、Linux初心者にとって非常に便利なだけでなく、重要な概念を理解するのに役立つため、入門編として最適です。そこで、hostsファイルの概要と編集手順を一つずつ解説していきます。
準備はいいですか? さあ、始めましょう。
必要なもの
hosts ファイルを操作するには、実行中の Linux インスタンス (ディストリビューションは問いません) と sudo 権限を持つユーザーが必要です。
Scala HostingがマネージドVPSでアプリケーションやウェブサイトのホスティングにどのように役立つかをご覧ください
Linux の hosts ファイルとは何ですか?
簡単に言うと、hostsファイルはホスト名をIPアドレスにマッピングするための手段です。これは特定の設定において非常に重要であり、Linuxでのネットワーク接続を少し楽にするためにも役立ちます。ある意味では、hostsファイルはローカルDNSサーバーとして機能します。
ローカルLAN内のLinuxマシンに請求書管理システム「InvoicePlane」を導入したとします。InvoicePlaneをホストするマシンのIPアドレスは192.168.1.11で、このサービスにアクセスするにはユーザーは「192.168.1.11/invoiceplane」と入力する必要があります。このIPアドレスをより標準的なアドレス(例えばwww.invoiceplane.net)にマッピングし、ユーザーがIPアドレス(多くの人は覚えにくいものです)を入力する手間を省くことができたらどうでしょうか?
あるいは、Kubernetes クラスターをデプロイするとします。このようなクラスターをデプロイするプロセスの一部として、コントローラーとノードを hosts ファイルにマッピングする必要があります。
ホスト ファイルを詳しく調べて、それがどのように機能するかを確認しましょう。
Linuxでhostsファイルを開いて編集する方法
まず最初に、hostsファイルを開いて編集します。これはコマンドラインから行うので、Linuxサーバーにログインするか、Linuxデスクトップでターミナルウィンドウを開いてください。nanoエディタを使用します(この作業にはnanoエディタが最もシンプルなツールです)。hostsファイルは/etc/ディレクトリに保存されており、保護されているため、sudo
コマンドを使ってユーザーの権限を昇格させる必要があります。ファイルを編集用に開くには、以下のコマンドを実行します。
sudo nano /etc/hosts
ユーザーパスワードの入力を求められます。ユーザーパスワードを正しく入力すると、hostsファイルが開き、編集できるようになります(図A)。
図A

hostsファイルの最初のエントリは常にローカルホスト(ローカルマシン)専用です。私の例では、localhostは2つの異なる方法で表現されています。
127.0.0.1 hive
::1 localhost
127.0.0.1 は、localhost アドレスまたはループバックアドレスと呼ばれ、すべてのコンピューター (Linux、macOS、Windows) で使用されます。最初の行 (127.0.0.1 localhost) は、ループバックアドレスを localhost という名前にマッピングします。そのため、 または のどちらかを使用してローカルマシンに ping を実行できますping 127.0.0.1
。hostsping localhost
にアドレスをマッピングしているため、どちらのコマンドでもローカルマシンに ping を実行できます。また、IPv6 アドレス ::1 を localhost にマッピングしているため、同じことが当てはまります。
では、新しいエントリを作成しましょう。上記の例の1つを使用します。IPアドレス192.168.1.11をホスト名invoiceplaneとFQDN www.invoiceplane.netにマッピングします。なお、ドメインinvoiceplane.netは私の所有物ではなく、また、このドメインは何も解決されません。invoiceplane.lanを使用することもできますが、Webブラウザで問題が発生します。
ホスト ファイルの下部に、次の行を追加します (LAN 上の IP アドレス/サーバーに変更します)。
192.168.1.11 invoiceplane
www.invoiceplane.net
完成したファイルは図 Bのようになります。
図B

ファイルを保存して閉じるには、Ctrl + X のキーボードの組み合わせを押し、y と答えて保存します。
変更内容をテストしてみましょう。ターミナルから、以下のコマンドでサーバーにpingを実行してください(LAN上のIPアドレス/サーバー名に変更してください)。
ping 192.168.1.11
ping invoiceplane
ping www.invoiceplane.net
結果は同じで、どのアドレスを使用しても、ローカル マシンは LAN 上のリモート マシンにアクセスできるようになります。
ウェブブラウザを開き、IPアドレスを入力する代わりに、マッピングされたアドレス www.invoiceplane.net を入力することもできます(hostsファイルに追加した内容に応じて変更してください)。私の場合、ブラウザのアドレスバーに www.invoiceplane.net/invoiceplane と入力すると(InvoicePlaneインスタンスはApacheドキュメントルートのinvoiceplaneディレクトリから提供されているため)、InvoicePlaneインスタンスにアクセスできます。キーボードでEnterキーを押すと、アドレスが自動的に www.invoiceplane.net/invoiceplane から 192.168.1.11/invoiceplane に変更されることに注意してください。これは想定内の動作です。hostsファイルの唯一の目的は、ホスト名/ドメイン名をIPアドレスにマッピングすることです。アドレスが解決されると、アドレスバーのアドレスも変更されます。
Linuxのhostsファイルには、必要な数のアドレスマッピングを追加できます。上記の手順を守れば、すべて問題なく動作するはずです。
Linuxのhostsファイルの使い方は以上です。マッピングを楽しんでください!
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube でTechRepublic の How To Make Tech Work を購読してください。