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


18

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

wayne@myhost$ ssh wayne@otherhost.local

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

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

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


5
あなたはインストールする必要がavahiだけでなく、nss-mdns見てい詳細は- アーチウィキ
ウルリッヒDangel

回答:


15

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

これらをrootとして実行するかsudo、適切な場所に端末で追加nanoして、選択したエディターに置き換えます。

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

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

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


3
ステップ4と5を組み合わせることもできますsystemctl enable avahi-daemon --now。次の起動を待つのではなく、すぐにサービスを開始して有効にします。
ジョナサンコマー

11

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

  1. avahiとnss-mdnsをインストールします $ sudo pacman -S avahi nss-mdns
  2. 追加 /etc/rc.d/avahi-daemon start最後にrc.local
  3. 私は走っているのでdhcpcd/etc/dhcpcd.confコメントアウトしましたnoipv4ll行を。
  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 wayne@other.localだけでうまくいきました。


1
あなたの第二の点について:あなたにもちょうど/etc/rc.confファイルにDAEMONSラインに「のavahi-デーモン」を加えるかもしれない
ヴィーラント

私はそれについて考えましたが、wikiは、一部の人々がrc.confで早すぎて結果として失敗する問題があり、それを私がした場所に置くことは修正であると指摘しました。
ウェインワーナー

2

avahi-daemon使用するために実行する必要はないと思います.local。スタートアップスクリプトで私が持っているものは次のとおりです。これはArch Wikiの方法に比べてはるかに簡単です。

systemctl enable avahi-daemon
avahi-set-host-name $(hostname)
systemctl disable avahi-daemon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.