Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Avahiのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Avahi
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:マルチキャスト DNS]] [[en:Avahi]] [[fr:Avahi]] [[ru:Avahi]] [[Wikipedia:ja:Avahi]] より: :''"[http://avahi.org/ Avahi] は、[[Wikipedia:ja:Zeroconf|Zeroconf]] (ゼロ・コンフィギュレーション・ネットワーキング) のフリーソフトウェア実装であり、マルチキャスト DNS/DNS-SD サービスディレクトリのためのシステムを含む。Avahi は、特定の構成情報のないローカルネットワーク上のサービスホストの発行と発見を可能とする。例えば、ネットワークに接続したとき、即座にプリンタを検出し、ファイルを探し出し、他者と会話できるようにする。GNU Lesser General Public License (LGPL) の条件でライセンス提供される。"'' == インストール == {{pkg|avahi}} パッケージを [[インストール]] し、{{ic|avahi-daemon.service}} を [[有効化]] するか、[[ソケットアクティベーション]] を使用してください。 {{Note|[[systemd-resolved]] には内蔵の mDNS サービスがあります。Avahi を使う前に、systemd-resolved のマルチキャスト DNS リゾルバ/レスポンダ ({{man|5|resolved.conf}} を参照) を無効化するか、あるいは {{ic|systemd-resolved.service}} を完全に [[Systemd#ユニットを使う|無効化]] してください。}} == Avahi を使う == === ホスト名の解決 === Avahi には {{ic|''hostname''.local}} という名前を使ってローカルでホスト名を解決する機能があります。有効にするには {{Pkg|nss-mdns}} パッケージをインストールして {{ic|avahi-daemon.service}} を[[起動]]してください。 その後、{{ic|/etc/nsswitch.conf}} ファイルを編集して、{{ic|resolve}} と {{ic|dns}} の前に {{ic|1=mdns_minimal [NOTFOUND=return]}} が含まれるように {{ic|hosts}} 行を変更してください: hosts: mymachines '''mdns_minimal [NOTFOUND=return]''' resolve [!UNAVAIL=return] files myhostname dns {{Note| * {{ic|.local}} ホストの解決に時間がかかる場合、{{ic|mdns_minimal}} の代わりに {{ic|mdns4_minimal}} を使ってみてください。 * ユニキャスト DNS サーバがトップレベルの {{ic|local}} 名に対する {{ic|SOA}} クエリに応答しない限り、またはリクエストが2つ以上のラベルを持つ場合、上記の行は{{ic|nss-mdns}} を {{ic|.local}} ドメインに対して権威付けるようにします。{{ic|nss-mdns}} [https://github.com/lathiat/nss-mdns/blob/master/README.md#activation activation notes] を参照してください。 ** [[systemd-resolved]] は、mDNS サポートが無効になっている場合でも、これらのクエリに応答します。[[Avahi#systemd-resolved のせいで nss-mdns が機能しない|systemd-resolved は、nss-mdns が機能しないようにします]] ** NSS 設定の詳細については、{{man|8|nss-mymachines}} と [https://github.com/lathiat/nss-mdns/blob/master/readme.md#active avahi docs] を参照して下さい。 }} ==== カスタム TLD を使用する場合の mDNS の設定 ==== {{ic|mdns_minimal}} モジュールが {{ic|.local}} TLD の取り合わせを処理します。{{ic|<nowiki>[NOTFOUND=return]</nowiki>}} と設定しているのは、{{ic|mdns_minimal}} が {{ic|*.local}} を見つけられなかったときに、{{ic|dns}} や {{ic|myhostname}} などで検索しないようにするためです。 Avahi で他の TLD もサポートしたい場合、以下の設定を行ってください: * {{ic|1=mdns_minimal [NOTFOUND=return]}} を {{ic|mdns}} に置き換えてください。IPv4 や IPv6 しか使わないモジュール {{ic|mdns[46](_minimal)}} も存在します。 * {{ic|/etc/avahi/avahi-daemon.conf}} の {{ic|domain-name}} をカスタマイズしてください。 * {{ic|/etc/mdns.allow}} で Avahi のカスタム TLD をホワイトリストに入れてください。 ==== ツール ==== Avahi にはネットワーク上で動作しているサービスを探知するのに役立つユーティリティが複数含まれています。例えば、以下のコマンドを実行するとネットワーク上のサービスが表示されます: $ avahi-browse --all --ignore-local --resolve --terminate このコマンドが何も出力しない場合、原因は [[ファイアウォール]] によって mDNS トラフィックがブロックされている可能性があります。 .local ホスト名を IP アドレスに解決するために単に mDNS クエリを実行したい場合(dig や nslookup に似た方法)、次のコマンドを使用してください: $ avahi-resolve-host-name ''some-host-name''.local {{ic|getent hosts}} コマンドは、DNS と MDNS ルックアップの両方を実行できることに注意してください。 Avahi Zeroconf Browser ({{ic|avahi-discover}}) はネットワーク上の様々なサービスを表示します。使用するには Avahi の任意依存パッケージである {{Pkg|gtk3}}, {{Pkg|python-dbus}}, {{Pkg|python-gobject}} のインストールが必要です。また、{{ic|bssh}} と {{ic|bvnc}} を使うことで SSH サーバーや VNC サーバーを閲覧することもできます。 === ファイアウォール === [[ファイアウォール]]を使っている場合は UDP ポート {{ic|5353}} を開いてください。 ===リンクローカル (Bonjour/Zeroconf) チャット=== Avahi を使って Linux で Bonjour プロトコルを使用することもできます。[[Wikipedia:Comparison of instant messaging clients]] や[[アプリケーション一覧/インターネット#インスタントメッセージ]]に Bonjour プロトコルをサポートしているクライアントが載っています。 === IPv4LL IP アドレスの取得 === デフォルトでは、DHCP を使って IP を取得するとき、{{Pkg|dhcpcd}} パッケージを使用します。DHCP で IP アドレスが取得できなかったときに IPv4LL アドレスを取得するようにすることができます。デフォルトではこのオプションは無効になっています。有効にするには noipv4ll をコメントアウトしてください: {{hc|/etc/dhcpcd.conf| ... #noipv4ll ...}} もしくは {{ic|avahi-autoipd}} を実行してください: # avahi-autoipd -D == サービスの追加 == Avahi は {{ic|/etc/avahi/services}} に {{ic|*.service}} ファイルが存在するサービスを喧伝します。ファイルは {{ic|avahi}} ユーザー・グループから読み込めるようにする必要があります。 {{ic|*.service}} ファイルが存在しないサービスを使いたい場合、簡単にサービスを作成することができます。 例として、RFC 865 に基づく今日の格言 (QOTD) を表示するサービスを TCP の17番ポートで稼働させるとしましょう。 まず最初に {{ic|<type>}} を決定する必要があります。{{man|5|avahi.service}} によればタイプは DNS-SD サービスタイプのどれかにする必要があります (例: {{ic|_http._tcp}})。[http://www.dns-sd.org/ServiceTypes.html DNS-SD のレジスタは2010年に IANA レジスタに統合] されたため、サービス名は [http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml IANA レジスタ] や {{ic|/etc/services}} ファイルで確認することができます。サービス名は {{ic|qotd}} となっています。QOTD は tcp で動作するため、サービスは {{ic|_qotd._tcp}} でありポート番号は 17 となります (IANA と RFC865 に準拠)。 したがってサービスファイルは以下のようになります: {{hc|qotd.service|<nowiki> <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_qotd._tcp</type> <port>17</port> </service> </service-group> </nowiki>}} 別のサーバーでサービスを動作させる場合や、DNS のサブタイプが異なる場合など、複雑なサービスについては {{man|5|avahi.service}} を読んでください。 === SSH === Avahi には SSH サーバーを喧伝するサンプルサービスファイルが付属しています。有効化するには: # cp /usr/share/doc/avahi/ssh.service /etc/avahi/services/ ===ファイル共有=== ====NFS==== [[NFS]] 共有を設定している場合は、Avahi を使って Zeroconf が有効になっているブラウザ (KDE の Konqueror や macOS の Finder など) で共有を自動マウントすることができます。{{ic|/etc/avahi/services}} に以下の内容で {{ic|.service}} ファイルを作成してください: {{hc|/etc/avahi/services/nfs_Zephyrus_Music.service|<nowiki> <?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">NFS Music Share on %h</name> <service> <type>_nfs._tcp</type> <port>2049</port> <txt-record>path=/data/shared/Music</txt-record> </service> </service-group></nowiki>}} {{ic|/etc/exports}} にオプションとして ''insecure'' を使っている場合ポートはこのままでいいですが、そうでない場合は変更する必要があります (macOS クライアントには ''insecure'' が必要です)。パスは export しているパスか、そのサブディレクトリになります。なんらかの理由で Leopard から自動マウント機能は削除されていますが、[http://www.macosxhints.com/article.php?story=20071116042238744 スクリプトを使うことができます]。このスクリプトは[https://ubuntuforums.org/showthread.php?p=4387032#post4387032 この投稿] に基づいています。 ====Samba==== サーバーとクライアントの両方で Avahi デーモンを動作させることで、クライアント側のファイルマネージャで自動的にサーバーが認識されます。 ====Vsftpd==== [[vsftpd]] などの通常の FTP サーバーを自動探知することもできます。{{Pkg|vsftpd}} パッケージをインストールして vsftpd の設定を自由に変更してください ([https://ubuntuforums.org/showthread.php?t=218630 ubuntuforums.org のスレッド] や {{man|5|vsftpd.conf}} を参照)。 そして以下の内容で {{ic|/etc/avahi/services}} に {{ic|.service}} ファイルを作成: {{hc|/etc/avahi/services/ftp.service|<nowiki> <?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>FTP file sharing</name> <service> <type>_ftp._tcp</type> <port>21</port> </service> </service-group> </nowiki>}} これで FTP サーバーが Avahi によって喧伝されるようになります。ネットワーク上の他のコンピュータからファイルマネージャを使って FTP サーバーに接続できるはずです。クライアント側で[[#ホスト名の解決|ホスト名の解決]]を有効にする必要があるかもしれません。 ===携帯デバイスからの AirPrint=== Avahi と [[CUPS]] を組み合わせることで airprint に対応している携帯デバイスからプリンターに印刷をすることができます。印刷機能を有効にするには、{{ic|/etc/avahi/services/}} にプリンターの Avahi サービスファイルを作成してください。HP-Laserjet プリンターの場合、サービスファイルは以下のようになります。{{ic|name}}, {{ic|rp}}, {{ic|ty}}, {{ic|adminurl}}, {{ic|note}} フィールドは適切な値に置き換えてください。 {{hc|/etc/avahi/services/airprint.service|<nowiki> <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>yourPrnterName</name> <service> <type>_ipp._tcp</type> <subtype>_universal._sub._ipp._tcp</subtype> <port>631</port> <txt-record>txtver=1</txt-record> <txt-record>qtotal=1</txt-record> <txt-record>rp=printers/yourPrnterName</txt-record> <txt-record>ty=yourPrnterName</txt-record> <txt-record>adminurl=http://198.168.7.15:631/printers/yourPrnterName</txt-record> <txt-record>note=Office Laserjet 4100n</txt-record> <txt-record>priority=0</txt-record> <txt-record>product=(GPL Ghostscript)</txt-record> <txt-record>printer-state=3</txt-record> <txt-record>printer-type=0x801046</txt-record> <txt-record>Transparent=T</txt-record> <txt-record>Binary=T</txt-record> <txt-record>Fax=F</txt-record> <txt-record>Color=T</txt-record> <txt-record>Duplex=T</txt-record> <txt-record>Staple=F</txt-record> <txt-record>Copies=T</txt-record> <txt-record>Collate=F</txt-record> <txt-record>Punch=F</txt-record> <txt-record>Bind=F</txt-record> <txt-record>Sort=F</txt-record> <txt-record>Scan=F</txt-record> <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf</txt-record> <txt-record>URF=W8,SRGB24,CP1,RS600</txt-record> </service> </service-group> </nowiki>}} もしくは https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py を使って Avahi サービスファイルを生成することもできます。スクリプトは {{Pkg|python2}} と {{AUR|python2-pycups}} に依存しており、以下のコマンドで使用することができます: # python2 airprint-generate.py -d /etc/avahi/services {{Note|http://localhost:631/printers でプリンターが "Not Shared" になっている場合、上記の python スクリプトは {{ic|/etc/avahi/services}} に何もファイルを出力しません。その場合、CUPS のドロップダウンメニューから "Modify Printer" を選択して共有を有効にしてください。共有ができない場合、[[CUPS/プリンター共有]]を参照してください。}} == トラブルシューティング == === 増分番号を追加するとホスト名が変わります === これは、ホスト名の競合状態が原因で発生する [https://github.com/lathiat/avahi/issues/117 既知のバグ] です。考えられる回避策の1つは、競合状態を防ぐために [https://github.com/lathiat/avahi/issues/117#issuecomment-302849130 IPv6 を無効にする] ことです。複数のインターフェースが存在する場合 [https://github.com/lathiat/avahi/issues/117#issuecomment-401225716useallow-interfaces] を使用して、Avahi を単一のインターフェースに制限します。もう1つの考えられる回避策は、[https://github.com/lathiat/avahi/issues/117#issuecomment-442201162 キャッシュを無効にする] ことで、Avahi がホスト名の競合を完全にチェックしないようにしますが、これにより Avahi はルックアップを実行できなくなります。 === systemd-resolved のせいで nss-mdns が機能しない === nss-mdns は、{{ic|/etc/resolv.conf}} に記載された DNS サーバーが "local" ドメインに対する SOA クエリに {{ic|NXDOMAIN}} を返す場合にのみ動作します。[https://github.com/lathiat/nss-mdns/blob/master/README.md#activation] まず、設定された DNS サーバーが "local" ドメインに対する SOA クエリに {{ic|NXDOMAIN}} を返すか確認してください。例えば、次のコマンドを実行します: $ host -t SOA local DNS サーバーが {{ic|NXDOMAIN}} を返す場合、以下の手順を実施する必要はありません。Avahi は、[[systemd-resolved]] を使用していても、通常通りネットワーク内のリソースを見つけられるはずです。 古いバージョンの [[systemd-resolved]] では、{{man|5|resolved.conf}} におけるグローバル設定 {{ic|1=MulticastDNS=no}} が "local" ドメインに対して Avahi と互換性のないレスポンスコードを返していました。その結果、Avahi がリソース(プリンターなど)を正しく検出できない問題が発生しました。この問題に関しては [https://github.com/systemd/systemd/issues/21659 systemd issue 21659] を参照してください。 解決策は、{{ic|mdns_minimal}} の代わりに完全な {{ic|mdns}} NSS モジュールを使用し、{{ic |/etc/mdns.allow}} を作成して ''ローカル'' ドメインのみを許可することです。例えば: {{hc|/etc/nsswitch.conf|2= hosts: mymachines '''mdns [NOTFOUND=return]''' resolve [!UNAVAIL=return] files myhostname dns }} {{hc|/etc/mdns.allow| .local. .local }} {{Note|1=上記のソリューションは、{{Pkg|mtr}} や {{Pkg|traceroute}} などのネットワークユーティリティでの逆引き参照を中断します。これらのアプリケーションは、他のDNSサービスにフォールバックする代わりに、Avahi を介して逆引き参照を実行し、タイムアウトを試みます。これは[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=433943Debianissue 433943] に似ているようですが、残念ながら、{{ic|mdns}} の代わりに {{ic|mdns_minimal}} を使うことが推奨されています。}} === Avahi ソケットでの ECONNREFUSED(接続拒否) === Avahi が正常に起動・動作しているにもかかわらず、nss が mdns にリクエストを転送しない場合、原因は {{ic|/run/avahi-daemon/socket}} ソケットが詰まっている可能性があります。この問題は strace などで確認できます。この場合、{{ic|avahi-daemon.service}} および {{ic|avahi-daemon.socket}} の両方を [[再起動]] することで問題を解決できる場合があります。 === KDE Connect の内蔵 mDNS との競合 === kdeconnect を使用している場合、{{Pkg|kdeconnect}} が独自の mDNS サーバーを実行するため、avahi と mDNS の競合が発生します。この競合により、ネットワーク再起動後にホスト名が {{ic|myhostname-2}} にリネームされるなどの問題が発生することがあります。 これを修正するには、{{pkg|kdeconnect}} を削除するか、{{aur|kdeconnect-no-mdns}} のように、mdns サポート無しのバージョンをビルドしてください。 こちらも参照 [https://bugs.kde.org/show_bug.cgi?id=487719 kde bug 487719] ==参照== * [http://avahi.org/ Avahi] - プロジェクトの公式ウェブサイト * [[wikipedia:ja:Avahi]] * [https://www.apple.com/itunes/download/ iTunes (includes Bonjour)] - Windows で Zeroconf を有効化 * http://www.zeroconf.org/
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Aur
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Avahi
に戻る。
検索
検索
Avahiのソースを表示
話題を追加