我正在试验通过 Tor 路由的 OpenVPN 连接,使用一对 Tor 网关和 OpenVPN 托管虚拟机。在服务器端,链接本地端口被转发到关联网关虚拟机上的 Tor 隐藏服务端口。在客户端,OpenVPN 通过关联的 Tor 网关虚拟机上的袜子代理进行连接。
上述设置适用于所有 Tor 网关和 OpenVPN 托管虚拟机的 Debian 7。我在用着霍尼克斯,已更新至 OpenVPN 2.3.2(构建于 2013-09-12)。服务器-客户端 ping 大约为 1200 毫秒。
但是,使用 pfSense 2.1 作为 Tor 网关和服务器端 OpenVPN 托管虚拟机时,该设置无法正常工作。 pfSense 2.1 还具有 OpenVPN 2.3.2(构建于 2013-07-24)。对于 Debian 和 pfSense 客户端,我看到:
TCP connection established with [AF_INET]192.168.0.10:9152
recv_socks_reply: TCP port read timeout expired: Operation now in
progress (error ...)
这与中报告的错误相同Debian 错误 #657964对于 openvpn 版本 2.2.1-3:“openvpn:无法使用 SOCKS 代理连接到 VPN”。这也被报道在OpenVPN 错误 #328对于 openvpn 版本 2.3.2:“当代理服务器速度较慢时,openvpn 客户端会放弃而不是重试”。
然而,这可能不是同一个错误。这里的问题可能是通过 Tor 隐藏服务转发 OpenVPN 服务器端口的延迟,而不是客户端 Tor SOCKS 代理的延迟。或者两者皆有。
无论如何,我发现 OpenVPN 2.3.2 服务器在 pfSense 2.1 中失败并出现此客户端错误,但在 Debian 7 中则不然。也许 Debian 7 存储库中的最新软件包包含自 pfSense 2.1 构建以来发布的错误修复。
如何配置 OpenVPN 等待慢速 SOCKS 代理?
答案1
Op(即我)没有采取此 OpenVPN 常见问题解答足够认真地:
One of the most common problems in setting up OpenVPN is that the two
OpenVPN daemons on either side of the connection are unable to
establish a TCP or UDP connection with each other.
This is almost [always] a result of:
...
A software firewall running on the OpenVPN server machine itself is
filtering incoming connections on port 1194 [here 5000-5007]. Be aware
that many OSes will block incoming connections by default, unless
configured otherwise.
OpenVPN没有任何问题。
我只是忽略了在运行 OpenVPN 服务器的 pfSense VM 中为 WAN 创建防火墙规则,以提供对 Tor 网关 pfSense VM 中隐藏服务代理的访问。
多么尴尬。但我认为,这个问题应该保留,以防其他人犯和我一样的愚蠢错误。