同时使用多网卡提高树莓派网络利用率

树莓派 3 自带的有线网卡是 100M 的,无线网卡是 72M 的,都比较慢。想提高网速的话,最直接的方法是使用 usb 网卡,千兆的有线网卡或者 450M 以上的 2.4GHz 无线网卡或者 5GHz 无线网卡。但由于树莓派 3 的 usb 接口是 2.0 的,并且 tf 卡也要共享带宽,因此也提高不了太多,而高速的 usb 网卡也不便宜(千兆 usb 有线网卡最便宜大概要 50 多,450M 以上的 usb 无线网卡更贵),并且你们手头上一般没有闲置的,为此购买不大值得。网络

那么一个间接的方法是同时使用有线和无线网卡,这样合理使用的话速度能够叠加。由于我有一个闲置的 300M usb 无线网卡,因此将它和内置有线网卡一块儿使用(由于测试过,它和内置无线网卡一块儿使用的话,会互相影响,速度反而更慢,因此不用内置无线网卡了),这样理论上就有 400M 的带宽了,固然实际上达不到。负载均衡

但一块儿使用的话须要一些技术手段,若是只是(在同一个网段)简单启用双网卡,虽然两个 ip 地址都能用,但实际上只有一个网卡会工做,由于全部的流量都走到了路由表里第一个网卡了,这样确定是不行的。那么大体有以下几个方法:
一、两个网卡分别接入不一样的网段。
二、两个网卡绑定在一块儿使用。
三、配置路由表,让两个网卡在同一个网段能够同时使用。ssh

由于个人网络环境很简单,只有一个路由器和一个网段,因此方法 1 我就不考虑了。但若是有两个网段的话,方法 1 是最简单的。开始时我想使用方法 2,将两个有线网卡绑定到一块儿来共享 1 个 ip 是比较简单的,但将一个有线网卡和一个无线网卡绑定到一块儿,则麻烦不少,网上资料也比较杂乱。另外由于我配置也是经过 ssh 进行的,不能把网络链接搞断了。还好我还有内置无线网卡可使用,若是一共只有两个网卡,那几乎就没办法配置了。但即便这样也很麻烦,最后几经尝试都以失败了结。curl

最后只能使用方法 3。方法 3 的好处是配置简单,但缺点是使用起来比较麻烦,须要本身来作负载均衡,不过灵活性比较高。测试

我路由器地址是 192.168.1.1,有线网卡是 eth0,无线网卡是 wlan0,在路由器上分别绑定到 192.168.1.6 和 192.168.1.7。那么在两个网卡都链接上后,只须要执行这样一个脚本,就可让两个网卡同时工做了:url

ip route add 192.168.1.0/24 dev eth0 src 192.168.1.6 table 100
ip route add default via 192.168.1.1 dev eth0 table 100
ip rule add from 192.168.1.6 lookup 100

ip route add 192.168.1.0/24 dev wlan0 src 192.168.1.7 table 200
ip route add default via 192.168.1.1 dev wlan0 table 200
ip rule add from 192.168.1.7 lookup 200

具体效果是经过 192.168.1.6 访问树莓派会走有线网卡,经过 192.168.1.7 访问树莓派会走无线网卡。若是从树莓派下载多个文件,能够经过轮询或者随机选择 ip 来生成文件地址列表文件,而后使用 aria2c -i 文件列表 来下载,就能够同时使用两个网卡了。code

若是是在树莓派往外链接,仍是要看路由表里哪一个网卡在前边(用 ip route 命令查看,通常有线网卡在前边),另外也能够在命令里指定网卡,好比用 curl --interface eth0 或者 wget --bind-address 192.168.1.6接口

可使用了后,重点就是速度能提高多少了。在个人环境,从树莓派往电脑下载文件,树莓派内置有线网卡能达到 11.3 MB/s,300M 的无线网卡,速度最快能达到 21 MB/s 出头,但不稳定,容易降到十几兆。一块儿使用的话,最快能够达到 30 MB/s 出头,但容易降到 25 - 26 MB/s。效果仍是很是明显的。ip

相关文章
相关标签/搜索