LINUX.ORG.RU
ФорумAdmin

OpenVPN занижает скорость отдачи

 


2

2

Здравствуйте, есть vps с openvpn на centos 7 Скорость на vps 90/100 мбит/с. Клиент на windows 7 : Скорость 60/30 мбит/с Если отключить аутентификацию и шифрование то 80/40 мбит/с Нагрузка на проц(на vps) при замере скорости около ~50-60%

Вопрос, почему так сильно режется скорость отдачи и можно ли это пофиксить?

Конфиг сервера:

port 1194
proto udp
dev tun
sndbuf 524288
rcvbuf 524288
push "sndbuf 524288"
push "rcvbuf 524288"
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
#ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
push "dhcp-option DNS 1.1.1.1"
push "redirect-gateway def1 bypass-dhcp" 
crl-verify crl.pem
ca ca.crt
cert server_BOvQy7hy7IB2ZXk6.crt
key server_BOvQy7hy7IB2ZXk6.key
tls-auth tls-auth.key 0
dh dh.pem
auth SHA256
cipher AES-128-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
status openvpn.log
verb 3

Конфиг клиента:

client
proto udp
remote xx.xx.xx.xx 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_BOvQy7hy7IB2ZXk6 name
auth SHA256
auth-nocache
cipher AES-128-CBC
tls-client
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
setenv opt block-outside-dns
verb 3
<ca>
тут ключи
</ca>
<cert>
тут ключи
</cert>
<key>
тут ключи
</key>
key-direction 1
<tls-auth>
тут ключи
</tls-auth>


Такова архитектурная особенность openvpn, т.к. он работает в юзерспейсе. Используй ipsec или wireguard, если хочешь чтоб канал утилизировался максимально полезно.

Deleted
()

А напрямую между сервером и клиентом какая скорость? Тут недавно кто-то тоже пытался крутить параметры, а как оказалось «ларчик просто открывался».

anc ★★★★★
()
23 декабря 2018 г.
Ответ на: комментарий от anc

Столкнулась с аналогичной проблемой,

Подскажите, а как всё-таки проверить скорость между сервером OpenVPN и клиентом. Инфраструктура такая же (Centos 7 - сервер, Windows 7 - клиент).

Попробовала установить Speedtest на python (растиражированный в сети мануал) - битая ссылка на скачивание.

Speedtest-mini - проект прикрыт в 2017.

Может, как-то проще можно?

manik207
()
Ответ на: комментарий от Jopich1

Спасибо!

Сделала замеры iperf с такой архитектурой:

 10.0.0.6    <--3 Mbit--  10.0.0.1  <--42 Mbit--  10.0.0.10
(Windows7)   --28 Mbit--> (Centos7) --12 Mbit-->  (Centos7)

Без OpenVPN, на тех же машинах, картина выглядит так (оба клиента 10.0.0.6 и 10.0.0.10 находятся на одном IP, а сервер OpenVPN - на VPS:

95.XX.XX.XX  <--10 Mbit-- 194.ZZ.ZZ.ZZZ  <--45 Mbit--  95.XX.XX.XX
(Windows7)   --34 Mbit-->  (Centos7)     --15 Mbit-->   (Centos7)

Т.е. OpenVPN объективно занижает скорость отдачи на виндовый клиент.

Куда смотреть и копать, что максимально утилизировать канал?

manik207
()
Ответ на: комментарий от Jopich1

А вообще зачем vpn ? Если чисто для обхода блокировок то достаточно shadowsocks или простейшего прокси

Jopich1
()
Ответ на: Спасибо! от manik207

Просадка с 10-ки до 3-х чего-то очень дофига. Вы замеры делали на тех же портах и тот же протокол? А то может у вас стандартный 1194/udp а скорость (без vpn) померили на tcp другой порт. Это я к тому что где-то по дороге могут резать например udp. Или конкретно 1194.

anc ★★★★★
()
Ответ на: Спасибо! от manik207

Не сразу обратил внимание, что один ip у клиентов. Говорим только про прямой замер скорости без всяких впн. Как понял я из вашей схемки:
1. Получаеться что с шинды исходящая скорость просаживается по сравнению с Centos7 на 11Mbit (<--45 Mbit-- и --34 Mbit-->). Что-то не так с шиндой.
2. Что за асиметрия когда входящий гораздо медленнее исходящего? Предположим домашний adsl, но в нем пилят все с точностью до наоборот.

anc ★★★★★
()
Ответ на: комментарий от anc

Спасибо!

Соединение - обычный WAN (выделенная линия) TCP/IPv4 100Мбит, с тарифом от провайдера в 40Мбит. Проверка с виндового клиента по 2IP показывает скорость входящая ↓34.83 Mбит/сек, иcходящая ↑62.74 Mбит/сек.

Порт для OpenVPN-сервера изначально нестандартный, конфиг сервера такой:

 cat /etc/openvpn/server.conf
port 4545
proto udp...

Замер скорости в схеме делала через iperf по стандартному для него порту 5201.

Update:

Увеличила размер дефолтного буфера на самом сервере OpenVPN и перезагрузила:

 cat /etc/sysctl.conf

net.core.rmem_max = 6291456
net.core.wmem_max = 4194304
net.core.wmem_default = 1048576
net.core.rmem_default = 1048576

Картина поменялась:

 10.0.0.6    <--22 Mbit--  10.0.0.1  
(Windows7)   --40 Mbit--> (Centos7) 


95.XX.XX.XX  <--21 Mbit-- 194.ZZ.ZZ.ZZZ  
(Windows7)   --39 Mbit--> (Centos7)

Всё-таки, дело в максимальном размере буфера. Спасибо!

manik207
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.