树莓派折腾日记 二:网络相关配置

主要是解决两个问题:

  1. 同时连接两张网卡时由于默认网卡不对导致不能上网;
  2. 开机的时候等n久都连不上 WiFi,但是一插上网线,WiFi 就通了。

开关 WiFi

临时开关:

永久关闭:

其他开关(蓝牙):
How to disable onboard WiFi and Bluetooth on Raspberry Pi 3

不重启更改 WiFi 配置:

改完之后查看 wpa_supplicant 进程:

记下这长串指令,然后 kill 掉再运行:

命令别名写进 .bashrc 里方便运行。

静态 IP

第一次连接树莓派的时候为了确定 ip 可能会将 ip=xxxx 的信息写在 /boot/cmdline.txt 里面,不过后期要用静态 ip 的时候不建议这么写,否则树莓派在开机的时候为了连接有线网络会等待很长时间。如果仍要设置静态 IP ,这么配置比较好:

在最后添加如下内容:

它的网络配置和其他的有些不同,dhcpcd 用的不是子网掩码,而是 CIDR 的斜线记法,两者之间需要稍微换算一下。比如 ip 地址 192.168.191.1,子网掩码 255.255.255.0,就可以记为 192.168.191.1/24

为什么不去编辑 /etc/network/interfaces 呢?在我这个版本(2018-04-18-raspbian-stretch)中 interfaces 里面说静态 IP 得去 dhcpcd.conf 里面配置:

路由选择网卡上网

我的网线走的是联通的个人网,需要设置 Netkeeper 才能上网。所以为了给树莓派联网,我只能用手机或电脑开热点。但是在同时连接网线和WiFi的时候,树莓派上不了网,只有拔掉网线之后,树莓派才能打开网页。

不仅仅是树莓派,我装在电脑上的 Ubuntu 也是这样,每次上网总得拔掉网线,再连wifi,很麻烦。

上过组网课后今天再次想到这个问题,这应该和路由协议有关。查看路由表:

发现默认路由 default (有时候显示为0.0.0.0)转发的网关有两个,一个是 eth0 (网线)的 172.31.0.1 ,一个是 wlan0 (WiFi)的 192.168.191.1 。由于 eth0 排在 wlan0 的前面,发给因特网的请求会转发给联通网关,然后联通把数据包吞了。看下面的 ping 测试:

既然 172.31.0.1 的路由转发记录无效,不妨把它删除。

移除完这条记录,地址就能够正常解析了,百度也 ping 得通了。所以原因在于路由表中存在多个默认网关,并且那个首选的网关是不可到达的。重启系统或网络后路由表就会恢复,可以把它当作一个临时的做法。如果要永久生效的话也有办法的,我就没折腾了,文末的参考连接里面有。

回头一看,上一篇树莓派日记已经是快一年前的事情了……惭愧,或许叫树莓派吃灰日记比较好(

参考资料:

添加一条评论

电子邮件地址不会被公开。 必填项已用*标注