树莓派从buster 升级到 bullseye后静态IP的问题及解决方法

在线更新树莓派到bullseye后,出现了IP地址问题。现象是,原本设定的静态IP 66在更新重启后增加了112这个地址,并且这个地址被认定是默认首选IP。在dhcpcd.conf配置文件里并没有改变任何设置。这个112地址如何出现的成了问题。

经过网上搜索,发现这个是由于bullseye的connman这个包造成的。参见网址:

https://raspberrypi.stackexchange.com/questions/133318/how-to-disable-the-dynamic-ip-address-after-assigning-a-static-ip-in-bullseye

解决问题的最好方法是删除这个软件包 :sudo apt purge connman

但是这样会导致立刻失去网络链接,需要本地登陆树莓派,并连接显示器和键盘才可以操作。

另一个办法是手工修改connman的配置文件。

进入文件夹:/var/lib/connman,在该目录下有一批网络配置的文件夹,进入和网卡mac地址对应的文件夹。

如何确定网卡mac地址:

命令:ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.0.66  netmask 255.255.255.0  broadcast 192.168.0.255

        inet6 fe80::dea6:32ff:fe49:8c26  prefixlen 64  scopeid 0x20<link>

        ether dc:a6:32:49:8c:26  txqueuelen 1000  (Ethernet)

        RX packets 50984  bytes 47229891 (45.0 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 87090  bytes 103594923 (98.7 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

黑体字处为mac地址。

进入目录: ethernet_dca632498c26_cable

编辑setting 文件如下:

[ethernet_dca632498c26_cable]

Name=Wired

AutoConnect=true

IPv4.method=manual

IPv6.method=off

IPv6.privacy=disabled

IPv4.netmask_prefixlen=24

IPv4.local_address=192.168.0.66

IPv4.gateway=192.168.0.1

Proxy.Method=direct

Nameservers=192.168.0.1;

IPv4.DHCP.LastAddress=192.168.0.112

Modified=2022-12-23T11:29:39.205760Z

存盘退出,重启即可。

重启后,可以看到IP地址正常,没有112这个地址了。

这时,可以安全删除connman包,不会导致连接丢失了。同时,也可以删除/var/lib/connman目录下所有文件。

发表回复