Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Avahiのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Avahi
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:マルチキャスト DNS]] [[en:Avahi]] [[fr:Avahi]] [[Wikipedia:ja:Avahi]] より: :''"[http://avahi.org/ Avahi] は、[[Wikipedia:ja:Zeroconf|Zeroconf]] (ゼロ・コンフィギュレーション・ネットワーキング) のフリーソフトウェア実装であり、マルチキャスト DNS/DNS-SD サービスディレクトリのためのシステムを含む。Avahi は、特定の構成情報のないローカルネットワーク上のサービスホストの発行と発見を可能とする。例えば、ネットワークに接続したとき、即座にプリンタを検出し、ファイルを探し出し、他者と会話できるようにする。GNU Lesser General Public License (LGPL) の条件でライセンス提供される。"'' == インストール == {{Pkg|avahi}} パッケージを[[pacman|インストール]]してください。 Avahi のデーモンは [[systemd#ユニットを使う|systemd]] で {{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: ... '''mdns_minimal [NOTFOUND=return]''' resolve [!UNAVAIL=return] dns ... {{Note|{{ic|.local}} ホストの解決に時間がかかる場合、{{ic|mdns_minimal}} の代わりに {{ic|mdns4_minimal}} を使ってみてください。}} ==== カスタム 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 -alr 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/プリンター共有]]を参照してください。}} == サービスタイプデータベースの編集 == 上に記述したとおり、Avahi にはサービスを確認することができるツールが付属しています。{{ic|avahi-browse}} と {{ic|avahi-discover}} はどちらもデータベースファイルを使用してサービスの説明を表示します。データベースにはほとんどのサービスの名前が含まれています (全てではありません)。 残念ながら、作成したばかりの QOTD サービスはデータベースに含まれていないため {{ic|avahi-browse -a}} は以下のようなエントリを表示します: + wlp2s0 IPv4 MyServer _qotd._tcp local === ソースの取得 === まずは [https://github.com/lathiat/avahi avahi の github ミラー] にある {{ic|service-type-database}} サブディレクトリから {{ic|build-db.in}} と {{ic|service-types}} ファイルをダウンロードしてビルドディレクトリに配置してください: $ wget https://raw.githubusercontent.com/lathiat/avahi/master/service-type-database/build-db.in $ wget https://raw.githubusercontent.com/lathiat/avahi/master/service-type-database/service-types === ソースの修正 === 次に、以下のスクリプトを作成してください: #!/bin/bash sed -e 's,@PYTHON\@,/usr/bin/python2.7,g' \ -e 's,@DBM\@,gdbm,g' < build-db.in > build-db chmod +x build-db 上記のスクリプトは {{ic|build-db}} という名前のファイルを作成します: $./whatever_you_named_the_script.sh $ ls build-db build-db.in service-types whatever_you_named_the_script.sh そして、{{ic|service-types}} ファイルに新しい QOTD サービスを追加してください。ファイルは1行毎に1エントリとなっており、{{ic|type:Human Readable Description}} という形式でエントリを記入します。説明には空白を入れることができます。 例えば、ファイルの末尾に以下のエントリを追加します: _qotd._tcp:Quote of the Day (QOTD) Server === 新しいデータベースのビルドとインストール === {{ic|build-db}} python スクリプトを実行してください (python3 ではなく python2 を使用します)。{{ic|service-types.db}} ファイルがビルドされます。ビルドされたら {{ic|gdbmtools}} を使って新しいデータベースがロードできること、新しいエントリが含まれていることを確認してください: $ /usr/bin/python2.7 build-db $ ls build-db build-db.in service-types service-types.db whatever_you_named_the_script.sh $ gdbmtool service-types.db Welcome to the gdbm tool. Type ? for help. gdbmtool>fetch _qotd._tcp Quote of the Day (QOTD) Server gdbmtool>quit 古いデータベースをバックアップしてから、新しいデータベースを移動して {{ic|avahi-browse}} で新しいエントリが認識されるようになったことを確認: $ cp /usr/lib/avahi/service-types.db /backup-directory # cp /build-directory/service-types.db /usr/lib/avahi/service-types.db $ avahi-browse -b | grep QOTD Quote of the Day (QOTD) Server {{ic|avahi-browse}} のエントリは以下のようになります: + wlp2s0 IPv4 MyServer Quote of the Day (QOTD) Server local == トラブルシューティング == === Hostname changes with appending incrementing numbers === This is a [https://github.com/lathiat/avahi/issues/117 known bug] that is caused by a hostname race condition. One possible workaround is [https://github.com/lathiat/avahi/issues/117#issuecomment-302849130 disabling IPv6] to attempt to prevent the race condition. If multiple interfaces are present [https://github.com/lathiat/avahi/issues/117#issuecomment-401225716 use allow-interfaces] to limit Avahi to a single interface. Another possible workaround is to [https://github.com/lathiat/avahi/issues/117#issuecomment-442201162 disable the cache] to prevent Avahi from checking for host name conflicts altogether, but this prevents Avahi from performing lookups. === systemd-resolved のせいで nss-mdns が機能しない === ''nss-mdns'' only works if the DNS server listed in {{ic|/etc/resolv.conf}} returns NXDOMAIN to SOA queries for the "local" domain.[https://github.com/lathiat/nss-mdns/blob/master/README.md#activation] Even if [[systemd-resolved]] is configured with {{ic|1=MulticastDNS=no}} in {{man|5|resolved.conf}}, it will not return NXDOMAIN for these queries. See [https://github.com/systemd/systemd/issues/21659 systemd issue 21659]. A solution is to use the full {{ic|mdns}} NSS module instead of {{ic|mdns_minimal}} and create {{ic|/etc/mdns.allow}} to allow only the "local" domain. For example: {{hc|/etc/nsswitch.conf|2= hosts: mymachines '''mdns [NOTFOUND=return]''' resolve [!UNAVAIL=return] files myhostname dns }} {{hc|/etc/mdns.allow| .local. .local }} {{Note|1=The above solution will break reverse lookups in networking utilities such as {{Pkg|mtr}} and {{Pkg|traceroute}}. These applications will attempt to do a reverse lookup via Avahi and time out instead of falling back to other DNS services. This seems similar to [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=433943 Debian issue 433943] where the recommendation is, unfortunately, to use {{ic|mdns_minimal}} instead of {{ic|mdns}}.}} ==参照== * [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のソースを表示
話題を追加