У меня есть сервер OpenVPN с Debian 8
и OpenVPN 2.3.14 x86_64-pc-linux-gnu
. Сегодня я осознал потерю пакетов. Мой сервер находится на TCP-порту 443.
Ping statistics for 144.76.41.103:
Packets: Sent = 1135, Received = 1121, Lost = 14 (1% loss),
Approximate round trip times in milli-seconds:
Minimum = 29ms, Maximum = 961ms, Average = 51ms
Другая статистика:
Ping statistics for 144.76.41.103:
Packets: Sent = 1135, Received = 1121, Lost = 70 (5% loss),
Approximate round trip times in milli-seconds:
Minimum = 29ms, Maximum = 961ms, Average = 51ms
Конфигурация сервера:
port 443
float
proto tcp
dev tun2
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/1.crt
key /etc/openvpn/keys/1.key
dh /etc/openvpn/keys/dh2048.pem
tls-auth /etc/openvpn/keys/ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
script-security 3
auth-user-pass-verify "/etc/openvpn/auth.sh" via-env
keepalive 20 100
cipher BF-CBC
max-clients 100
persist-key
persist-tun
username-as-common-name
log logs/443tcp.log
log-append logs/443app.log
status status/443tcp_status.log 60
verb 2
mute 15
inactive 1200
comp-lzo
reneg-sec 86400
up /etc/openvpn/up.sh
Из-за этого я часто получаю лаг (просто зависание на секунду) в моих приложениях, консолях SSH и, конечно же, в онлайн-играх.
Есть идеи, что могло вызвать это?
Вам необходимо установить правильный MTU для вашего VPN-соединения. Вы можете определить значение с помощью ping
команда. Запустить pinging сервер от клиента с
ping -M do -s 1500 -c 1 10.8.0.1
Вероятно, он скажет ping: local error: Message too long, mtu=1500
Уменьшайте значение 1500 на 10 каждый раз, пока проверка связи не будет успешной. После успешной проверки связи используется значение MTU, которое вы должны использовать. OpenVPN требует установки значения, называемого MSS. MSS - это значение MTU минус 40.
Например. Если ваш MTU - 1460, ваш MSS - 1420
MSS = MTU - 40
MSS = 1460 - 40
MSS = 1420
Чтобы установить MSS для OpenVPN, добавьте следующую строку конфигурации сервера (заменив 1420 соответствующим значением).
mssfix 1420
Вы также можете включить автоматическое обнаружение MSS, используя следующие директивы конфигурации:
tun-mtu 1460
mtu-disc yes