.\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Translated 2026-10-20 .\" by ribbon .\" .TH wsdd 8 .SH 名前 wsdd \- Web Service Discovery ホストおよびクライアントデーモン。 .SH 書式 \fBwsdd [オプション\fP] .SH 説明 .PP \fBwsdd\fP は、Web Service Discovery (WSD) ホストと WSD クライアントデーモンの両方を実装しています。ホスト実装により、ローカル NAS デバイスなどの (Samba) ホストを、Windows などの Web Service Discovery クライアントで検出できるようになります。クライアントモードでは、ローカルネットワーク上の、他の WSD ホストを検索できます。 .PP 既定の動作モードはホストモードです。クライアントまたは検出モードは、明示的に有効にする必要があります。特に設定しない限り、ホストモードは常にアクティブです。両方のモードを同時に使用できます。 .SH オプション .SS 一般的なオプション .TP \fB\-4\fP, \fB\-\-ipv4only\fP 以下を参照してください。 .TP \fB\-6\fP, \fB\-\-ipv6only\fP 指定されたアドレスファミリに制限します。両方のオプションを指定すると、使用可能なアドレスがなくなり、wsdd は終了します。 .TP \fB\-A\fP, \fB\-\-no\-autostart\fP プログラムの起動時にネットワークアクティビティを自動的に開始しません。API インターフェイス (以下を参照) を使用すると、アプリケーションの実行中にネットワークアクティビティを開始および停止できます。 .TP \fB\-c \fP\fIDIRECTORY\fP, \fB\-\-chroot \fP\fIDIRECTORY\fP 初期化が実行された後、受信メッセージの処理が開始される直前に、指定された \fIDIRECTORY\fP に chroot します。新しいルートディレクトリは空でもかまいません。\fB\-u\fP オプションも使用することを検討してください。 .TP \fB\-h\fP, \fB\-\-help\fP ヘルプを表示して終了します。 .TP \fB\-H \fP\fIHOPLIMIT\fP, \fB\-\-hoplimit \fP\fIHOPLIMIT\fP マルチキャストパケットのホップ制限を設定します。既定値は 1で、パケットがローカルネットワークセグメントから出ないようにする必要があります。 .TP \fB\-i \fP\fIINTERFACE/ADDRESS\fP, \fB\-\-interface \fP\fIINTERFACE/ADDRESS\fP wsdd がリッスンするインタフェースを指定します。インターフェイスを指定しない場合は、すべてのインターフェイスが使用されます。ループバックインターフェイスは、明示的に指定されていても使用されません。IPv6 アドレスを持つインターフェイスの場合、リンクローカルアドレスのみがネットワーク上のホストのアナウンスに使用されます。このオプションは、トラフィックを複数のインターフェイスに制限するために複数回指定できます。このオプションでは、サービスがバインドする IP アドレスも受け入れられます。IPv6 では、上述したように、リンクローカルアドレスのみが実際に考慮されます。 .TP \fB\-\-metadata\-timeout\ \fP\fITIMEOUT\fP HTTP ベースのメタデータ交換のタイムアウトを設定します。既定値は 2.0 秒です。 .TP \fB\-\-source\-port\ \fPORT 送信するマルチキャストメッセージの送信元ポートを設定します。これにより、応答ではこれが宛先ポートとして使用されます。これは、フローの一部としてマルチキャストへの着信ユニキャスト応答を検出しないファイアウォールに役立ちます。そのため、手動で許可するには、ポートを修正する必要があります。 .TP \fB\-s\fP, \fB\-\-shortlog\fP レベルとメッセージのみを含む短いログ形式を使用します。これは、ログ機構が (例えば Linux の systemd のように) ログメッセージの先頭に自動的に日付とプロセス名、そして ID を付加するような場合に便利です。 .TP \fB\-u \fP\fIUSER[:GROUP]\fP, \fB\-\-user \fP\fIUSER[:GROUP]\fP ネットワークパケットを処理する前に、実行時にユーザー (およびグループ) を変更します。\fB\-c\fPと一緒に使用すると、このオプションは、init システムなどの実行環境が別の方法でこれを保証できない場合に、セキュリティを強化するために使用できます。 .TP \fB\-U \fP\fIUUID\fP, \fB\-\-uuid \fP\fIUUID\fP WSD 仕様では、デバイスに対して、ネットワークの再起動や変更があっても同じである一意のアドレスが割り当てられている必要があります。標準のコンテキストでは、これはシリアル番号のようなものであると想定されます。Wsdd は、他の環境で chroot を実行する可能性がある前に、/etc/machine\-id と /etc/hostid から (この順序で) マシン ID を読み取ろうとします。マシン ID の読み取りに失敗すると、wsdd は、ローカルマシンの DNS 名前空間とホスト名を入力として使用して、バージョン 5 の UUID にフォールバックします。したがって、ホスト名は固定していなければならず、例えば DHCP によって変更されてはなりません。ただし、wsdd で特定の UUID を使用したい場合は、このオプションを使用できます。 .TP \fB\-v\fP, \fB\-\-verbose\fP ログ出力の冗長性を付加的に増加させます。\-v/\-\-verbose を 1回指定すると、ログレベルが INFO に設定されます。\-v オプションを追加すると、ログレベルが DEBUG に設定されます。 .TP \fB\-V\fP, \fB\-\-version\fP バージョン番号を表示して終了します。 .SS ホストモードオプション .TP \fB\-d \fP\fIDOMAIN\fP, \fB\-\-domain \fP\fIDOMAIN\fP Wsdd を実行しているホストが ADS ドメインに参加しているとします。これにより、wsdd はホストがドメインメンバーであることを報告します。これにより、ワークグループメンバーシップのレポートが無効になります。(指定した) ホスト名は、自動的に小文字に変換されます。この動作を変更するには、`\-p` オプションを使用してください。 .TP \fB\-n \fP\fIHOSTNAME\fP, \fB\-\-hostname \fP\fIHOSTNAME\fP wsddが検出時に使用するホスト名を上書きします。既定では、マシンのホスト名が使用されます (hostname(1) を参照)。既定では、使用できる FQDN のホストの名前の部分だけが使用されます。 .TP \fB\-o\fP, \fB\-\-no\-host\fP ホスト動作モードを無効にします。このオプションを指定すると、ホストは他の (Windows) ホストから検出されなくなります。これは、クライアント/検出モードが使用され、wsdd を実行するホストのアナウンスが行われない場合に便利です。 .TP \fB\-p\fP, \fB\-\-preserve\-case\fP ホスト名をそのままにします。このオプションを指定しない場合、ホスト名は次のように変換されます。ワークグループ環境 (\-w を参照) の場合、ホスト名は既定で大文字になります。逆に、ドメイン内で使用する場合は小文字になります (\-d を参照)。 .TP \fB\-t\fP, \fB\-\-no\-http\fP WSD プロトコルの HTTP 要求を処理しません。このオプションは、別のプロセスが Get メッセージを処理する可能性がある場合のデバッグを目的としています。 .TP \fB\-w \fP\fIWORKGROUP\fP, \fB\-\-workgroup \fP\fIWORKGROUP\fP 既定で、wsdd は、ホストがドメインではなくワークグループのメンバーであることを報告します (これを上書きするには、\-d/\-\-domain オプションを使用します)。\-w/\-\-workgroup を使用すると、既定のワークグループ名を変更できます。ワークグループ名の既定値は WORKGROUP です。(指定された) ホスト名は自動的に大文字に変換されます。この動作を変更するには、`\-p` オプションを使用してください。 .SS クライアント/検出モードのオプション .TP \fB\-D\fP, \fB\-\-discovery\fP 検出モードを有効にして、他の WSD ホスト/サーバーを検索します。検出されたホストは、プライオリティ INFO でログに記録されます。サーバーインターフェイス (下記参照) は、プログラムインターフェイスに使用できます。サーバーインターフェースの詳細については、man ページを参照してください。 .TP \fB\-l \fP\fIPATH/PORT\fP, \fB\-\-listen \fP\fIPATH/PORT\fP サーバプログラミングインタフェースのソケットの場所を指定します。オプションの値が数値の場合は、TCP サーバーポートの数値ポートとして解釈されます。その後、サーバーソケットはローカルホストのみにバインドされます。オプションの値が数値以外の場合は、クライアントが接続できる UNIX ドメインソケットへのパスと見なされます。 .SH 使用例 .SS "eth0 および eth2 上でのみトラフィックを処理するが、IPv6 アドレスを使用する必要がある場合" wsdd \-i eth0 \-i eth2 \-6 あるいは wsdd \-\-interface eth0 \-\-interface eth2 \-\-ipv6only .SS "smb.conf に従ってワークグループを設定し、冗長にし、特権をドロップして実行し、ルートディレクトリを (空の) ディレクトリに変更する場合" SMB_GROUP=$(grep \-i '^\es*workgroup\es*=' smb.conf | cut \-f2 \-d= | tr \-d '[:blank:]') wsdd \-v \-w $SMB_GROUP \-u daemon:daemon \-c /var/run/wsdd/chroot .SH ファイアウォールの設定 .PP 次のポート、方向、およびアドレスの通信を許可する必要があります。 .TP \- マルチキャスト宛先を持つ udp/3702 への着信および発信: IPv4 の場合は 239.255.255.250、IPv6 の場合は ff02::c .TP \- udp/3702 からの発信方向ユニキャスト通信 .TP \- tcp/5357 への着信方向通信 .PP (リンク先の) ローカルサブネットへの通信をさらに制限する必要があります。たとえば、IPv6 用のアドレス空間 `fe80::/10` を使用します。IPv4 マルチキャスト通信を動作させるには、IGMP 通信を有効にする必要があることに注意してください。 .SH "API インタフェース" Wsdd は、テキストベースの行指向 API インターフェースを提供し、情報を照会してアクションを起動します。このインターフェースは、TCP および UNIX ドメインソケットで使用できます (\fB\-l/\-\-listen\fP オプションを参照)。TCP ソケットはローカルホストにのみバインドされます。以下のコマンドを実行できます: .SS "clear\fR \- 検出されたデバイスリストの削除\fP" 検出されたすべてのデバイスのリストをクリアします。デバイスを再度検索するには、\fBprobe\fP コマンドを使用します。このコマンドはデータを返さず、検出モードでのみ使用できます。 .SS "list \fI[TYPE]\fP\fR \- 検出されたデバイスの一覧表示\fP" 指定された TYPE (例: "pub:Computer") で検出されたデバイスのタブ区切りリストを、次の情報とともに返します。タイプを指定しない場合は、検出されたすべてのデバイスが表示されます。検出されたホストのリストは、空の場合もありますが、そうでない場合の空行は、常に単一のドット (「.」) で終わります。このコマンドは、検出モードでのみ使用できます。 .TP URI 検出されたデバイスのURI。マルチホームデバイスは一度だけ現れるべきですが、複数のアドレスを持っていることに注意してください (下記参照)。 .TP name デバイスによって報告された名前。検出された Windows ホストの場合、ここには構成済みのコンピュータ名がレポートされます。 .TP association 検出されたホストが属するドメインまたはワークグループを指定します。関連付けのタイプ (ワークグループまたはドメイン) と値は、コロンで区切ります。 .TP last_seen ISO8601 で提供される Probe/Hell oメッセージの結果としてデバイスが最後に認識された日時 (秒単位)。 .TP addresses 検出プロセス中に収集されたすべてのトランスポートアドレスのリスト。コンマで区切ります。アドレスは、そのアドレスが検出されたインタフェース ('%'で区切る) とともに提供されます。IPv6 アドレスは大括弧で報告されます。報告されたアドレスは、デバイスに到達できる実際のデバイスと一致しない場合があることに注意してください。 .TP types 検出されたデバイスのタイプ。カンマで区切ります。 .SS "probe \fI[INTERFACE]\fP\fR \- デバイスの検索\fP" 指定されたインターフェイス (eth0など) でプローブメッセージをトリガーして、WSD ホストを検索します。インターフェースを指定しない場合は、wsdd がリッスンするすべてのインターフェースがプローブされます。プローブメッセージは、ディスカバリメッセージフローを開始します。ホストが実際に検出されるまで、しばらく時間がかかる場合があります。このコマンドはデータを返さず、検出モードでのみ使用できます。 .SS "start\fR \- ネットワークアクティビティの開始\fP" このコマンドは、wsdd のネットワーキングアクティビティーがまだ開始されていない場合に、それを開始します。ホストモードがアクティブになると、「Hello」メッセージが表示され、ホストがネットワーク上でアナウンスされます。検出モードが有効になっている場合は、プローブプロセスも開始されます。 .SS "stop\fR \- ネットワークアクティビティの終了\fP" スタートとは逆の操作です。このコマンドを受信すると、ネットワーク内のホストにホストの消失を通知するために「Bye」メッセージが送信されます。WSD プロトコルに使用されるすべてのネットワークソケットも閉じられます。アクティビティーは、開始操作で再始動できます。 .SH セキュリティ .PP wsdd は、例えば http サービスに TLS を使用するなど、いかなるセキュリティ機能も実装していません。これは、wsdd の使用目的がプライベート (つまりホーム) LAN内にあるためです。\fIHello\fP メッセージには、ホストのトランスポートアドレス、つまり、検出を高速化する(\fIResolve\fP メッセージを回避する) IPアドレスが含まれます。 .SH 既知の問題 .SS "FreeBSD で IPv6 だけを使う場合" Wsdd が IPv6 のみを使用して FreeBSD 上で実行されている場合、wsddを実行しているホストが確実に検出されない可能性があります。その理由は、不明な理由により、Windows が常に HTTP サービスに接続できるとは限らないためと思われます。回避策として、IPv4 のみで wsdd を実行します。 .SS トンネル/ブリッジインターフェイス .PP OpenVPN や Docker によって作成されたようなトンネル/ブリッジインターフェイスが存在する場合、バインドする必要があるインターフェイスを提供せずに実行すると、wsdd と干渉する可能性があります (すなわち、すべてにバインドされます)。この場合、wsdd の起動後に wsdd ホストが表示されますが、Windows エクスプローラの Network ビューの更新が、ビューの更新または Windows マシンの再起動によって強制的に実行されると、表示されなくなります。この問題を解決するには、ホストをアナウンスするネットワークに接続されているインタフェースを、\-i/\-\-interface オプションで指定する必要があります。これにより、トンネル/ブリッジインターフェイスが使用されなくなります。 .PP 背景:トンネル/ブリッジインターフェイスにより、Windows ホストからの \fIResolve\fP リクエストが wsdd に複数回配信される、つまり、そのようなリクエストの重複が作成される可能性があります。Wsdd が最初にこのようなリクエストをトンネル/ブリッジから受信した場合、wsdd はそのインターフェイスのトランスポートアドレス (IP アドレス) を使用し、ユニキャスト経由で応答を送信します。それ以上の重複は、メッセージ UUID に基づく重複メッセージ検出のため、処理されません。応答を受信する Windows ホストは、\fIResolveMatch\fP メッセージ内のトランスポートアドレス (トンネル/ブリッジアドレス) と、送信側ホスト/インターフェイスの IP (LAN IP など) との不一致を検出したように見えます。その後、wsdd ホストは Windows によって無視されます。