この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 64|答える: 0

TCP通信上のUNIXドメインソケット(UDS)

[リンクをコピー]
掲載地 2026/03/02 14:03:34 | | | |
要件:サーバーAのプログラムがUDSリスニングのみを有効にしている場合、サーバーBはサーバーAのプログラムを呼び出したい場合、どうすればよいでしょうか? TCP上のUNIXドメインソケット(UDS)を使って、サーバーAからサーバーBへプロセスを転送できます。

復習
Nginxのリバースプロキシphp-fpmはUDSを使って通信します
https://www.itsvse.com/thread-11068-1-1.html

Nginxリバースプロキシ ASP.NET コアはUDS通信を使用します
https://www.itsvse.com/thread-11069-1-1.html

.NET/C#プロセスはgRPCとUnixドメインソケット間で通信します
https://www.itsvse.com/thread-11051-1-1.html

UNIXドメインソケットは、ファイルシステム上のファイルではなく、ファイルパスに基づくプロセス間通信の仕組みです。 SFTPやSSHFSを使っても、UNIXドメインソケットはネットワーク経由でアクセスできません。

SOCATはUNIXドメインソケットを使用します

設置コマンド:
サーバーを起動してください

まず、サーバープロセス /tmp/example-server.sock が「server-program」と呼ばれるサーバーを受信しているとします。 /tmp/example-server.sock もし他のホストからこのソケットに接続してアクセスできれば、UNIXドメインソケットとして使うことでネットワークを上回ったと言えます。

試してみたいだけなら、Socatを使うこともできます。
テストコールの場合、コマンドは以下の通りです:
以下に示すように:



または、下記のようにsocatコマンドを使って接続することもできます。



TCP接続の使用

サーバープロセスが動作しているホストでsocatコマンドを使います。
リモートホストからTCPに接続

同名のUNIXドメインソケットを受信し、サーバープロセスが動作するホストに接続します。
リモートホストのクライアントを使います

すべて準備が整ったところで、ネットワーク経由でサーバープロセスに接続しましょう。 もし試してみたいなら、Socatを使うこともできます。

OpenSSHをご利用ください

SSHアクセスがあれば、もっと簡単な方法があります。 /tmp/example-server.sock まず、サーバーホスト(省略)を起動します。 クライアントホストでは-Lを使いましょう。 コマンドは以下の通りです:
現在はクライアントホストからアクセス可能です。




先の:フロントエンドのパフォーマンス最適化:XMLHttpRequestを捨て、フェッチインターフェースを導入する
次に:ネットワークICMP(インターネット制御メッセージプロトコル)の簡単な紹介。
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com