Openvpn 将所有路由转发到 socks 端口

Openvpn 将所有路由转发到 socks 端口

是否可以配置 openVPN 以通过 socks 端口路由所有客户端连接?例如,我希望设置如下:

Client -> openvpn server -> localhost socks5 port -> socks5 port forward -> the internet
machine 1    machine 2           machine 2              machine 3

我该如何做呢?

到目前为止,我一直在做同样的事情,但是使用 SSH 隧道而不是 vpn,虽然它运行良好,但我将添加不能像 vpn 那样进行 ssh 隧道连接的新设备。

答案1

我认为你不能。

SOCKS 不是网络(第 3 层)协议,而是第 4 层协议,与其余应用程序一样。除了 OpenVPN(在第 3 层运行)之外,如果客户端想要通过 SOCKS 代理路由其流量,通常必须具备 SOCKS 感知能力。每个客户端软件都必须知道 SOCKS 代理在哪里,每个客户端软件都必须知道如何通过该代理打开 SOCKS 连接,等等。

当您将 OpenVPN 添加到图片中时,它不会突然让最终客户端应用程序变得更加明亮。远程 OpenVPN 服务器也无法神奇地让通过它的任何客户端流量启用 SOCKSification。

OpenVPN它能够通过本地 SOCKS 代理建立到远程端节点的隧道,但我相信它只能做到这一步了。

答案2

MadHatter 的回答是正确的,但我怀疑这是一个XY问题。如果您在能够路由和 NAT 流量的机器上终止 OpenVPN(即任何现代服务器操作系统),那么绝对可以将 OpenVPN 和所述机器配置为网络代理,这样客户端连接就会出现在公共互联网上,就好像它们来自代理机器一样。如果这是您要解决的问题,iptables NAT 和一些路由调整对我来说非常有用。

相关内容