Ubuntu Server 如何设置静态 IP 地址
Ubuntu Server(从 17.10 开始,包括当前的 24.04 LTS Noble Numbat 系列及后续版本)统一使用 Netplan 作为网络配置工具。Netplan 是一个声明式的 YAML 配置系统,它将网络设置抽象出来,由后端渲染器(通常是 networkd 或 NetworkManager)实际应用到系统。
Server 版默认使用 systemd-networkd 作为渲染器,这使得静态 IP 配置非常稳定、可预测且适合无头环境。
核心原理
- 配置文件统一放在 /etc/netplan/ 目录下,后缀为 .yaml 或 .yml
- 文件按字母顺序加载,后加载的文件会覆盖/合并前面的配置(因此常使用 50-xxx.yaml、99-custom.yaml 等命名来控制优先级)
- 典型默认文件:50-cloud-init.yaml(云镜像常见)或 01-netcfg.yaml、00-installer-config.yaml 等
- 配置变更后,必须执行 netplan generate(生成中间配置)+ netplan apply(应用到系统)
- 语法严格:YAML 对缩进、冒号后空格非常敏感,错误会导致应用失败
设置静态 IP 的标准步骤
1. 识别网络接口名称
先查看当前接口:
Bash
ip link show
# 或更详细
ip -c addr show常见名称:
- enp0s3、ens33、eno1(有线以太网)
- enp1s0、eth0(旧式命名)
- wlp2s0(无线,但 Server 通常无 Wi-Fi)
记住你要配置的接口名,例如 enp1s0。
2. 备份现有配置(强烈推荐)
Bash
cd /etc/netplan/
sudo cp *.yaml *.yaml.bak3. 编辑或创建配置文件
推荐创建一个高优先级文件(如 99-static-ip.yaml),避免修改默认文件导致升级覆盖。
使用编辑器(nano/vi):
Bash
sudo nano /etc/netplan/99-static-ip.yaml典型静态 IP 配置示例(IPv4):
YAML
network:
version: 2
renderer: networkd
ethernets:
enp1s0: # ← 替换成你的实际接口名
dhcp4: false # 关闭 IPv4 DHCP
dhcp6: false # 关闭 IPv6 DHCP(若不需要 IPv6)
addresses:
- 192.168.1.100/24 # 你的静态 IP + 子网掩码(CIDR 表示)
routes:
- to: default
via: 192.168.1.1 # 默认网关(路由器 IP)
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 服务器,可用 1.1.1.1、114.114.114.114 等
search: [localdomain] # 可选,域名搜索后缀更完整的生产示例(含 metric 优先级、备用 DNS):
YAML
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: false
dhcp6: false
addresses:
- 10.10.20.45/23
routes:
- to: default
via: 10.10.20.1
metric: 100
nameservers:
addresses:
- 10.10.20.10
- 1.1.1.1
- 8.8.8.84. 验证 YAML 语法并应用
Bash
# 先测试生成(不会应用,但会报告语法错误)
sudo netplan generate
# 如果没报错,再真正应用
sudo netplan applynetplan apply 是安全的,不会中断现有连接(除非你改错了自己的 IP)。
5. 验证结果
Bash
# 查看 IP 是否正确绑定
ip -c addr show enp1s0
# 测试连通性
ping 8.8.8.8
ping www.google.com
# 查看路由表
ip route show常见问题与注意事项
- YAML 缩进错误:最常见失败原因。必须用空格(2 或 4 个),不能用 Tab。建议用 sudo netplan --debug apply 查看详细错误。
- 多个配置文件冲突:如果有多个 .yaml 文件,确保 dhcp4: true 的文件优先级低于你的静态文件,或直接删除/注释默认 DHCP 配置。
- 云环境(AWS、Azure、GCP、阿里云等):云初始化(cloud-init)会覆盖 Netplan,建议在 /etc/netplan/ 下创建更高优先级文件,或修改 cloud-init 配置。
- 无线网络:Server 版很少用 Wi-Fi,若需要,用 wifis: 段代替 ethernets:,并添加 access-points: 配置 SSID 和密码。
- IPv6 静态:类似,加 addresses: [2001:db8::123/64] 等。
- 回滚:出错断开连接时,通过云控制台、物理机屏幕或 rescue 模式恢复备份文件。
总结
在 2026 年的 Ubuntu Server 中,设置静态 IP 已标准化为“编辑 Netplan YAML → netplan apply”两步流程。相比旧的 /etc/network/interfaces,Netplan 更具可读性、可组合性和跨发行版一致性,尤其适合容器化、云原生和自动化部署环境。
记住关键点:
- 接口名必须准确(ip link)
- dhcp4: false 是关闭动态分配的核心
- 应用前备份 + 测试语法
- 生产环境建议把 DNS 也设为可靠的公共服务器或本地递归 DNS
配置完成后,你的服务器就拥有了固定、可预测的网络身份,适合运行 Web 服务、数据库、NAS、容器主机等场景。
版权声明:
作者:后浪云
链接:https://idc.net/help/442449/
文章版权归作者所有,未经允许请勿转载。
THE END
