背景是这样的:
现在有个 openvpn 的隧道,需要从 A 点连到 B 点(B 点有公网 IP),但是如果通过公网线路不优,延时比较大,想利用地理位置靠近 B 的 AWS EC2 上开一个 VM (C 点)去转发包,来改善延时
开始线路如下:
IP A (openvpn client) -> IP B (openvpn server) 直连 ping 值 300 ms
通过 EC2 端口转发后:
IP A (openvpn client) -> IP C(AWS EC2 NAT)-> IP B (openvpn server) 通过 AWS EC2 / IP C 的转发,IP A 到 IP B 的端到端延时的确降低不少,但不是很稳定,低的话 150ms ,但是有的时候经常性抖到 250ms 应该是端口转发带来的抖动,有什么优化思路或者更好的实现方法吗
IP A 到 IP C ,IP C 到 IP B 的公网 ping 值都非常稳定,加起来一直是 150 ms 这个量级。
希望优化方案不需要碰 openvpn server 端的配置,谢谢 V 友指导
1
nkloveni 240 天前
你这个应该不是端口转发的问题,这个坑很小,应该还是被 QoS 了,你用的 tcp 还是 udp ,用对应协议,大包 ping 下试试。
|
2
sendi 229 天前
sudo sysctl -w net.ipv4.tcp_window_scaling=1
sudo sysctl -w net.ipv4.tcp_rmem='4096 87380 6291456' sudo sysctl -w net.ipv4.tcp_wmem='4096 65536 6291456' 试试优化下内核 如果不行就用 haproxy 转发 tcp 和 udp 试试 可以优化更多呢 |
3
Charlie17Li 105 天前 via iPhone
@sendi 有个小疑问,基于 haproxy 为什么会比 iptables 更优呢?从数据包在 nat 节点的流转路径来看,iptables 的方式不需要将数据包从内核态拷贝到用户态,不是消耗更小吗
|
4
sendi 104 天前
@Charlie17Li haproxy 对 tcp 的优化多些 但是还是可以减少抖动 iptables 的消耗更小是肯定的
|