我遇到了一个有点奇怪的问题,我的 WNDR3700 路由器上运行着一个使用 DD-WRT 的 OpenVPN 服务器。
服务器配置
push "route 192.168.1.0 255.255.255.0"
server 192.168.1.0 255.255.255.0
dev tun0
proto udp
keepalive 10 120
dh /tmp/openvpn/dh.pem
ca /tmp/openvpn/ca.crt
cert /tmp/openvpn/cert.pem
key /tmp/openvpn/key.pem
顺便说一句,我也尝试了桥接模式,结果是一样的!
客户端配置
remote myserver.com 1194
client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
verb 3
一旦隧道启动,我将使用 comp-lzo 和 cipher。
问题问题是,当我尝试远程桌面或浏览 VPN 端 LAN 内的网站时,连接会断开。但我可以通过 SSH 和 Ping 服务器,而不会断开连接。但只要我尝试访问网站(即 192.168.1.1 路由器管理接口),Ping 就会停止,连接不再起作用。
例子
ping 192.168.1.1 -n 1000
Reply from 192.168.1.1: bytes=32 time=27ms TTL=64
Reply from 192.168.1.1: bytes=32 time=27ms TTL=64
Reply from 192.168.1.1: bytes=32 time=28ms TTL=64
Request timed out.
这暂停当我通过 VPN 执行“繁重”操作时,会发生这种情况。有什么建议可以解决此问题吗?之前,相同的设置已在另一个 VPN 服务器上运行,我看不到任何奇怪的设置。
答案1
看起来像是 MTU 问题,通过发送大数据包 ping 进行验证(ping -s
)。检查数据包拆分选项,如果有效,请打开 LZO 压缩(否则性能可能会下降)。还要检查是否宣传较小的 MTU(仅适用于路由器链接,不适用于桥接类型链接)
编辑:从OpenVPN 文档:
这种故障的常见症状是 OpenVPN 连接成功启动,但在使用过程中停止。
如果 --fragment 和 --mssfix 一起使用,--mssfix 将从 --fragment max 选项中获取其默认 max 参数。
因此,可以使用以下选项将最大 UDP 数据包大小降低到 1300(解决与 MTU 相关的连接问题的良好首次尝试):
--tun-mtu 1500 --fragment 1300 --mssfix
答案2
您的 VPN IP 范围似乎与您的内部网络 IP 范围相同 - 这是不可取的/不可能的:
推“路由 192.168.1.0 255.255.255.0”服务器 192.168.1.0 255.255.255.0
尝试选择不同的 VPN IP 范围(例如服务器 10.8.0.0 255.255.255.0)
高血压,
吉吉克
答案3
这里也有类似的问题。在 DD-WRT 论坛上,还有其他人报告了 DD-WRT / WNDR3700 / OpenVPN 组合存在问题。
我将 OpenVPN 配置从路由器传输到 LAN 上的服务器,并且运行正常。
我认为这是由于此路由器与 DD-WRT / OpenVPN 之间存在某种不兼容性,不幸的是,您无能为力。真遗憾。