Я пытался улучшить производительность OpenVPN, и это моя текущая настройка:
cat /etc/openvpn/server.conf
port 443 #- port
proto tcp #- protocol
dev tun
#tun-mtu 1500
tun-mtu-extra 32
#mssfix 1450
tun-mtu 64800
mssfix 1440
reneg-sec 0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login
#plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS
#plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #- Uncomment this line if you are using FreeRADIUS
client-to-client
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status 1194.log
verb 3
КЛИЕНТ:
client
dev tun
proto tcp
remote 18.4.26.8 443
resolv-retry infinite
nobind
tun-mtu 64800
tun-mtu-extra 32
mssfix 1440
persist-key
persist-tun
auth-user-pass
comp-lzo
verb 3
Я внес некоторые изменения в MTU и MSSFIX из того, что нашел в Интернете.
Могу ли я внести какие-либо изменения в ядро? Это коробка CentOS 6.x. Я нашел кое-что для BSD, но ничего не работало для Linux.
Я знаю, что TCP медленнее, чем UDP, но мне нужно иметь возможность выглядеть как трафик SSL, чтобы пройти через брандмауэр в сети.
Другие идеи?
ПИНГ к другому клиенту в сети, в которую я использую RDP.
Pinging 10.8.0.6 with 32 bytes of data:
Reply from 10.8.0.6: bytes=32 time=152ms TTL=128
Reply from 10.8.0.6: bytes=32 time=565ms TTL=128
Reply from 10.8.0.6: bytes=32 time=152ms TTL=128
Reply from 10.8.0.6: bytes=32 time=782ms TTL=128
Ping statistics for 10.8.0.6:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 152ms, Maximum = 782ms, Average = 412ms
Есть ли способы повысить производительность или снизить пинг?
РЕДАКТИРОВАТЬ: Поможет ли установка параметра фрагментации?
Короткий ответ: отключить comp-lzo
.
Я понимаю, что это старый пост, но я также страдал от плохой производительности OpenVPN. Я перепробовал все, отрегулировал MTU, изменил буферы snd и rcv, зажал mss и так далее. Загрузка процессора была незначительной.
По прихоти отключил сжатие (убрал comp-lzo
от клиента и сервера) и производительность увеличилась в 2-4 раза.
Итак, с comp-lzo
При включении моя максимальная производительность составляла около 25-30 Мбит / с, а без нее я достиг 120 Мбит / с (скорость моего интернет-соединения).
Сервер - Xeon E5-2650, клиент - Core i5-3320M. Оба работают под OpenVPN 2.3.10, AES-256-CBC, SHA512. Мой Intel Chromebook также увеличил мою скорость интернета. На моих клиентах Android производительность увеличилась вдвое (14 Мбит / с -> 30 Мбит / с), что соответствует скорости туннеля IKEv2.
TCP будет / намного / медленнее, чем UDP, из-за TCP-через-TCP проблема. По сути, TCP полагается на отбрасывание / перегрузку пакетов для определения параметров соединения, и ваши соединения TCP-over-OpenVPN не испытывают ни одного из них. Но вы сказали, что это не вариант.
Вы также можете попробовать mtu-disc
возможность автоматического определения оптимальных настроек MTU для вашего соединения. Есть небольшие несоответствия в разных местах, например, в настройке MTU OpenVPN, включая размер заголовка Ethernet. [1]
Ваш tun-mtu
Эта настройка является огромной, так как пакет размером 65 КБ будет иметь много проблем с задержкой при прохождении через Интернет (пакеты большого размера IPv4 имеют размер около 9000 байт и в основном работают в локальных сетях). Попробуйте вместо этого что-нибудь под 1460, например 1300, чтобы узнать, не является ли MTU вашей проблемой.
Хотя это может быть немного поздно, вы можете попробовать то, что сделал я:
удалить все параметры, связанные с mss, mtu и т. д.
выполните сканирование портов в своем учреждении и выберите порт UDP, обычно 53 порта GRE / 123 NDP должны быть открыты:
Добавьте эти строки в конфигурацию вашего сервера (ref Вот)
#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
Я не совсем понимаю эти настройки, но они, безусловно, помогли, некоторые говорят, что это очень помогает, по моему опыту, это увеличило мою пропускную способность на +/- 30%.
Запустите сервер на одном из этих портов, и все будет в порядке: P
Надеюсь это поможет!
sndbuf и rcvbuf исправляют ДРЕВНУЮ настройку в linux / unix / openvpn с дней коммутируемого доступа, чтобы оптимизировать для более медленных настроек, даже если ОС оптимизирована для более быстрых
sndbuf / rcvbuf, установленный в 0, будет просто использовать настройки ОС
push используется, чтобы убедиться, что клиент настроен правильно, но вам нужно значение.