ホスト名を使用してLANからコンピュータにアクセスする方法

ホスト名を使用してLANからコンピュータにアクセスする方法

ホスト名を使用してアクセスするコンピュータの詳細は次のとおりです。

$ 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 のエントリを追加するには:

  1. 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

  2. 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.81つを入力してください。変更後、Dnsmasqを再起動してください。これを行うコマンドは分布によって異なります。一般的な可能性にはまたはが含まれます。server=8.8.8.8/etc/dnsmasq.conf/etc/dnsmasq.confrestart dnsmasq/etc/init.d/dnsmasq restart

  • すべてのホスト名要求に対して Dnsmasq サービスを使用するように S に指示します。ファイルを/etc/resolv.confrootとして編集し、各行nameserverを削除してからnameserver 127.0.0.1
    • Debian または Ubuntu で resolvconf を使用している場合は、ネットワークが/etc/resolv.conf稼働しているときにパッケージをインストールするのが最適ではない可能性があります。 filesディレクトリにエントリが含まれていないことをresolvconf確認してから(rootとして)実行します。baseheadtail/etc/resolvconf/resolv.conf.d/nameserverresolvconf -u
  • 他のコンピュータに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サービスが提供されます。

おすすめ記事