烟消火灭网

树莓派默认从路由器DHCP拿地址,但做服务器、跑NAS或者搭软路由的时候,每次重启IP都可能变,SSH连不上,VNC找不到设备,烦得很。直接改成静态IP最省事。 树莓派改IP有两种主流方式:改dhcp

树莓派修改ip地址

树莓派默认从路由器DHCP拿地址,树莓但做服务器、派修跑NAS或者搭软路由的树莓时候,每次重启IP都可能变,派修SSH连不上,树莓VNC找不到设备,派修烦得很。树莓直接改成静态IP最省事。派修

树莓派改IP有两种主流方式:改dhcpcd.conf(老系统,树莓Buster及之前)或者改NetworkManager(Bullseye之后的派修新系统)。两种我都用过,树莓下面分别说。派修

先确认你用的树莓是哪个系统

SSH进去或者接显示器打开终端,敲:

cat /etc/os-release

看到VERSION_CODENAME=bullseye或者bookworm,派修那就是树莓NetworkManager管的网络。如果是buster,那就是dhcpcd。不确定的话,再敲一个:

systemctl status NetworkManager

如果显示active,说明网络归它管。我手头这台Pi 4B跑的是Bullseye,就用NetworkManager的方式。

NetworkManager方式(Bullseye及以后)

先看当前连接名称:

nmcli connection show

通常有线叫Wired connection 1,无线叫preconfigured或者你自定义的名字。假设有线连接名是“Wired connection 1”,想改成192.168.1.100,网关192.168.1.1,DNS用223.5.5.5和8.8.8.8:

sudo nmcli connection modify "Wired connection 1" \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "223.5.5.5,8.8.8.8" \ ipv4.method manual

然后重启连接:

sudo nmcli connection down "Wired connection 1" sudo nmcli connection up "Wired connection 1"

或者直接重启树莓派。再ip addr看一眼,地址已经变了。

无线的话把连接名换成对应的WiFi名字,其他一样。注意别把IP设成和路由器DHCP池重叠的地址,否则会冲突。我一般把静态地址设在池子外面,比如路由器从.100到.200分配,我就用.50或者.240。

dhcpcd方式(Buster及更早)

编辑配置文件:

sudo nano /etc/dhcpcd.conf

翻到文件末尾,加上:

interface eth0 static ip_address=192.168.1.100/24 static routers=192.168.1.1 static domain_name_servers=223.5.5.5 8.8.8.8

无线就把eth0换成wlan0。保存退出,重启。sudo reboot。

有个坑:如果你同时改了/etc/wpa_supplicant/wpa_supplicant.conf里的WiFi配置,注意别把静态IP写错网段。我之前把192.168.1.x写成192.168.0.x,结果树莓派直接失联,只能拔卡改配置。

改完连不上怎么办

树莓派没有显示器的话,最稳妥的办法是先把SD卡拔下来,插到电脑上,直接编辑/etc/dhcpcd.conf或者用nmcli的离线方式。但NetworkManager的配置存在/etc/NetworkManager/system-connections/里,是二进制或者keyfile格式,手动改容易出错。建议还是接个HDMI显示器加键盘,或者用串口调试。

我自己习惯在改IP之前,先ping一下目标地址,确认没人占用。然后改完立刻ssh连过去测试。如果连不上,等两分钟,路由器可能还在发旧地址。

一点个人看法

固定IP对树莓派这种设备太重要了。我跑Home Assistant和Pi-hole,IP一变全家DNS都挂。后来干脆在路由器里做DHCP静态绑定,树莓派这边保持DHCP,这样既不会冲突,又不用改配置文件。不过路由器绑定依赖MAC地址,换网卡或者换系统会变。两种方法各有利弊,看你怎么选。

另外,如果你用WiFi,信号不稳的时候静态IP也救不了。我试过用WiFi跑MQTT broker,偶尔丢包,换成网线后再没出过问题。能插网线就插网线,别偷懒。

访客,请您发表评论:

© 2026. sitemap