移动端 | 加入收藏 | 设为首页 | 最新ss | 赞助本站 | RSS
 

freefq.comfree——免费、自由fq——翻墙

困在墙内,请发邮件到freefqcom#gmail.com获得最新免费翻墙方法!
您当前的位置:首页 > 网络翻墙技巧

linux下的vpn方案-mptun

时间:2016-01-15  来源:  作者: 条评论
 
其实在 linux 下实现 vpn 是如此简单。linux 已经负责实现了 tun/tap 设备,可以帮你把 ip 层的流量(或以太网层)倒入一个虚拟设备。我们要做的仅仅是处理一下互联网上的通道转发而已。
google 了一下多路径的 vpn 方案,发现有这个想法的人太多了。比如 Multipath-VPN(https://github.com/pRiVi/multipath-vpn) 就是,不过几百行 perl 代码 。PeerVPN 虽然也不复杂,但就我需要的应用来看,大部分功能都是不需要的。所以还不如自己实现一下,应该也就是几百行代码的量吧。
如果在 IP 层做流量转发,UDP 肯定是最合适的。因为 IP 包可以允许丢掉,可以乱序,这样必定最大程度的利用 tunnel 的有效负载。如果我们 tunnel 的两端都有不同网络的出口,那么可以并行的通道就有 N * M 条。使用连接去管理也复杂的多。而且网络出口也不一定是稳定的,对于办公室, ISP 给你换 IP 也是常事。tunnel 本身是不需要有连接的。
研究了两小时的 tun 开发手册,我便兴致盎然的写了一晚上,就有了这个:mptun- https://github.com/cloudwu/mptun
动态负载均衡的算法是我拍脑袋想的。一开始将每个出口 IP 都赋予一个均等的权值,而目的 IP 也如此。当有流量需要发出的时候,select 出可写的通路,然后按权值随机选择一个目的地和出发源地址,把从 tun 设备里读到的 IP 包打包成 UDP 转发出去。一旦从一条通路发出,就给源 IP 的权值加上一点。
而当从某个对端 IP 接收到数据包时,也给对应的目的地加上点权值。
这样,如果从某个位置收的包多,就有更大几率向其发包;而从一个出口发的多,也就更可能从它那里发出。
原本还计划给每条通路做一个计数,来统计丢包率来修正权值的。不过后来发现上面的策略已经可以满意了,就懒得再加。
最后我们实际测试了一下效率。我们办公室有 4 个不同运营商的出口,对端 VPS 只有一个。用了一个接近 40M 的 zip 文件,用 wget 测试速度。以直接拉取(只利用一个出口的 TCP 连接)为基准,发现使用 mptcp 下载,虽然也会建立 4 条连接(通过四条路径),但总的下载速度只提高了 2.6 倍左右;如果使用 mptun 做 tunnel 的话,几乎可以提高 4 倍,真的把 4 条出口的可以利用的带宽都跑满了。
当然对于小文件或做 ping 测试,丢包率可能略微上升、响应速度下降了一点。我的直觉解释是:tunnel 间建立了多条路径,IP 包的转发是随机在不同路径中进行的,依赖请求回应的应用,来回很可能走的不同路径,很大概率受最慢的路径的影响。而对于大量的流量,总体带宽却能提升不 少。
目前没有测试对端也有多个入口的情况。我设想是这样的:租用日本和美国两个机房的 VPS 。由于没有墙的干扰,日本和美国间的通路是非常顺畅的。所以我们可以把日本 VPS 做 DNAT 将 UDP 对应端口映射到美国机房。这样,从办公室看来,对端机器就有两个 IP 且这两个 IP 在互联网上属于完全不同的两个网段。
当我们从办公室发包过去的时候,上游路由看起来我们的 IP 包发向了截然不同的地方,这样就可以互不影响,出国的流量就可以大大提高了.
from http://blog.codingnow.com/2015/07/mptun.html
来顶一下
返回首页
返回首页
欢迎评论:免登录,输入验证码即可匿名评论 共有条评论
用户名: 密码:
验证码: 匿名发表

推荐资讯

Octohide VPN:快如闪电的免费VPN
Octohide VPN:快如闪
原子网络加速器 - 免费高速VPN 一键链接 方便快捷
原子网络加速器 - 免费
foxovpn绿狐VPN——即连即用、快速、安全
foxovpn绿狐VPN——即
Dubai VPN - Free, Fast & Secure VPN下载
Dubai VPN - Free, Fa
相关文章
栏目更新
栏目热门
墙外新闻
读者文摘

你可以访问真正的互联网了。You can access the real Internet.

管理员精中特别提醒:本网站域名、主机和管理员都在美国,且本站内容仅为非中国大陆网友服务。禁止中国大陆网友浏览本站!若中国大陆网友因错误操作打开本站网页,请立即关闭!中国大陆网友浏览本站存在法律风险,恳请立即关闭本站所有页面!对于您因浏览本站所遭遇的法律问题、安全问题和其他所有问题,本站均无法负责也概不负责。

特别警告:本站推荐各种免费科学上网软件、app和方法,不建议各位网友购买收费账号或服务。若您因付费购买而遭遇骗局,没有得到想要的服务,请把苦水往自己肚子里咽,本站无法承担也概不承担任何责任!

本站严正声明:各位翻墙的网友切勿将本站介绍的翻墙方法运用于违反当地法律法规的活动,本站对网友的遵纪守法行为表示支持,对网友的违法犯罪行为表示反对!

网站管理员定居美国,因此本站所推荐的翻墙软件及翻墙方法都未经测试,发布仅供网友测试和参考,但你懂的——翻墙软件或方法随时有可能失效,因此本站信息具有极强时效性,想要更多有效免费翻墙方法敬请阅读本站最新信息,建议收藏本站!本站为纯粹技术网站,支持科学与民主,支持宗教信仰自由,反对恐怖主义、邪教、伪科学与专制,不支持或反对任何极端主义的政治观点或宗教信仰。有注明出处的信息均为转载文章,转载信息仅供参考,并不表明本站支持其观点或行为。未注明出处的信息为本站原创,转载时也请注明来自本站。

鉴于各种免费翻墙软件甚至是收费翻墙软件可能存在的安全风险及个人隐私泄漏可能,本站提醒各位网友做好各方面的安全防护措施!本站无法对推荐的翻墙软件、应用或服务等进行全面而严格的安全测试,因此无法对其安全性做保证,无法对您因为安全问题或隐私泄漏等问题造成的任何损失承担任何责任!

S. Grand Ave.,Suite 3910,Los Angeles,CA 90071

知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。