|
今回は/etc/hostsファイルについて書こうと思います。UNIXユーザーならご存知のとおり/etc/hostsはIPアドレス対ホスト名の静的なマッピングファイルです。ここにIPアドレスとホスト名を記述しておけばホストを指定する際にIPアドレスを使わずに済むということです。例えば/etc/hostsに
200.200.200.200 www.hogeohoge.com
100.100.100.100 server
などと書いておけばpingを打つ際に
ping www.hogehoge.com
ping server
とホスト名で指定できます。www.hogehoge.comのようなFQDNはDNSサーバーが名前解決してくれるのであまり使うことは無いと思いますが、小規模なLAN(例えばうち)でしょっちゅうssh、ping、ftp、scpする時に毎回192.168.〜〜と打つのは結構面倒なものです。我が家はゲートウェイマシン兼色々サーバーにLinuxサーバーを使っているのでMacOSXのターミナルからも「ping
linux」のように省略して打ちたいと考えていました。が、理由は知りませんがMacOSXでは/etc/hostsを編集してもホスト名を認識してくれません。
[localhost:~] root# cat /etc/hosts
127.0.0.1 localhost
192.168.1.254 linux <<これ
255.255.255.255 broadcasthost
として
[localhost:~] root# ping linux
ping: unknown host linux
「そんなホストは知らん」と言われます。ずーっと解決策が分からないままで、最終的にはDNSサーバーをLinuxで動かそうか考えていたのですがついに解決策がわかりました。多分これはNetInfo系を知っている人にとっては常識だと思うんですが検索してもなかなか見つからなかったのでこの機会に解説します。
| まずは/Application/Utilities/NetInfo Managerを立ち上げます。うさん臭いFinderみたいなのが立ち上がり色々なオブジェクトがありますが今回必要なのは/machinesの部分だけです。素ユーザーでログインしている場合はroot権限を得るためにドメイン>セキュリティ>認証を選びパスワードを入力します。 |
 |
| 次に/machinesを選択した状態でディレクトリ>から新規のサブディレクトリを選びます。このディレクトリにプロパティを追加していきます。
|
 |
| 「new_directory」というのが出来るので下のプロパティシートの「name」の値にに登録したいホスト名を入れます。うちの場合は「linux」でやっています。 |
 |
| 「新規のプロパティ」を選び新しいオブジェクトを追加します。プロパティの名前を「ip_address」にして、値を入れるためにそのオブジェクトを選択した状態で「値の挿入」を選びます。 |
 |
| 値にはそのホストのIPアドレスを追加します。 |
 |
別のディレクトリをクリックしたりアプリを終了しようとするとNetInfoデーターベースに保存していいかと訪ねられますのでOKを選びます。
これで作業は終わりです。ためしにpingを打ってみましょう。
[localhost:~] root# ping linux
PING linux (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: icmp_seq=1 ttl=255 time=0.58 ms
ばっちり。
作業が面倒なので/etc/hostsでも出来るようにして欲しいのですよね。技術的なことはあまりわからないのですがこれくらいできそうですよねぇ・・・どうなんでしょ?
ちなみにシングルユーザーモードであれば/etc/hostsを認識してくれるという話を聞いたことがあります。
あとコマンドからであればsudo niload hosts . < [filename] でもいいらしいです。これを/etc/hostsにすりゃばっちりだと思う。
|