树莓派 3 自带的有线网卡是 100M 的,无线网卡是 72M 的,都比较慢。想提升网速的话,最直接的方法是使用 usb 网卡,千兆的有线网卡或者 450M 以上的 2.4GHz 无线网卡或者 5GHz 无线网卡。但因为树莓派 3 的 usb 接口是 2.0 的,而且 tf 卡也要共享带宽,所以也提升不了太多,而高速的 usb 网卡也不便宜(千兆 usb 有线网卡最便宜大概要 50 多,450M 以上的 usb 无线网卡更贵),而且大家手头上通常没有闲置的,为此购买不大值得。
那么一个间接的方法是同时使用有线和无线网卡,这样合理使用的话速度可以叠加。因为我有一个闲置的 300M usb 无线网卡,所以将它和内置有线网卡一起使用(因为测试过,它和内置无线网卡一起使用的话,会互相影响,速度反而更慢,所以不用内置无线网卡了),这样理论上就有 400M 的带宽了,当然实际上达不到。
但一起使用的话需要一些技术手段,如果只是(在同一个网段)简单启用双网卡,虽然两个 ip 地址都能用,但实际上只有一个网卡会工作,因为所有的流量都走到了路由表里第一个网卡了,这样肯定是不行的。那么大致有如下几个方法:
1、两个网卡分别接入不同的网段。2、两个网卡绑定在一起使用。3、配置路由表,让两个网卡在同一个网段可以同时使用。因为我的网络环境很简单,只有一个路由器和一个网段,所以方法 1 我就不考虑了。但如果有两个网段的话,方法 1 是最简单的。开始时我想使用方法 2,将两个有线网卡绑定到一起来共享 1 个 ip 是比较简单的,但将一个有线网卡和一个无线网卡绑定到一起,则麻烦很多,网上资料也比较杂乱。另外因为我配置也是通过 ssh 进行的,不能把网络连接搞断了。还好我还有内置无线网卡可以使用,如果一共只有两个网卡,那几乎就没办法配置了。但即使这样也很麻烦,最后几经尝试都以失败告终。
最后只能使用方法 3。方法 3 的好处是配置简单,但缺点是使用起来比较麻烦,需要自己来做负载均衡,不过灵活性比较高。
我路由器地址是 192.168.1.1,有线网卡是 eth0,无线网卡是 wlan0,在路由器上分别绑定到 192.168.1.6 和 192.168.1.7。那么在两个网卡都连接上后,只需要执行这样一个脚本,就可以让两个网卡同时工作了:
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.6 table 100ip route add default via 192.168.1.1 dev eth0 table 100ip rule add from 192.168.1.6 lookup 100ip route add 192.168.1.0/24 dev wlan0 src 192.168.1.7 table 200ip route add default via 192.168.1.1 dev wlan0 table 200ip rule add from 192.168.1.7 lookup 200复制代码
具体效果是通过 192.168.1.6 访问树莓派会走有线网卡,通过 192.168.1.7 访问树莓派会走无线网卡。如果从树莓派下载多个文件,可以通过轮询或者随机选择 ip 来生成文件地址列表文件,然后使用 aria2c -i 文件列表
来下载,就可以同时使用两个网卡了。
如果是在树莓派往外连接,还是要看路由表里哪个网卡在前边(用 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。效果还是非常明显的。