在 Windows 7 上浏览 https 网站时 OpenVPN 客户端超时

在 Windows 7 上浏览 https 网站时 OpenVPN 客户端超时

客户端配置

client
dev tun
proto tcp
remote -.-.-.- 443
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-128-CBC
auth SHA256
key-direction 1
comp-lzo
verb 3

服务器配置(在 Ubuntu 16 上)

port 443
proto tcp
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
server 10.77.77.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
key-direction 0
cipher AES-128-CBC   # AES
auth SHA256
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

该问题仅发生在我所有的 Windows 机器上,当我尝试打开任何安全网站时,https://google.com但是当我连接到 OpenVPN 并从我的 iPhone 或 Ubuntu 打开它时,连接根本不会超时。

编辑:例如,如果我在浏览非安全站点(http)时 ping google.com,它会稳定且正常,但是当我打开安全站点(https)时,ping 会飙升至 2k 毫秒左右,然后超时约 1-2 分钟后才恢复正常。最终页面会加载,但需要经过长时间的延迟。

我在 Windows 上使用 OpenVPN TAP 适配器,可能是适配器问题或者是密码问题?

答案1

如果您能用小数据包 ping 主机,但不能用大数据包 ping 主机,那么您可能遇到了以下两个问题之一:1) 电缆或连接不良,错误较多,2) MTU 问题。如果您能用大数据包 ping 网关主机,而其他设备工作正常,那么您的问题就不是第一个。这是 MTU 问题。但为什么呢?可能是 Windows 防火墙或 ISP 阻止了某种类型的 ICMP 或路径 MTU 发现数据包。

来自文档:

目前在 Windows 上,更改 TAP-Windows MTU 的唯一方法是转到适配器高级属性并手动执行。因此,最简单的选择是将 TAP-Windows MTU 设置保留为“1500”,并告诉 OpenVPN双方连接使用 MTU 为“1500”的配置选项:tun-mtu 1500

如果由于碎片或路由器问题而需要降低 MTU,请使用:mssfix 1300

还可以使用UDP数据包TCP以获得良好的表现。

考虑到以上所有因素,在客户端和服务器配置文件中均包含:

proto udp 
dev tun 
tun-mtu 1500 
mssfix 1300

从好文章中了解解决 OpenVPN MTU 问题注释——官方文档站点上的 MTU

相关内容