树莓派与电脑用网线直连。
之前用命令ip a add 192.168.3.22/24 dev eth0
给树莓派有线网卡分配固定ip,可以正常使用,今天重装了下树莓派5的系统,并升级到最新的bookworm 12.6,上面的命令不再有效。
现象是,执行完命令以后,当时用ip a
命令是可以看到dev0的ip地址已经分配成功,并且在另外的电脑上可以ping通,也能传文件,但几分钟后,树莓派dev0的ip地址就丢失了,用命令ip a
查看dev0,变成没有ip地址的状态,另一台电脑与它的连接也断了。并且,这种现象可以稳定重现(分配ip几分钟后ip丢失)。
另外,树莓派5的状态栏上,有线连接的的图标一直闪烁,应该是提示有线连接异常:
我尝试把树莓派5用网线直接连接到路由器上,然后,就稳定到没有任何问题,状态栏上的图标也不闪,长时间下载文件也没有问题。(此状态时,树莓派的ip地址是自动分配,不是静态ip)。到这里,我认为树莓派有线网卡的硬件没有问题可以正常工作。
之后,我查到官方文档有提到,如果想给树莓派设置静态ip,需要从路由器端处理,不从树莓派端处理:
https://www.raspberrypi.com/documentation/computers/configuration.html#assign-a-static-ip-address
我的理解是,我也许不能只用ip a add 192.168.3.81/24 dev eth0
命令来给树莓派分配ip。
但接下来,就是我的知识盲区了:
怎么实现稳定的网线直连?让电脑承担router的角色给树莓派分配ip地址,好像不容易。
必须买一个交换机?不能够吧?
kalxd
(XGLey)
2
连接电脑上网吗?
局域网一般是在路由器上分配静态IP。
树莓派与电脑直连,不是为了上网,是为了和电脑相互传输备份数据。
wifi传输一般在20MB左右 。
有线连接,传输速度可以稳定在110MB以上。
家里的router位置太远了,临时接个线测试可以,长期用,没法走线。
挺容易的,配个 dnsmasq 就行。
没用,分配 IP 是路由器的工作。
你去整一下你的树莓派的网络设置,让网络管理器不要理 eth0 应该行。
肯定是网络被网络管理器接管了,比如NetworkManager/networkd
建议仔细研究一下系统的网络是被什么管的,然后用正确的方法设置静态ip
我试了一下,让network-manager 不管理eth0,然后 ip a add 192.168.3.81/24 dev eth0
可以分配ip,也能从其它电脑连接,但就是不能重启系统。
系统一旦重启,ip a就又看不到地址了,其它电脑也无法连接(重启后的截图):
而且,这个情况可以重现,即ip a add 192.168.3.81/24 dev eth0
后能连,但重启系统就会丢
(重启前的截图):
树莓派是不是还存在其它影响静态ip的地方,因为它的表现与台式机完全不一样,而台式机并没有做任何关于网线直连的设置。
下面是/etc/NetworkManager/conf.d/crosslink.conf文件的内容,用来让network-manger不要管理eth0:
[main]
plugins=ifcfg-rh,keyfile
[keyfile]
unmanaged-devices=interface-name:eth0
有没有可能,我给系统增加一个虚拟的eth0,两个eth0的话,一个给network-manager管理,另一个用来直连?
CatEricka
(Cat Ericka)
10
如果你的网路里有多个 DHCP 服务器,要小心冲突
dnsmasq刚一装上什么都没做就提示错误,我是不是得先把本机设置改一改?
终于可以了,用下面这条命令:
sudo nmcli c mod "Wired connection 1" ipv4.addresses 192.168.3.81/24 ipv4.method manual
感谢诸位出谋划策