При использовании OpenVPN измерения на стороне сервера в восходящем направлении (tun0
и eth0
) и на стороне клиента в нисходящем направлении (Networx) подтверждают, что мое соединение имеет скорость 16 Мбит / с.
Но все мои приложения для ПК видят ровно половину этой скорости.
[Server] <--16 Mbit/s--> [Client PC] <--8 Mbit/s--> [PC apps (e.g. Steam)]
Что происходит?
VPN-сервер Linux использует пример конфигурации по умолчанию, за исключением того, что я использую TCP, использую другой порт, изменил шифр на AES-128 и использую fast-io
и tcp-nodelay
.
Я также запустил echo 1 > /proc/sys/net/ipv4/tcp_low_latency
стороне сервера.
Для клиента Windows я отключил алгоритм Nagle. Остальное следует настройкам сервера (TCP, разные порты и т.д.)
Все эти настройки направлены на снижение задержки, которая, кажется, работает (200 мс против 35 мс).
Конфигурация сервера:
# 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>