vlambda博客
学习文章列表

尝试Nginx+Sock5叠加带宽提速

今天同样是中秋节,祝各位读者中秋快乐!


前言

笔者所在的校园网只提供了20M和30M带宽,虽然一般都够用了,但是想想家里的100M,我可以不用,但是不能没有吧.寻思再怎么也弄个100M.

计划

因为一个账号大概是20多M左右,要到100M,大概需要3个账号

  • 我自己的20M带宽

  • 哥们A一个30M带宽

  • 哥们B一个30M带宽

极限状态下应该可以跑到100M了.再多叠加几个也突破不了100M了。因为我这以太网网卡最大就100M.

手头上的工具

  • 笔记本Widows10(一张以太网卡 + 内置无线网卡)

  • 虚拟机VmWare跑着Linux

  • 哥们A的账号 + 哥们B的账号

方案

挠了下头发,想了几个方案

  1. 多网卡 + 路由均衡转发

  2. 多网卡 + 链路聚合

问题

  1. 首先就是笔者的笔记本电脑就两张网卡 ,都是内置的以太网网卡和无线网卡.虽然还有一张淘宝10来块买的无线USB网卡,但那基本属于废物。总不可能再掏钱买网卡吧。
  2. 链路聚合得要硬件支持,总不可能掏钱买吧.
  3. 笔者在Win10测试过方案1,即把以太网网卡的路由跳跃数(Metric)和无线网卡的跳跃数设置成一样,优先级一样,这样系统会随机选择.达到一定的叠加效果,但是实测效果很鸡肋.有时有效有时无效.

最终方案

  1. 针对网卡问题

    理论上完全是可以做到从一张网卡虚拟出多张不同Mac的网卡.Win上我还找不到什么比较好的解决方案(或许Docker可以?),但是经常用VMWare,我知道里面的桥接模式可以实现一张网卡虚拟出多张和宿主机同网段的网卡

  2. 针对聚合问题

    链路聚合需要硬件支持,这个很头疼,也不想花钱.网上也有一些系统层实现聚合的软件和方法.但是搜罗了一番没有什么好结果.既然链路层走不通,其实可以试试传输层.支持Tcp负载均衡的软件挺多的,比较强大的就是Nginx.因此可以用Nginx做反向代理实现负载均衡。

尝试Nginx+Sock5叠加带宽提速


最终的架构图


工具
  • Nginx1.9.3(起码要支持stream模块)

  • danted(用来搭建sock5服务端,一个网卡绑定一个)

  • Proxifier(sock5客户端)

演示

尝试Nginx+Sock5叠加带宽提速

原来的


现在的


跑IDM


优点

  • 省钱 ,没有花钱买任何东西

  • 简便

缺点

  • 由于是在传输层做的负载均衡,所以对于单线程下载是不会有叠加的

  • 得开着VmWare,不过这个问题也是可以解决的,主机跑Linux,在上面虚拟物理网卡 ,只是目前笔者主机是Window,没有找到好的解决方案.

关于多网卡情况下登录校园网的问题

笔者的校园网登录是以Mac作为ID识别的,多网卡的情况下,要指定网卡登录其实有个非常简便的办法,直接把socket绑定到具体的网卡上的IP上,然后再发出Http请求,这样请求就会从你指定的那个网卡出发.达到登录指定网卡的效果了

最后

感谢你读到这里,再次祝你中秋快乐,阖家团圆!