OpenVPN 来自对等方的错误封装数据包长度

For*_*101 5 openvpn

我有一个在云中运行的 OpenVPN 服务器,用于侦听 1194/tcp,并添加了 UFW,将 443 转发到 1194(因此我可以在有限制性防火墙的地方使用我的 VPN。)

当我尝试打开一个 https 连接到 google.com 时,我在 OpenVPN 服务器的日志中看到以下内容,并且该页面几乎死掉了。

WARNING: Bad encapsulated packet length from peer ([[Peer number]]), which must be > 0 and <= 1575 -- please ensure that --tun-mtu or --link-mtu is equal on both peers -- this condition could also indicate a possible active attack on the TCP link -- [Attempting restart...]
Run Code Online (Sandbox Code Playgroud)

正常的 HTTP 流量和我测试过的任何其他类型的流量似乎都可以正常工作,除了 HTTPS。

我几乎完全按照本指南https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04来设置所有内容。

为了转发,我在 UFW before.rules 中添加了几行

...
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 1194
COMMIT
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

编辑:我将它从端口 443 移开,然后它又开始工作了。如果您想使用 HTTPS,似乎无法进行重定向。我只需要找到另一个开放的端口。

And*_*gin 2

问题是REDIRECT iptables 规则过于宽泛,因为它会影响所有 NAT 流量。它应仅限于传入 VPN 服务器的流量。

更改该规则,使其仅通过指定客户端用于连接到 VPN 服务器的接口或 IP 地址来匹配传入流量。

例如:

-A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 1194

其中eth0是 VPN 客户端连接的接口(很可能是 WAN 接口)

或者:

-A PREROUTING -d 192.0.2.0 -p tcp --dport 443 -j REDIRECT --to-port 1194

其中192.0.2.0是 VPN 客户端连接的 IP 地址(很可能是外部 IP 地址)。