在使用 OpenVPN 时,服务器端上行(tun0
和eth0
)以及客户端下行(Networx)的测量结果均一致表明我的连接速度为 16 Mbit/s。
但是,我所有的 PC 应用程序都看到确切地速度只有原来的一半。
[Server] <--16 Mbit/s--> [Client PC] <--8 Mbit/s--> [PC apps (e.g. Steam)]
这是怎么回事?
这LinuxVPN 服务器使用默认示例配置,但我正在使用 TCP,使用不同的端口,将密码更改为 AES-128,并且我正在使用fast-io
和tcp-nodelay
。
我也运行了echo 1 > /proc/sys/net/ipv4/tcp_low_latency
服务器端。
为了视窗客户端,我禁用了 Nagle 算法。其余部分遵循服务器设置(TCP、不同端口等)
所有这些设置都是为了减少延迟,这似乎是有效的(200ms 对 35ms)。
服务器配置:
# Base stuff
port XXXXX
dev tun
proto tcp
# Security stuff
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
tls-auth ta.key 0
key-direction 0
cipher AES-128-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
verb 3
status openvpn-status.log
# Client rules
client-to-client # Allows clients to see each other
duplicate-cn # One config file for all clients
# Networking stuff
keepalive 5 120
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 208.67.222.222"
# Optimization stuff
sndbuf 0
rcvbuf 0
comp-lzo
tcp-nodelay
fast-io
客户端 OVPN 文件:
client
dev tun
proto tcp
tcp-nodelay
fast-io
remote X.X.X.X XXXXX
remote X.X.X.X XXXXX
resolv-retry infinite
nobind
persist-key
persist-tun
user nobody
group nogroup
remote-cert-tls server
cipher AES-128-CBC
auth SHA256
key-direction 1
comp-lzo
verb 3
sndbuf 0
rcvbuf 0
<ca>
XXXXXXXXXXXXXXXXXx
</ca>
<cert>
XXXXXXXXXXXXXXXXXx
</cert>
<key>
XXXXXXXXXXXXXXXXXx
</key>
<tls-auth>
XXXXXXXXXXXXXXXXXx
</tls-auth>