大家好
在 1Gbps 光纤线路上设置 OpenVPN 服务器时,我遇到了带宽吞吐量问题,没有其他流量。
需要明确的是,我所在的地方有一条 500Mbps 光纤线路,而服务器有一条 1Gbps 光纤线路。
经过一番搜索,我发现这
我添加了这些选项
sndbuf 393216
接收缓冲区 393216
推“sndbuf 393216”
推“rcvbuf 393216”
但它并没有显著改善我的连接。
前:
下行 10Mbps 上行 6-8Mbps
后 :
下行12-14Mbps 上行7-10Mbps
这个值应该增加还是减少,这会对发送/接收的数据产生什么影响?
服务器配置如下:
port 1025
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.0.0.2 255.255.255.252
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo no
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 4
#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
push "remote-gateway x.x.x.x"
push "dhcp-option DNS 8.8.8.8"
ccd-exclusive
#for checking active clients
management localhost 7505
它是建议我尝试了 fragments、mss-fix、mtu 等,但都无济于事,我当前的设置具有最佳性能。任何其他更改都会导致性能降低或延迟/ping 峰值。
答案1
有 OS 网络堆栈缓冲区,也有 OpenVPN 网络缓冲区。OpenVPN 一直打算重新发明轮子,因此缓冲区的情况并不令人惊讶。首先,您应该确保 OS 中有足够的缓冲区,我建议将sndbuf
/设置rvcbuf
为 0,调整 OS 缓冲区并观察效果 - 这样您就不会遇到先有鸡还是先有蛋的难题。
第二……1 Gbps 和 OpenVPN……真的吗?我建议在你的 OpenVPN 安装上放一些凝固汽油弹,等它吸收一段时间,然后把它全部烧掉。显然,需要如此高速度的安装和 OpenVPN 有问题——它设计得如此横向,只与自身兼容……(是的,是的,我知道,很多合格的“家庭”工程师使用 OpenVPN,“一切都很好”,但这东西叫做可扩展性- 您可以使用同一种技术来处理 1 个单元或 1000 个相同类型的单元 - 而 OpenVPN 不是其中之一可扩展 解决方案)毕竟,可能是加密真正消耗了你的带宽?在达到最高速度时,你没有显示任何 CPU 统计数据,而且考虑到 OpenVPN 设计师和程序员与现实的复杂关系,看到 OpenVPN 消耗所有 CPU 我不会感到惊讶。
最后的建议(您可能不会遵循,但仍然如此;另外 - 我只是喜欢浪费好建议的讽刺意味)您应该仔细检查您的安装,并找到一些在两点之间加密 1 Gpbs 的好理由,而不仅仅是使用一些安全传输,如 vlan 的专用链路;如果您真的这样做了,您应该考虑转向一些标准解决方案,例如专用设备之间的 IPsec - 具有板载加速器(如 Cisco 和 Juniper),或者至少可以在软件中运行 AES-NI 时受益。但从我的角度来看,1 Gbps 链接必须由一些像样的专用设备来处理。暗示:如果您不需要资金,您可能根本不需要加密。