~からその記事、私は実現した:
UNIX ドメインソケットはファイルパスにバインドされます。
socat
そのため、DGRAM Unixソケットを次のようにスニッフィングする必要があります。ここ。ただし、この目的のためにパスを検索しようとすると、ターゲットアプリケーションはファイルパスのないソケットを使用することがわかりました。
このss -apex
コマンドは、ファイルパスの有無にかかわらず結果を表示します。例:
u_dgr UNCONN 0 0 /var/lib/samba/private/msg.sock/32222 1345285 * 0 users:(("nmbd",pid=32222,fd=7))
u_dgr UNCONN 0 0 * 8567674 * 0 users:(("gnome-shell",pid=16368,fd=23))
~からSS マニュアルページ* 8567674
ファイルパスがないことが何を意味するのかわかりません。
したがって、2つの質問があります。
- 場合によっては、Unixソケットへのファイルパスがないのはなぜですか?
socat
ファイルパスなしでUnix DGRAMソケットをスニッフィングする方法は?
ベストアンサー1
質問1
Q1:ssのマニュアルページにその意味がありません。例えば、*8567674 にはファイル・パスはありません。
~から説明する文書住所:ポートは次のとおりです。
抜粋形式と意味アドレスモード住所系列によって異なります。
- イントラネット-アドレスモードこれは、IPプレフィックス、その後のオプションのコロン、およびポートで構成されます。プレフィックスまたはポート部分が欠落しているか*に置き換えられている場合は、ワイルドカードの一致が表示されます。
- イントラネット6- と同様イントラネット、プレフィックスのみがIPv6アドレスを表します。同じではないイントラネットコロンはあいまいになるため、ssはアドレスが[...]でサポートされているURLで使用されるものと同じスキームの使用を許可します。
- Unix-アドレスモードシェルスタイルのワイルドカードです。
- バッグ- 形式は次のとおりです。イントラネット、ポートではなくインターフェイスインデックスのみが保持され、アドレスではなくリンクレイヤプロトコルIDのみが保持されます。
- インターネット接続- 形式は次のとおりです。イントラネット、ポートではなくソケットpidだけが保持され、アドレスではなくnetlinkチャネルのみが保持されます。
ポート文法的にはそうです。アドレスモードワイルドカードアドレス部分を含む。もちろん、UNIXソケットでは定義されていません。
最後の文があなたの答えです。
質問2
Q2:なぜUnixソケットへのファイルパスがないのですか?
次のQ&Aをご覧ください。ソケットファイルを生成せずにUnixドメインソケットを使用する方法。
抜粋「抽象ソケットアドレス」を使用して Unix ドメインソケットを作成できます。バインドするために渡された
sun_path
文字列の最初の文字をに設定するだけです。この最初の文字の後に残りの文字列を書き(または何でも)埋めます。sockaddr_un
'\0'
NUL
sun_path
UNIX_PATH_MAX
NULs
このようにして生成されたソケットにはファイルシステムエントリはありません。
質問#3
Q3:ファイルパスなしでsocatを介してUnix DGRAMソケットをスニッフィングする方法は?
これらのアイテムが何であるかを知ったら、Google検索をさらに試してください。socat ドキュメント。
抜粋
- 要約 - 聞く:
- 要約 - 送信:
- 概要 - RECVFROM:
- 要約 -RECV:
- 要約 - クライアント: >
抽象アドレスは、ファイルシステムベースのソケットを処理せず、代わりに代替UNIXドメインアドレス空間を処理することを除いて、関連するUNIXアドレスとほぼ同じです。これを保持するために、ソケットアドレス文字列には内部的に「\ 0」プレフィックスが付いています。この機能はLinuxでのみ利用可能です。オプショングループは関連するUNIXアドレスと同じですが、ABSTRACTアドレスはNAMEDグループのメンバーではありません。