« 为什么 Lua 的新版本越来越慢? | 返回首页 | n:m 的 vpn 隧道 »

使用 MPTCP 增加对 github 的带宽

从去年开始,我们的工作项目逐步迁往 github 的私有仓库里。github 太好用了,自己搭建的 git 平台完全比不上。可是购买企业版本自己架服务器成本又太高(平均一个人一年要 250 刀),而我们项目并不多(只是人多)购买私有仓库绝对够用了,唯一的缺点就是 github 没有在国内开展业务,服务器都在境外,速度很慢。

之前我们无论是电信还是联通线路,从 github 上 clone 项目的速度一直没有超过 200KB/s ,而我们租用的国际线路本身带宽又很低(因为单价太高,所以只做部分翻墙用)。而且连接还不太稳定,有一定的丢包率。

考虑到我们办公室租有多条不同运营商的宽带,所以最近在考虑怎么把这些资源整合在一起使用。

带宽的瓶颈显然是在墙上,所以只要提高过墙的带宽就可以了。我在 linode 机器 上做了测试,从 linode 美国机房 clone github 仓库的速度轻易可以达到 8MB/s 。

一开始我的念头是自己写一个支持多条 TCP 连接协作的 tunnel 程序。后来转念一想,MPTCP 不就是干这个用的么?去年的时候玩过一阵 MPTCP ,这次和我们爱折腾的 SA 同学们一起再试试。

公司曾购买过一个备用翻墙的 linode vps ,不过是很早装的系统,内核不支持 mptcp ,所以需要先升级。

要做的准备工作还包括添加办公室网关上的的路由规则,在内网一个 IP 可以看到所有的出口。

所有准备工作完成后,我们测试了从办公室到 linode 机器的 TCP 连接,发现 MPTCP 已经起作用了。

然后只需要把 github 的 IP tunnel 到 linode 上就好了(github 服务器并不支持 MPTCP )。做测试的话,可以直接用 ssh -L ,不过日后可以选用类似 tcptunnel 这样的更廉价的方案。

我们办公室有 4 个对外出口,当我们用 MPTCP 在同一条 TCP 连接中同时使用上 4 条路径后。经过 linode 中转到 github 服务器的带宽果然极大的提升了。试了一下 clone skynet 的仓库,可以达到 500K ~ 1M /s 的速度。


剩下的工作是修改内部 DNS 让 github 的 IP 指向 tunnel 的内部 IP 。当然,日后可以考虑用 openvpn ,就可以通过修改办公室的路由规则直接(不修改 dns )绕道 linode 连上 github 了。从办公室到 linode 这一段极大的利用了所有的出口路径。ps. 据说 openvpn 的协议被墙监控,所以 openvpn 方案还需要实测才看得出效果。

Comments

为何不直接用iptables做网关NAT转发一下呢?~
这么费事,还不如自己搭个gitlab,功能已经够丰富好用的了。
非程序员也用git?
没有炒股, 并一直坚定的劝人戒赌. 其实我最近一直在玩 Rouge's Tale, 太好玩了, 沉迷了.
好久不见你更新博客了,想问一下,最近你是不是去炒股了?
楼下说的那些,我曾经和朋友都用过。最后都换成了github。再怎么clone,也真的不如github好用。
上海电信+精品网, DigitalOcean 的VPS, wget可以把200M带宽跑满
试下gitbucket, 一个github的克隆, 就一个jar包, 运行极其简单; github的主要功能都已经实现, 并可以使用ldap实现更细的权限配置(当然其实git并不需要), 老外作者相当勤快, 迭代很快; 项目地址: https://github.com/takezoe/gitbucket
“github 太好用了,自己搭建的 git 平台完全比不上。” 是指github的哪些feature... git的web界面的话,cgit还不错呀,http://git.zx2c4.com/cgit/about/
gitlab好用吗?

Post a comment

非这个主题相关的留言请到:留言本