Próbowałem poprawić wydajność OpenVPN i oto moja obecna konfiguracja:
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
KLIENT:
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
Wprowadziłem pewne zmiany w MTU i MSSFIX od tego, co znalazłem w sieci.
Czy mogę wprowadzić jakieś zmiany w jądrze? To jest pudełko CentOS 6.x. Znalazłem trochę rzeczy opartych na BSD, ale nic nie działało dla Linuksa.
Wiem, że TCP działa wolniej niż UDP, ale muszę wyglądać jak ruch SSL, aby przejść przez zaporę w sieci.
Inne pomysły?
PING do innego klienta w sieci, do której I 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
Czy są jakieś sposoby na poprawę wydajności lub upuszczenie pinga?
EDYCJA: Czy ustawienie fragmentacji pomogłoby?
I know TCP is slower then UDP but I need to be able to look like SSL traffic to get thru a firewall on the network.
Dlaczego nie poprosić administratora sieci o otwarcie portu openvpn w pracy? W powiązanej notatce to pytanie może naruszać warunki FAQLicensing, legal advice, and *circumvention of security or policy*
, które wyjaśnię.Odpowiedzi:
Krótka odpowiedź: wyłącz
comp-lzo
.Zdaję sobie sprawę, że to stary post, ale cierpiałem również z powodu słabej wydajności OpenVPN. Próbowałem wszystkiego, dostosowując MTU, zmieniając bufory snd i rcv, zaciskanie mss, nazywacie to. Obciążenie procesora było znikome.
comp-lzo
Kaprys wyłączyłem kompresję (usuniętą z klienta i serwera), a wydajność wzrosła 2-4x.Tak więc, po
comp-lzo
włączeniu moja maksymalna wydajność wynosiła około 25-30 Mbit / s, a bez niej osiągnąłem 120 Mbit / s (prędkość mojego połączenia internetowego).Serwer to Xeon E5-2650, klient to Core i5-3320M. Oba działają z OpenVPN 2.3.10, AES-256-CBC, SHA512. Mój Chromebook Intel również zwiększył prędkość internetu. Wydajność podwoiła się na moich klientach z Androidem (14 Mbit / s -> 30 Mbit / s), co odpowiada prędkości tunelu IKEv2.
źródło
TCP będzie / znacznie / wolniejszy niż UDP, spowodowany problemem TCP-over-TCP . Zasadniczo protokół TCP polega na upuszczaniu / przeciążeniu pakietów w celu identyfikacji parametrów połączenia, a połączenia TCP przez OpenVPN nie doświadczają żadnego z nich. Ale powiedziałeś, że to nie jest opcja.
Możesz także wypróbować
mtu-disc
opcję automatycznego wykrycia optymalnych ustawień MTU dla twojego połączenia. Występują niewielkie niedopasowania w różnych miejscach, takich jak ustawienie MTU OpenVPN, w tym rozmiar nagłówka Ethernet. [ 1 ]Twoje
tun-mtu
ustawienie jest ogromne, ponieważ pakiet 65 KB będzie miał wiele problemów związanych z opóźnieniami w Internecie (duże pakiety IPv4 mają około 9000 bajtów i przeważnie działają w sieciach lokalnych). Wypróbuj coś poniżej 1460, np. 1300, aby sprawdzić, czy problem stanowi MTU.źródło
Chociaż może to być trochę za późno, możesz spróbować tego, co zrobiłem:
usuń wszystkie opcje związane z mss, mtu itp
wykonaj skanowanie portów w swojej instytucji i wybierz port UDP, ogólnie 53 porty GRE / 123 NDP powinny być otwarte:
Dodaj te wiersze do konfiguracji serwera (patrz tutaj )
Nie do końca rozumiem te ustawienia, ale z pewnością pomogły, niektórzy twierdzą, że to pomaga, z mojego doświadczenia wynika, że zwiększyłem moją przepustowość o +/- 30%
Uruchom serwer na jednym z tych portów i powinieneś iść: P
Mam nadzieję że to pomoże!
źródło
sndbuf i rcvbuf korygują ustawienie ANTYCZNE w linux / unix / openvpn od dni dialup, aby zoptymalizować wolniejsze ustawienia, nawet jeśli system operacyjny jest zoptymalizowany pod kątem szybszych
sndbuf / rcvbuf ustawiony na 0 po prostu użyje ustawień systemu operacyjnego
Funkcja push służy do upewnienia się, że klient jest poprawnie ustawiony, ale tam potrzebujesz wartości.
źródło