我们有 server1 和 server2
在 server2 上安装了 socks5 代理服务器并监听 TCP 端口 1080
在 server2 上安装了一个 openvpn 服务器,监听 TCP 端口 1194
server1 连接到 socks5 代理(在 server2 上)并监听本地端口 1070。
是否可以使用 socat 来做到这一点?:
我们希望使用 socks5 隧道将发送到服务器 1 端口 9090 的任何数据包转发到服务器 2 端口 1194。这意味着如果我们更改 openvpn 配置文件并将服务器 2 IP 替换为服务器 1 IP,将端口 1194 替换为 9090,则连接会被转发。
如果 server2 中的代理类型是 HTTP,当 chatgpt 的这个答案工作正常时(我们需要apt install corkscrew
先运行):
只需在 server1 中运行此命令:
socat TCP4-LISTEN:9090,reuseaddr,fork EXEC:'corkscrew 127.0.0.1 1070
但是socks5代理的答案是什么呢?
如果我理解正确的话,您只想将 server1:9090 转发到 server1:1070 - 这应该可以实现您想要的效果:
socat TCP4-LISTEN:9090,reuseaddr,fork TCP4:server2:1070
Socat 1.8.0.0 有一个实验性的 socks5 客户端。因此,以下命令可能会执行您想要的操作:
您可能需要用适当的 IP 地址甚至 127.0.0.1 替换 server2