树莓派Ubuntu系统Netplan静态IP配置实战
1. 为什么需要给树莓派配置静态IP?
如果你正在用树莓派搭建服务器、做智能家居中枢,或者跑一些需要长期稳定连接的服务,动态IP可能会让你头疼。想象一下,每次重启树莓派,IP地址都可能变,远程连接时得反复查IP,甚至服务中断。这时候,静态IP就是你的救星——它让树莓派始终用同一个地址,确保服务可靠、访问稳定。我在部署家庭媒体服务器时就深有体会:电视、手机等设备靠IP访问树莓派,IP一变全得重新配置,麻烦不说还容易出错。
Ubuntu系统(尤其是18.04及以后版本)用Netplan管理网络,它比传统的ifconfig或dhcpcd更现代,配置也更清晰。但不少朋友第一次接触Netplan会有点懵,比如配置文件格式、参数含义,或者应用配置后网络没反应。别担心,接下来我会用最直白的方式带你一步步搞定静态IP配置,顺便分享几个我踩过的坑和解决办法。
2. 配置前的准备工作
2.1 查看当前网络信息
配置静态IP前,你得先知道现在的网络状态——比如网关、DNS服务器,以及当前分配的IP地址。这样配置时才不会填错参数导致断网。打开终端,依次输入以下命令:
ip a
这个命令会列出所有网络接口。找到你的无线网卡(通常是wlan0),记下当前的IP地址和子网掩码。比如输出里有inet 192.168.1.105/24,就表示IP是192.168.1.105,子网掩码是255.255.255.0(/24代表前24位是网络号)。
接着查网关地址:
ip route | grep default
输出类似default via 192.168.1.1 dev wlan0,这里的192.168.1.1就是网关地址,也就是你的路由器IP。
最后确认DNS服务器:
resolvectl status wlan0
在输出里找DNS Servers,一般是网关地址或者公共DNS如8.8.8.8。记下这些信息,等下配置静态IP时要用。
2.2 选择并保留静态IP地址
选静态IP有个小技巧:最好用路由器DHCP范围外的地址,避免冲突。比如路由器通常分配192.168.1.100到192.168.1.200,你可以选192.168.1.50这种靠前的地址。更稳妥的方法是登录路由器后台,查看已分配IP列表,挑一个没人用的。
如果你打算用当前动态IP当静态地址(比如192.168.1.105),记得先去路由器设置里把这个地址绑定到树莓派的MAC地址,防止其他设备抢用。我当初没做这一步,结果偶尔IP冲突,树莓派莫名断网,排查了好久才想到是这原因。
3. 详解Netplan配置文件
3.1 配置文件和基本结构
Netplan的配置文件在/etc/netplan/目录下,文件名可能是50-cloud-init.yaml或者01-network-manager-all.yaml,取决于系统安装方式。用ls /etc/netplan/看看有哪些文件,通常只有一个YAML文件需要编辑。
用nano打开配置文件(以50-cloud-init.yaml为例):
sudo nano /etc/netplan/50-cloud-init.yaml
你会看到类似这样的内容:
network:
version: 2
renderer: networkd
wifis:
wlan0:
dhcp4: yes
access-points:
"你的WiFi名":
password: "你的WiFi密码"
Netplan用YAML格式,缩进必须用空格,不能用Tab键,否则会报错。version: 2表示用第二代配置语法,renderer可以是networkd(无图形界面系统)或NetworkManager(桌面版)。树莓派跑服务器通常用networkd,更轻量。
3.2 关键参数详解
配置静态IP时,这几个参数最重要:
dhcp4: no:关闭IPv4的DHCP,启用静态IP。addresses:设置静态IP和子网掩码,格式是IP/掩码位数,比如192.168.1.105/24。gateway4:网关地址,一般是路由器IP。nameservers:DNS服务器,可以填网关地址或者公共DNS。access-points:WiFi名称和密码,注意密码要用引号包起来。
这里有个实际用例:假设你要把树莓派IP设为192.168.1.105,网关是192.168.1.1,DNS用网关和Google的8.8.8.8,WiFi名是MyHomeWiFi,密码是secret123。配置完的YAML文件长这样:
network:
version: 2
renderer: networkd
wifis:
wlan0:
dhcp4: no
addresses: [192.168.1.105/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 8.8.8.8]
access-points:
"MyHomeWiFi":
password: "secret123"
注意YAML列表的写法:IP地址和DNS可以缩进加短横线,也可以用方括号括起来。我个人喜欢方括号,更紧凑不易缩进错误。
4. 应用配置和验证
4.1 应用配置并检查
配置保存后,用以下命令让新设置生效:
sudo netplan apply
如果配置有语法错误,Netplan会提示具体哪行有问题。比如缩进不对或漏了冒号,它会报Invalid YAML。这时要重新编辑文件修正错误。成功应用后,用ip a查看wlan0接口,应该显示你设置的静态IP。
验证DNS配置:
resolvectl status wlan0
输出中的DNS Servers应该变成你配置的地址。还可以用ping测试网络连通性:
ping -c 4 192.168.1.1 # ping网关
ping -c 4 google.com # 测试DNS解析
如果ping网关通但ping域名不通,可能是DNS设置错了;如果全不通,可能是IP或网关填错。
4.2 常见问题排查
有时候netplan apply后IP没变,或者网络断开。别慌,按这几步排查: 首先,用sudo netplan --debug apply查看详细应用过程,debug输出会告诉你Netplan在执行什么操作,哪里可能出问题。
如果网络断了,优先检查网关和子网掩码对不对。比如网关填成192.168.0.1但实际是192.168.1.1,或者掩码/24写成了/16,树莓派就和路由器不在同一网段,自然无法连通。
WiFi连接问题通常和access-points有关:密码错误、SSID大小写不对,或者特殊字符没加引号,都会导致连不上热点。建议先用dhcp4: yes测试动态IP能否联网,再改静态IP,排除WiFi本身的问题。
最后,如果重启后配置失效,可能是其他服务干扰。Ubuntu有时会cloud-init重置网络配置,可以禁用它的网络管理功能:
sudo echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
这样Cloud-init就不会覆盖你的静态IP设置了。
5. 其他配置方案对比
5.1 DHCPCD方案(传统方法)
除了Netplan,树莓派传统上用dhcpcd服务配置静态IP。编辑/etc/dhcpcd.conf文件,在末尾添加:
interface wlan0
static ip_address=192.168.1.105/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
然后重启dhcpcd服务:
sudo service dhcpcd restart
dhcpcd的优点是配置简单直观,适合老派用户。但缺点是新版Ubuntu逐渐转向Netplan,dhcpcd可能未来不被主流支持。而且Netplan统一管理有线和无线网络,配置更规范。
5.2 NetworkManager方案(桌面用户)
如果你用Ubuntu桌面版,可以用图形界面或nmtui工具设置静态IP。图形界面操作:点击网络图标 → 设置 → 网络,选择连接,点齿轮图标,在IPv4标签选手动,填IP、网关、DNS即可。
命令行用nmtui:
sudo nmtui
选Edit a connection,找到你的WiFi连接,编辑IPv4配置为Manual,填地址和网关。nmtui适合喜欢交互操作的用户,但服务器版通常没装NetworkManager。
三种方案对比,Netplan是Ubuntu官方推荐的方式,尤其对无界面服务器最合适。dhcpcd更兼容树莓派传统,而NetworkManager适合桌面环境。根据你的系统和个人喜好选就行。
6. 实际应用场景和技巧
6.1 服务器部署优化
用树莓派建网站或跑服务时,静态IP只是第一步。如果想通过域名访问(比如homepi.local),还得设置本地DNS或动态DNS。不过静态IP让端口转发更简单:在路由器把特定端口(比如80或443)指向树莓派的静态IP,外部就能访问服务了。
另外,建议把静态IP和MAC绑定,防止地址冲突。登录路由器管理页,找DHCP保留或静态ARP表,添加树莓派的MAC地址和你设的静态IP。这样即使其他设备手动配置相同IP,路由器也会拒绝分配。
6.2 多网络环境处理
如果树莓派经常切换网络(比如在家和公司用),硬编码静态IP可能导致在外无法联网。这时候可以用Netplan的多个配置文件,或者写脚本检测网络环境自动切换配置。
比如,在家用静态IP192.168.1.105,在公司用DHCP。可以创建两个Netplan文件:01-home.yaml和02-work.yaml,分别设置静态和动态IP。需要切换时,用sudo netplan apply指定文件:
sudo netplan apply --config-file /etc/netplan/01-home.yaml
更高级的做法是写个脚本,用iwconfig扫描可用WiFi,自动选择配置文件。不过对大多数用户,固定环境下手动配置一次静态IP就够了。
更多推荐


所有评论(0)