如何使用 socat 作为代理服务器?

6 socat

我希望我的 .NET 应用程序使用我知道如何做的代理,但 .net 不支持 sock4a/sock5。我知道如何设置我的应用程序,但是,如何设置 socat 作为 TCP 代理在端口 1234 上侦听并使用 127.0.0.1:5678 上的 socks5 服务器?

它必须转发所有 TCP 连接。我之前在 privoxy 上很幸运,但它只支持 http 连接。

PS:我在windows上但是命令应该和linux一样

mgo*_*ven 6

您没有指定要通过 SOCKS 服务器连接的目标主机。我google.com在这个例子中使用了端口 80。

socat TCP-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
Run Code Online (Sandbox Code Playgroud)

TCP-LISTEN地址上侦听从.NET应用程序连接的端口。1234显然是端口号,该fork选项允许建立多个连接。该SOCKS4A地址是要连接到的 SOCKS 服务器和目标主机。(如果不希望SOCKS服务器做DNS解析更改SOCKS4ASOCKS4.)127.0.0.1是SOCKS服务器的地址,socksport选项指定SOCKS服务器的端口。google.com:80是要求 SOCKS 服务器连接的目标主机和端口。

  • @acidzombie24你的应用程序知道,但它需要“告诉”代理,这意味着你需要应用程序和代理之间有一个可以传达该信息的协议......就像SOCKS一样。 (3认同)
  • @acidzombie24 在这种情况下,您的应用程序需要了解那里有一个代理并实际与该代理对话。socat 无法神奇地知道应用程序想要连接到哪里。 (2认同)