Назад | Перейти на главную страницу

Повышение производительности OpenVPN

Я пытался улучшить производительность 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 используется, чтобы убедиться, что клиент настроен правильно, но вам нужно значение.