ホスト名を使用してアクセスするコンピュータの詳細は次のとおりです。
$ 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
答え1
ローカルネットワークを含むインターネットでは、マシンは以下を介して互いに呼び出します。IPアドレス。システムBの名前を使用してシステムAからシステムBにアクセスするには、システムAにはBの名前を対応するIPアドレスにマッピングする方法が必要です。 Aでシステム名を宣言する方法は3つあります。
- ㅏホストファイル。これは、名前をアドレスにマップする単純なテキストファイルです。
- これドメインネームシステム(DNS)。これはグローバルインターネットで使用される方法です。たとえば、ブラウザにこのページを読み込むと、コンピュータが最初にすることはアドレスを見つけるためにDNS要求をすることです
unix.stackexchange.com
。 - 次のような他の名前データベース国家庭園、LDAPまたはアクティブディレクトリ。これは一部の企業ネットワークで使用されますが、頻繁には使用されません(ユーザーデータベースとしてNIS、LDAP、またはADを使用する多くのネットワークはコンピュータ名にDNSを使用します)。ネットワークでこれらのいずれかを使用している場合は、プロのネットワーク管理者に何をすべきかを尋ねる必要があります。
実際にはさまざまな方法で発生する可能性があります。これをすべて扱うことは不可能です。この回答では、いくつかの一般的なシナリオについて説明します。
ホストファイル
ホストファイルのアプローチの利点は、特別な方法が必要ないことです。名前が変更されると各システムを更新する必要があるため、複数のシステムがある場合は問題になる可能性があります。これは、BのIPアドレスが動的に割り当てられている場合(ネットワークに接続するたびに別のIPアドレスを取得するため)には適していません。
ホストファイルは、名前をIPアドレスにマップする簡単な行のリストです。次のようになります。
127.0.0.1 localhost localhost.localdomain
198.51.100.42 darkstar darkstar.bands
Unixシステムでは、ホストファイルはです/etc/hosts
。 Windowsではですc:\windows\system32\drivers\etc\hosts
。インターネットに接続できるほとんどすべてのオペレーティングシステムには同様のファイルがあります。Wikipediaにリストがあります。
A のホストファイルに 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
- Aでホストファイルを編集します。 AがUnixシステムを実行している場合は、
/etc/hosts
スーパーユーザーとして編集する必要があります。システム管理者(root)でコマンドを実行する方法。
家庭または小規模オフィスネットワークのDHCP + DNS
必要な機器があれば、この方法が最も簡単です。 1つのデバイスのみを設定すると、すべてのコンピュータがお互いの名前を知ることができます。この方法では、コンピュータが以下を介してIPアドレスを取得すると仮定します。動的ホスト構成プロトコル、コンピュータがネットワークに接続されたら、IPアドレスを自動的に取得する方法です。 DHCPが何であるかわからない場合は、おそらく知っているでしょう。
ネットワークに以下がある場合ホームルーター、このルーターに接続されているコンピューターの名前を構成するのに最適な場所です。まず、調べる必要があります。MACアドレスB.各ネットワークデバイスには一意の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
。ケーブル(またはWi-Fi経由で接続されている場合はWi-Fiカード)を介してルーターに接続されているネットワークポートに対応するHWaddrラインを選択する必要があります。項目が複数あり、どの項目がわからない場合は、ケーブルを接続し、どのネットワークデバイスがIPアドレスを受信しているかを確認してください(inet addr
下の行)。
ここで、ルーターのWebインターフェイスで「DHCP」などの設定を見つけます。設定の名前と場所は完全にルーターのモデルによって異なりますが、ほとんどのルーターには同様の基本設定があります。これが に見える様子ですトマトファームウェア:
MACアドレス、IPアドレス、必要な名前を入力してください。ローカルネットワークアドレス範囲内のすべてのIPアドレスを選択できます。ほとんどのホームルータは、192.168.168形式のアドレス範囲で事前設定されています。X。ワイまたは 10.X。ワイ。ジ。たとえば、上記の Tomato ルーターの [ネットワーク] タブには、値 10.3.0.1 のルーター IP アドレス設定と値 255.255.255.0 のサブネットマスク設定があります。これはコンピュータのローカルアドレスを意味します。コンピュータのネットワークは10.3.0形式でなければなりません。ジ。自動的に割り当てられたDHCPアドレス範囲(10.3.0.129〜10.3.0.254)もあります。手動で割り当てられたDHCPアドレスの場合は、この範囲外のアドレスを選択してください。
Bをネットワークに接続すると、指定したIPアドレスを取得し、指定した名前のネットワーク上のすべてのコンピュータからアクセスできるようになります。
Dnsmasqを使用して独自のDNSサーバーを作成する
強力なホームルータがない場合は、すべてのLinuxコンピュータで同じ機能を設定できます。使い方を説明します。DNS設立するドメイン名システム。同様のプログラムがたくさんあります。設定が簡単で軽いので、Dnsmasqを選択しました(たとえば、上記のTomatoルータで使用されています)。 Dnsmasqは、PC、サーバー、およびネットワークデバイス用のほとんどのLinuxおよびBSDディストリビューションで利用できます。
一種のLinuxまたはBSDを実行している静的IPアドレスを持つ常時接続コンピュータを選択します。これをS(サーバー)と呼びます。 Sでは、dnsmasq
パッケージがまだ存在しない場合はパッケージをインストールします。以下では、設定ファイルが/etc/dnsmasq.conf
一部のディストリビューションによって異なる場合があります。さて、いくつかのことをする必要があります。
- インターネットから取得したホスト名に加えて、ホスト名を提供するようにDnsmasqに指示してください。最も簡単な方法は、名前とIPアドレス
/etc/hosts
(上記の「ホストファイル」セクションを参照)を入力し、ディレクティブのコメントが解除されていないことを/etc/dnsmasq.conf
確認することですno-hosts
。 (aで始まる行はコメントアウトさ#
れます。)名前を別のファイルに入れることができます。addn-hosts=/path/to/hosts/file
/etc/dnsmasq.conf
Dnsmasqにインターネットからコンピュータ名のIPアドレスを取得する方法を教えてください。
- Debian、Ubuntu、または派生製品を実行している場合は、この
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
1つを入力してください。変更後、Dnsmasqを再起動してください。これを行うコマンドは分布によって異なります。一般的な可能性にはまたはが含まれます。server=8.8.8.8
/etc/dnsmasq.conf
/etc/dnsmasq.conf
restart dnsmasq
/etc/init.d/dnsmasq restart
- Debian、Ubuntu、または派生製品を実行している場合は、この
- すべてのホスト名要求に対して Dnsmasq サービスを使用するように S に指示します。ファイルを
/etc/resolv.conf
rootとして編集し、各行nameserver
を削除してからnameserver 127.0.0.1
。- Debian または Ubuntu で resolvconf を使用している場合は、ネットワークが
/etc/resolv.conf
稼働しているときにパッケージをインストールするのが最適ではない可能性があります。 filesディレクトリにエントリが含まれていないことをresolvconf
確認してから(rootとして)実行します。base
head
tail
/etc/resolvconf/resolv.conf.d/
nameserver
resolvconf -u
- Debian または Ubuntu で resolvconf を使用している場合は、ネットワークが
- 他のコンピュータにSをDNSサーバーとして使用するように指示します。
/etc/resolv.conf
すべての行を編集しnameserver
、10.3.0.2がSのIPアドレスである単一行に置き換えますnameserver 10.3.0.2
(SのIPアドレスを見つける方法については上記を参照)。
Dnsmasq を次のように使用することもできます。動的ホスト構成プロトコルコンピュータがその名前に対応するアドレスを自動的に取得できるようにするサーバー。これはこの回答の範囲外です。 Dnsmasqのドキュメントを確認してください(難しいことではありません)。特定のローカルネットワークには1つのDHCPサーバーしかありません。ローカルネットワークの正確な定義は、この回答の範囲外です。
グローバルインターネットの名前
これまではローカルネットワークを想定していました。世界の他の場所にある機械の名前を指定したい場合はどうすればよいですか?上記の技術の1つは引き続き使用できますが、DHCPに関連する部分はローカルネットワークにのみ適用されます。または、コンピュータにパブリックIPアドレスがある場合は、そのアドレスの一意のパブリック名を登録できます。 (個人のIPアドレスをパブリック名に割り当てることもできます。これはあまり一般的であり、あまり便利ではありませんが、技術的な問題はありません。)
あなた自身のドメイン名を入手してください
あなたは自分自身を得ることができますドメイン名そして、ドメイン内のホスト名にIPアドレスを割り当てます。ドメイン名をドメインプロバイダに登録する必要があります。費用は通常年間10〜15ドルです(最も安価なドメインの場合)。ドメイン名プロバイダの Web インターフェイスを使用して、ホスト名にアドレスを割り当てます。
動的ドメイン名の解決
コンピュータに動的IPアドレスがある場合は、次のものを使用できます。動的ドメイン名の解決アドレスが変更されたときにコンピュータ名に関連付けられているIPアドレスを更新するためのプロトコル。すべてのドメイン名プロバイダーが動的DNSをサポートしているわけではないので、購入する前に調査してください。個人的な用途にはIPなしexample.ddns.net
たとえば、独自のドメイン名を使用している場合は、無料の動的DNSサービスが提供されます。
答え2
使用マルチキャストDNS(mDNS).これは、LANサブネットで機能する構成を必要としないプロトコルです。サーバーは必要ありません。.local
すでに使用しているTLDを使用してください。
あなたが尋ねているので、他のすべてが多すぎるようです。そうでなければ、おそらく尋ねません。
PS:.local
TLDはリゾルバのDNS検索パスを介して暗示される可能性があり、実装によっては、OS固有のホスト名の概念でドメイン全体が自動的に設定される可能性があります(したがって、どのようにホスト名を変更する必要もない場合があります)。たとえば、ホスト名をLANサブネットで解決またはsvr
確認する必要があるsvr.local
場合です。svr
答え3
〜のようにテネ提案、マルチキャストDNS(mDNS)は、同じローカルネットワークでのみコンピュータにアクセスしたい限り、最も簡単な解決策のようです。
Linuxでは、mDNSを使用してホスト名をネットワークにエクスポートできます。あふれ。 Ubuntu Server 20.04にインストールするにはapt install avahi-daemon
。
これにより、次のようにサーバーにアクセスできます。hostname.local
答え4
コンピュータは、どのホスト名がどのIPアドレスに属しているかを魔法のように知っているわけではありません。 localhostでも一種の照会が必要です。
サービスを照会するには、特定の名前を使用するように別のシステムを構成する必要があります。これは/etc/hosts
、クライアント、ldap、nsswitch、または一般的なDNSサーバーに存在できます。ローカルドメイン内のすべてのローカルコンピュータを使用しbind
て入力し、サイトにDNSサービスを提供するようにしました。