通过 TCP 分流对 OpenVPN 进行加速

2013-11-25 19:31:41 +08:00
 coolypf
我写了一个程序实现对 TCP 连接的分流,即将一个 TCP 连接的流量分布到多个 TCP 连接上进行传输。程序的主要作用是提升通过 TCP 连接的 OpenVPN 服务的速率,使之充分利用带宽。在特定网络环境下,我测试得到了约 320% 的加速。

详情参见 http://blog.csdn.net/coolypf
17731 次点击
所在节点    分享创造
25 条回复
hadoop
2013-11-26 19:40:17 +08:00
@coolypf 大神你还人肉我 ?
coolypf
2013-11-26 19:42:50 +08:00
@hadoop 挺容易就搜到了。
est
2013-11-26 20:05:23 +08:00
@coolypf 对。加上parity就可以实现2+1=3个连接,其中1个做冗余。3个中断掉任意一个都可以不影响数据传输(类似RAID2)
coolypf
2013-11-26 20:09:08 +08:00
@est 这些逻辑修改 main 函数和 divider, combiner 两个类都能比较容易地实现。
catofes
2013-12-13 01:29:24 +08:00
好赞~ TCP分包拼包程序我学长写过一份:https://npmjs.org/package/mtcp 不过我觉得c++更好。

IPV6的udp openvpn应该是不麻烦的。我的配置文件:
server:
local 2001:470:f04:e0::1
port 555
proto udp6
dev tun
ca /root/openvpn/keys/ca.crt
cert /root/openvpn/keys/server.crt
key /root/openvpn/keys/server.key
dh /root/openvpn/keys/dh1024.pem
server 10.8.1.0 255.255.255.0
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
client-cert-not-required
username-as-common-name
status /root/openvpn/logs/status6.log
log-append /root/openvpn/logs/udp6.log
verb 3
mute 5
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 4.2.2.1"
push "dhcp-option DNS 4.2.2.2"
--script-security 3 system
client-connect /root/openvpn/connect.sh
client-disconnect /root/openvpn/disconnect.sh


client:

client
dev tun
proto udp6
remote 2001:470:1f04:d39::2 555
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
rcvbuf 65536
mssfix 1432
comp-lzo
verb 3
redirect-gateway def1
script-security 2 system
up update-resolv-conf
down update-resolv-conf

以及openvpn over ipv6 udp 速度:http://www.speedtest.net/my-result/3161185703
一样的burst.net 的服务器

期待能有udp的分包版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/90570

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX