web-dev-qa-db-ja.com

Arch Linuxで.localホスト名を使用するにはどうすればよいですか?

UbuntuまたはLinux Mintを使用している場合(私が試したことのある2つのフレーバーで確実に機能することがわかっている場合)、次のように実行できます。

wayne@myhost$ ssh [email protected]

また、名前は、ローカルネットワーク上のotherhostのIPが何であっても自動的に解決されます。

他のディストリビューションへの分岐を開始することに決め、Archをラップトップで実行しました。ただし、前のコマンドを使用するとCould not resolve hostname otherhost.local: Name or service not known

この種の自動名前解決(?)を実行するには何が必要ですか?

18
Wayne Werner

ウェイン自身の答えは今ではかなり古いです。 Archはそれ以来、initスクリプトの代わりにsystemdを使用するように切り替えました。 Archウィキの Avahi ページが更新され、以下の手順が必要な理由の詳細が含まれています。つまり、Avahiはzeroconfツールです。つまり、LANのすべてのマシンにインストールすると、Avahiは設定する必要がありませんが、残りのソフトウェアを設定して、実際にAvahiに情報を要求する必要があります。

これらをrootとして実行するか、必要に応じてターミナルでSudoを前に付加し、nanoを任意のエディターに置き換えます。

  1. pacman -S avahi nss-mdns AvahiサービスデーモンとマルチキャストDNSリゾルバーをインストールします。
  2. nano /etc/nsswitch.confこのファイルは、Cライブラリにネームサービス情報を取得する方法を伝えます。
  3. 行を変更hosts: files dns myhostnameからhosts: files mdns_minimal [NOTFOUND=return] dns myhostname、 保存して終了。
  4. systemctl start avahi-daemonすでに起動しているため、Avahiサービスを手動で開始します。エラーがないか確認してください)
  5. systemctl enable avahi-daemon起動時にAvahiサービスを有効にします。

私はArchラップトップでこれらの手順を実行しただけで、他のマシンが数秒以内にそれを検出し、ラップトップにサービスを検出させるために、他のサービスやwifiインターフェイスを再起動する必要はありませんでした。

まだgggの答えにはコメントできないので、ここではスタートアップスクリプトでこれを行う必要がないことを指摘したいと思います。それがsystemdでサービスを有効にするためのものです。一度やって、それを忘れてください。

15
TwoD

Ulrich DangelからのAvahiに関する Arch Wiki 記事へのポインターのおかげで、これは私がやったことです:

  1. Avahiとnss-mdnsをインストールします$ Sudo pacman -S avahi nss-mdns
  2. /etc/rc.d/avahi-daemon startrc.localの末尾に追加します
  3. dhcpcdを実行しているので、/etc/dhcpcd.confnoipv4ll行をコメント化しました。
  4. $ Sudo /usr/sbin/avahi-autopid -D wlan0も実行しました。再起動はしたくないので、手順3が必要だったかどうかはわかりません。
  5. /etc/nsswitch.confで、hosts: files mdns4_minimal dns mdns4を読み取るように行を設定しました。
  6. 次に、$ Sudo /etc/rc.d/dbus restartを実行してdbusを再起動しました。

その後、単にssh [email protected]を実行するだけでうまくいきました。

11
Wayne Werner

必要ないと思いますavahi-daemon使用するために実行中.local。これが、起動スクリプトにあるものです。これはArch Wikiの方法に比べてはるかに簡単です。

systemctl enable avahi-daemon
avahi-set-Host-name $(hostname)
systemctl disable avahi-daemon
2
ggg