ตามหลักเหตุผล VPN ควรเร็วกว่า SSH สำหรับการขุดอุโมงค์เนื่องจาก:
- มันทำงานบน UDP และไม่ใช่ TCP (ดังนั้นจึงไม่มี TCP ผ่าน TCP)
- มันมีการบีบอัด
อย่างไรก็ตามวันนี้ฉันทดสอบ Redis replication ผ่านทั้งสองวิธี
ฉันทำการทดสอบกับ Ireland AWS VM ซึ่งเชื่อมต่อกับ AWS VM ของสหรัฐอเมริกาตะวันออก
ตั้งแต่กรณีทดสอบของฉันคือการจำลองแบบ Redis นี้เป็นสิ่งที่ผมทดสอบ - ฉันวิ่งว่างเปล่าเซิร์ฟเวอร์ Redis และหลังจากที่มันโหลดเสร็จแล้วผมดำเนินการslaveof
เซิร์ฟเวอร์อื่น ๆ และวัดเวลาระหว่าง และConnecting to MASTER
MASTER <-> SLAVE sync: Finished with success
ในระหว่างนั้นฉันใช้
while 1; do redis-cli -p 7777 info | grep master_sync_left_bytes;sleep 1; done
เพื่อให้ได้การประมาณค่าแบบหยาบของความเร็ว
SSH ชนะการยิงไกล: ~ 11MB / s เมื่อเทียบกับ OpenVPN's ~ 2MB / s
นั่นหมายความว่าสิ่งที่ฉันได้ทำการยืนยันใหม่นั้นผิดหรือมีการตั้งค่าผิดพลาดอย่างสิ้นเชิงหรือไม่?
ปรับปรุง
ฉันได้ทำการทดสอบหลายชุดด้วยชุดข้อมูลเดียวกันและได้ผลลัพธ์เหล่านี้:
- OpenVPN
- TCP: การ
บีบอัด: 15m
ไม่มีการบีบอัด: 21m - UDP: การ
บีบอัด: 5m
ไม่มีการบีบอัด: 6m
- TCP: การ
ค่าเริ่มต้นSSH : 1m50s
ไม่มีการบีบอัด: 1m30s การ
บีบอัด: 2m30s
Update2
นี่คือผลลัพธ์ iperf พร้อมการทดสอบสองทิศทาง (ยกเว้น SSH โดยที่ไม่มีเส้นทางการส่งคืน)
| method | result (Mb/s)|
|------------------+--------------|
| ssh | 91.1 / N.A |
| vpn blowfish udp | 43 / 11 |
| vpn blowfish tcp | 13 / 12 |
| vpn AES udp | 36 / 4 |
| vpn AES tcp | 12 / 5 |
ข้อมูลจำเพาะทางเทคนิค
ฉันใช้ CentOS 6.3 (เซิร์ฟเวอร์), CentOS 6.5 (ไคลเอนต์)
รุ่น OpenVPN คือ 2.3.2 (เหมือนกับใน Ubuntu 14.10 ดังนั้นจึงไม่มีรุ่นที่น่าเบื่อ)
SSH tunneling ของฉันดูเหมือนว่า:
ssh -f XXXX@XXXX -i XXXX -L 12345:127.0.0.1:12345 -N
ไฟล์การกำหนดค่าของฉันดูเหมือนว่า:
เซิร์ฟเวอร์
port 1194
proto udp
dev tun0
topology subnet
log /var/log/openvpn.log
ca XXXX
cert XXXX
key XXXX
dh XXXX
crl-verify XXXX
cipher AES-256-CBC
server XXXX 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 10 120
comp-lzo
status /var/log/openvpn-status.log
verb 3
tun-mtu 1500
fragment 1300
persist-key
persist-tun
ลูกค้า
client
remote XXXX 1194
proto udp
dev tun
log /var/log/openvpn.log
comp-lzo
cipher AES-256-CBC
ns-cert-type server
# the full paths to your server keys and certs
ca XXXX
cert XXXX
key XXXX
tun-mtu 1500 # Device MTU
fragment 1300 # Internal fragmentation
persist-key
persist-tun
nobind