ホスト名を使用してアクセスするマシンの詳細は次のとおりです。
$ hostname
hostname
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 hostname.company.local hostname
これはデフォルトのDebian 6(Squeeze)インストールなので、まだ何もいじっていません。
これは、上記のマシンにアクセスしようとしているマシン(Debian Unstableを実行しているマシン)から取得したものです。
$ ping hostname
ping: unknown Host hostname
$ ping hostname.company.local
ping: unknown Host hostname.company.local
$ cat /etc/resolv.conf
nameserver 192.168.2.21
nameserver 192.168.2.51
search company.local
ローカルネットワークを含むインターネットでは、マシンは IPアドレス で相互に呼び出します。マシンBの名前を使用してマシンAからマシンBにアクセスするには、マシンAにBの名前をそのIPアドレスにマップする何らかの方法が必要です。 Aでマシン名を宣言するには、3つの方法があります。
unix.stackexchange.com
のアドレスを知るためにDNS要求を行うことです。これらが実際に機能する方法はたくさんあります。それらすべてをカバーすることは不可能です。この回答では、いくつかの一般的な状況について説明します。
Hostsファイル方式には、特別な方法を必要としないという利点があります。複数のマシンがある場合は、1つのマシンの名前が変更されたときにすべてのマシンを更新する必要があるため、面倒な場合があります。 BのIPアドレスが動的に割り当てられる場合(ネットワークに接続するたびに異なるアドレスが取得されるようにする場合)は適していません。
ホストファイルは、名前をIPアドレスにマッピングする行の単純なリストです。次のようになります。
127.0.0.1 localhost localhost.localdomain
198.51.100.42 darkstar darkstar.bands
UNIXシステムでは、hostsファイルは/etc/hosts
です。 Windowsではc:\windows\system32\drivers\etc\hosts
です。インターネットに接続できるほぼすべてのオペレーティングシステムに同様のファイルがあります。 ウィキペディアにはリスト があります。
AのhostsファイルにBのエントリを追加するには:
BのIPアドレスを確認します。Bで、コマンドifconfig
を実行します(コマンドが見つからない場合は、/sbin/ifconfig
を試してください)。出力には次のような行が含まれます。
eth1 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
inet addr:10.3.1.42 Bcast:10.3.1.255 Mask:255.255.255.0
この例では、BのIPアドレスは10.3.1.42です。複数のinet addr:
行がある場合は、ネットワークカードに対応する行を選択し、lo
エントリ、トンネル、または仮想エントリは選択しないでください。
/etc/hosts
を編集する必要があります。 システム管理者(root) としてコマンドを実行する方法を参照してください。この方法は、必要な機器があれば、はるかに簡単です。 1つのデバイスを構成するだけで、すべてのコンピューターが互いの名前を認識します。この方法は、コンピューターが [〜#〜] dhcp [〜#〜] を介してIPアドレスを取得することを前提としています。これは、コンピューターが通信網。 DHCPが何であるかがわからない場合は、おそらくDHCPで解決できます。
ネットワークに home router がある場合、そのルーターに接続されているマシンの名前を構成するのに最適な場所です。まず、Bの MACアドレス を把握する必要があります。各ネットワークデバイスには一意のMACアドレスがあります。 Bで、コマンドifconfig -a
を実行します(コマンドが見つからない場合は、/sbin/ifconfig -a
を試してください)。出力には次のような行が含まれます。
eth1 Link encap:Ethernet HWaddr 01:23:45:67:89:ab
この例では、MACアドレスは01:23:45:67:89:ab
です。ケーブルを介してルーターに接続されているネットワークポートに対応するHWaddr行を選択する必要があります(または、wifiで接続している場合はwifiカード)。複数のエントリがあり、どれがどれかわからない場合は、ケーブルを差し込み、IPアドレスを受信するネットワークデバイスを確認します(すぐ下のinet addr
行)。
次に、ルーターのWebインターフェイスで、「DHCP」などの設定を探します。設定の名前と場所はルーターモデルに完全に依存しますが、ほとんどの場合、基本的な設定のセットが類似しています。 Tomatoファームウェア では次のようになります。
MACアドレス、IPアドレス、目的の名前を入力します。ローカルネットワークのアドレス範囲で任意のIPアドレスを選択できます。ほとんどのホームルーターは、192.168 .x .yまたは10 .x .yの形式のアドレス範囲に事前構成されています。 = .z。たとえば、上記のTomatoルーターの[ネットワーク]タブには、値10.3.0.1の「ルーターIPアドレス」設定と、値255.255.255.0の「サブネットマスク」設定があります。ローカルネットワークには、10.3.0 .zの形式のアドレスが必要です。自動的に割り当てられるDHCPアドレスのアドレス範囲もあります(10.3.0.129–10.3.0.254)。手動で割り当てられたDHCPアドレスについては、この範囲にないものを選択してください。
Bをネットワークに接続すると、指定したIPアドレスが取得され、ネットワーク内の任意のマシンから指定した名前で到達できるはずです。
対応するホームルーターがない場合は、どのLinuxマシンでも同じ機能を設定できます。 Dnsmasq を使用して [〜#〜] dns [〜#〜] を設定する方法を説明します。他にも多くの同様のプログラムがあります。 Dnsmasqを選択した理由は、構成が簡単で軽量なためです(たとえば、上に示したTomatoルーターがそれを使用しているためです)。 Dnsmasqは、PC、サーバー、ネットワーク機器向けのほとんどのLinuxおよびBSDディストリビューションで使用できます。
常にオンで、静的IPアドレスがあり、何らかのLinuxまたはBSDを実行しているコンピューターを選択します。 S(サーバー用)としましょう。 Sに、dnsmasq
パッケージをインストールします(まだない場合)。以下では、設定ファイルが/etc/dnsmasq.conf
であると想定します。場所はディストリビューションによって異なる場合があります。次に、いくつかのことを行う必要があります。
/etc/hosts
に名前とIPアドレスを入力し(上記の「Hostsファイル」セクションを参照)、/etc/dnsmasq.conf
にno-hosts
ディレクティブのコメントを解除しないようにすることです。 (#
で始まる行はコメント化されています。)別のファイルに名前を入れることができます。使用する場合は、addn-hosts=/path/to/hosts/file
に/etc/dnsmasq.conf
を追加します。インターネット上のマシンの名前のIPアドレスを取得する方法をDnsmasqに伝えます。
resolvconf
パッケージをインストールします。ほとんどの場合、すべてがそのまま機能します。ネットワーク管理者またはISPからDNSサーバーのアドレスが提供されている場合は、それらを/etc/dnsmasq.conf
に入力します。次に例を示します。
server=8.8.8.8
server=8.8.4.4
現在のDNS設定がわからない場合は、/etc/resolv.conf
ファイルを確認してください。 nameserver 8.8.8.8
のような行が表示された場合は、server=8.8.8.8
に/etc/dnsmasq.conf
を挿入します。 /etc/dnsmasq.conf
を変更したら、Dnsmasqを再起動します。そのためのコマンドは、ディストリビューションによって異なります。一般的な可能性には、restart dnsmasq
または/etc/init.d/dnsmasq restart
が含まれます。
/etc/resolv.conf
を編集し(rootとして)、すべてのnameserver
行を削除し、代わりにnameserver 127.0.0.1
を挿入します。resolvconf
パッケージをインストールすると、/etc/resolv.conf
は最適ではなくなる可能性があります。 /etc/resolvconf/resolv.conf.d/
ディレクトリ内のファイルbase
、head
、tail
にnameserver
エントリが含まれていないことを確認してから、resolvconf -u
(ルートとして)。/etc/resolv.conf
を編集し、すべてのnameserver
行を単一のnameserver 10.3.0.2
に置き換えます。ここで10.3.0.2はSのIPアドレスです(SのIPアドレスを確認する方法については上記を参照)。Dnsmasqを [〜#〜] dhcp [〜#〜] サーバーとして使用して、マシンがその名前に対応するアドレスを自動的に取得できるようにすることもできます。これはこの回答の範囲を超えています。 Dnsmasqのドキュメントを参照してください(難しくありません)。特定のローカルネットワーク上に存在できるDHCPサーバーは1つだけであることに注意してください(ローカルネットワークの正確な定義はこの回答の範囲外です)。
これまでのところ、ローカルネットワークを想定しています。世界の別の場所にあるマシンに名前を付けたい場合はどうでしょうか? DHCPに関連する部分がローカルネットワーク内でのみ適用可能であることを除いて、上記の手法のいずれも引き続き使用できます。あるいは、マシンにパブリックIPアドレスがある場合は、それらに独自のパブリック名を登録できます。 (プライベートIPアドレスをパブリック名に割り当てることもできます。これはあまり一般的ではなく、あまり役に立ちませんが、技術的な問題はありません。)
独自の ドメイン名 を取得し、このドメイン内のホスト名にIPアドレスを割り当てることができます。ドメイン名プロバイダーにドメイン名を登録する必要があります。通常、これは年間10〜15ドルかかります(最も安価なドメインの場合)。ドメイン名プロバイダーのWebインターフェイスを使用して、ホスト名にアドレスを割り当てます。
マシンに動的IPアドレスがある場合、 動的DNS プロトコルを使用して、アドレスが変更されたときにマシンの名前に関連付けられたIPアドレスを更新できます。すべてのドメイン名プロバイダーが動的DNSをサポートしているわけではないため、購入する前に購入してください。個人使用の場合、 No-IP は、独自のドメイン(example.ddns.net
など)を使用している場合、無料のダイナミックDNSサービスを提供します。
マルチキャストDNS (mDNS)を使用します。これは、LANサブネットで機能するゼロ構成プロトコルです。サーバーは必要ありません。 .local
TLD(すでに使用しているもの)。
あなたが尋ねているので、他のすべてはやり過ぎのようです。そうでない場合は、おそらく質問しないでしょう。
vi /etc/dhcp3/dhclient.conf
send Host-name "ubuntu-laptop";
そして
/etc/init.d/networking restart
コンピュータは、どのホスト名がどのIPアドレスに属しているかを魔法のように知っているだけではありません。 localhostであっても、何らかの検索が行われます。
ある種の名前検索サービスを使用するには、他のシステムを構成する必要があります。これは/etc/hosts
クライアント、LDAP、nsswitch、または通常のDNSサーバー。私はbind
を使用して、ローカルドメイン内のすべてのローカルマシンを入力し、そのサイトのDNSを提供します。
ホストファイルをいじりたくない場合で、インターネットドメイン名とインターネットアクセスを所有している場合は、内部IPを指すA
タイプのサブドメインを作成できます。たとえば、intranet-pc1.someperson.com
をセットアップし、10.0.1.13
をポイントします。