Linux

如何通過 TCP 直接公開 UNIX 域套接字

  • June 24, 2013

我想要一個 UNIX 域套接字,例如 /var/program/program.cmd,通過 TCP 公開,假設在埠 12345 上。我還希望它在後台全職執行。

最好的方法是什麼?如果相關,則係統正在執行 Ubuntu 12.04.2。

此外,對於建議的解決方案,它是否能在被刪除和重新創建的域套接字中倖存下來?

編輯

這是以 init 腳本形式接受的答案的結果: https ://github.com/Wirehive/haproxy-remote

您可以使用socat將您的 unix 套接字導出為 TCP 套接字。這是執行此操作的命令:

socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd

這將在埠 12345 上創建 TCP 套接字偵聽,該套接字將連接到您程序中提到的 unix 套接字。

對於刪除問題,我自己沒有測試。你可以驗證它並告訴我們:)

注意: 你可能沒有安裝 socat,你只需要輸入:apt-get install socat來安裝它。

引用自:https://serverfault.com/questions/517906