某次重启,然后发现树莓派不能 ssh 上去了。
还好就放在电脑桌上,直接 HDMI 接显示器,发现树莓派的 IPv4 地址没了,但IPv6还好好的。
用 dhclient 重新做了一次 DHCP,又能正常拿到 IPv4 地址。
sudo dhclient -v eth0
这证明我的局域网环境没有问题,而且子网里面其他设备都是一切正常的。
那就直接检查树莓派了。
检查了一下 /etc/dhcpcd.conf,里面的内容没有被修改过。
看一下 dhcpcd 的情况
sudo service dhcpcd status
果然里面出现了有用的信息
dhcpcd[xxx]: route socket overflowed - learning interface state
然后找到了 Github 上面的这个 Issue:Raspberry Pi 4: DHCPCD route socket overflowed #4092
里面的内容大概就是,在运行着一堆 Docker 容器从而有一堆 veth 网络接口之后,会导致 Raspberry Pi OS 里面的dhcpcd (我这环境里跑的是 dhcpcd 8.1.2) 出 BUG 然后崩溃。
里面暂时的解决方案是在 dhcpcd.conf 里面直接写把 Docker 使用的 veth 网络接口排除出去
sudo nano /etc/dhcpcd.conf
然后在 dhcpcd.conf 最后面加上
denyinterfaces veth*
保存并重启
问题解决