การปรับปรุงประสิทธิภาพ OpenVPN


10

ฉันพยายามปรับปรุงประสิทธิภาพ 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 เพื่อผ่านไฟร์วอลล์บนเครือข่าย

ความคิดอื่น ๆ ?

ส่ง Ping ไปยังไคลเอนต์อื่นในเครือข่ายที่ฉัน 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

มีวิธีใดบ้างในการปรับปรุงประสิทธิภาพหรือลดค่า ping บ้าง?

แก้ไข: การตั้งค่าการกระจายตัวจะช่วยบ้างไหม?


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.ทำไมไม่ขอให้ผู้ดูแลระบบเครือข่ายของคุณเปิดพอร์ต openvpn ในที่ทำงาน? ในหมายเหตุที่เกี่ยวข้องคำถามนี้ซึ่งอาจละเมิดเงื่อนไขของคำถามที่พบบ่อยที่Licensing, legal advice, and *circumvention of security or policy*ฉันจะชี้แจง
prateek61

1
ไม่มีอะไรผิดกฎหมายเกี่ยวกับมัน เป็นเพียงวิธีเดียวในการเข้าถึงระบบของฉันเองจากระยะไกล :)

2
ฉันกำลังพูดถึงเพิ่มเติมเกี่ยวกับการข้ามนโยบายไฟร์วอลล์ทุกที่ที่คุณอยู่ ทำไมคุณไม่สามารถขอให้ผู้ดูแลระบบเครือข่ายเปิดพอร์ตได้ ฉันไม่ได้พูดถึงความถูกต้องตามกฎหมายมากขึ้นเกี่ยวกับการหลีกเลี่ยงนโยบายความปลอดภัย
prateek61

บางทีsshuttleจะทำงานได้ดีขึ้นสำหรับคุณสำหรับ tcp-over-tcp vpn
ptman

คำตอบ:


13

คำตอบสั้น: comp-lzoปิดการใช้งาน

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่ฉันก็ทุกข์ทรมานจากประสิทธิภาพของ OpenVPN ที่แย่ ฉันลองทุกอย่างแล้วปรับ MTU เปลี่ยนบัฟเฟอร์ snd และ rcv mss clamping คุณตั้งชื่อมัน โหลดของ CPU นั้นเล็กน้อย

ฉันปิดการใช้งานการบีบอัด (ลบออกcomp-lzoจากไคลเอ็นต์และเซิร์ฟเวอร์) และประสิทธิภาพเพิ่มขึ้น 2-4 เท่า

ดังนั้นด้วยการcomp-lzoเปิดใช้งานประสิทธิภาพสูงสุดของฉันอยู่ที่ประมาณ 25-30 Mbit / s และหากไม่มีมันฉันจะกด 120 Mbit / s (ความเร็วการเชื่อมต่ออินเทอร์เน็ตของฉัน)

เซิร์ฟเวอร์เป็น Xeon E5-2650 ลูกค้าคือ Core i5-3320M ทั้งที่ใช้ OpenVPN 2.3.10, AES-256-CBC, SHA512 Intel Chromebook ของฉันยังเร่งความเร็วอินเทอร์เน็ตของฉันด้วย ประสิทธิภาพเพิ่มเป็นสองเท่าสำหรับไคลเอนต์ Android ของฉัน (14 Mbit / s -> 30 Mbit / s), จับคู่ความเร็วอุโมงค์ IKEv2


6

TCP เป็นไปได้ / มาก / ช้ากว่า UDP ที่เกิดจากTCP-over-TCPปัญหา โดยทั่วไปแล้ว TCP จะพึ่งพาการปล่อยแพ็คเก็ต / ความคับคั่งในการระบุพารามิเตอร์การเชื่อมต่อและการเชื่อมต่อ TCP-over-OpenVPN ของคุณจะไม่ประสบปัญหาใด ๆ แต่คุณบอกว่านั่นไม่ใช่ตัวเลือก

คุณสามารถลองใช้mtu-discตัวเลือกเพื่อค้นหาการตั้งค่า MTU ที่เหมาะสมที่สุดสำหรับการเชื่อมต่อของคุณโดยอัตโนมัติ มีความไม่ตรงกันเล็กน้อยในสถานที่ต่าง ๆ เช่นการตั้งค่า MTU ของ OpenVPN รวมถึงขนาดของส่วนหัวอีเธอร์เน็ต [ 1 ]

tun-mtuการตั้งค่าของคุณมีขนาดใหญ่เนื่องจากแพ็คเก็ต 65KB จะมีปัญหาเรื่องเวลาในการตอบสนองจำนวนมากผ่านทางอินเทอร์เน็ต (แพ็คเก็ตจัมโบ้ IPv4 มีขนาดประมาณ 9000 ไบต์และส่วนใหญ่ทำงานบนเครือข่ายท้องถิ่น) ลองทำอะไรที่ต่ำกว่า 1460 แทนเช่น 1300 เพื่อดูว่า MTU เป็นปัญหาของคุณหรือไม่


2
ขอบคุณที่แก้ไขปัญหาของฉันด้วยการใช้ postgresql-query เพื่อทำงานกับ OpenVPN มันทำงานได้เมื่อทำการสอบถามผ่านคอลัมน์เดียว แต่ไม่ใช่สำหรับทั้งคอลัมน์ เห็นได้ชัดว่าเกิดจากขนาดเริ่มต้นของ MTU ที่ 1500 การตั้งค่าเป็น 1300 ช่วย!
Christian Benke

2

แม้ว่านี่อาจจะสายไปซักหน่อย แต่คุณอาจลองทำสิ่งที่ฉันทำ:

ลบตัวเลือกที่เกี่ยวข้อง mss, mtu ฯลฯ ทั้งหมด

ทำการสแกนพอร์ตที่สถาบันของคุณและเลือกพอร์ต UDP โดยทั่วไปแล้วพอร์ต 53 GRE / 123 NDP ควรจะเปิด:

เพิ่มบรรทัดเหล่านี้ในการกำหนดค่าเซิร์ฟเวอร์ของคุณ (อ้างอิงที่นี่ )

#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"

ฉันไม่เข้าใจการตั้งค่าเหล่านี้อย่างสมบูรณ์ แต่พวกเขาก็ช่วยได้บางคนบอกว่ามันช่วยได้มากจากประสบการณ์ของฉันมันเพิ่มปริมาณงานของฉันเพิ่มขึ้น +/- 30%

เริ่มต้นเซิร์ฟเวอร์บนหนึ่งในพอร์ตเหล่านั้นและคุณควรจะไป: P

หวังว่านี่จะช่วยได้!


9
-1 สำหรับ vodoo มากเกินไปและไม่เข้าใจสิ่งที่จริงทำ ฉันคิดว่ามันไม่มีความรับผิดชอบที่จะแนะนำบางอย่างในเวลานั้นโดยสุจริต
Preexo

0

sndbuf และ rcvbuf แก้ไขการตั้งค่า ANCIENT ใน linux / unix / openvpn จาก dialup days เพื่อ optmimize สำหรับการตั้งค่าที่ช้าลงแม้ว่า OS จะปรับให้เหมาะสมที่สุดสำหรับ OS ที่เร็วขึ้น

sndbuf / rcvbuf ตั้งค่าเป็น 0 เพียงแค่ใช้การตั้งค่าของระบบปฏิบัติการ

พุชถูกใช้เพื่อให้แน่ใจว่าไคลเอนต์ตั้งค่าไว้อย่างถูกต้อง แต่คุณต้องมีค่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.