本教程将指导你将 ubuntu 26.04 服务器的网络从 dhcp(动态分配)切换为静态 ip 地址。配置静态 ip 可以确保服务器拥有固定地址,避免因 dhcp 租约过期或重启导致的 ip 变动,特别适合服务器、数据库、nas 等需要稳定网络标识的场景。
适用环境:ubuntu 26.04 lts (resolute raccoon) / 使用 netplan 网络管理工具
本例配置:ip 地址 192.168.6.102 / 子网掩码 255.255.255.0(/24)/ 网关 192.168.6.2 / dns 114.114.114.114, 8.8.8.8
一键配置脚本(整体执行)
如果你追求效率,可以直接以 root 权限执行以下脚本。它会自动检测网卡、备份配置、写入静态 ip 设置并应用。
#!/bin/bash
# =============================================
# ubuntu 26.04 静态 ip 一键配置脚本
# 功能:配置静态 ip 192.168.6.102/24,网关 192.168.6.2
# =============================================
set -e # 遇到错误立即退出
echo "🚀 开始配置静态 ip 地址..."
# 1. 自动检测网卡名称
interface=$(ip route | grep default | awk '{print $5}' | head -1)
if [ -z "$interface" ]; then
echo "❌ 错误:无法自动检测网卡名称,请手动指定"
echo " 执行 ip a 查看网卡名称,然后修改脚本中的 interface 变量"
exit 1
fi
echo "✅ 检测到网卡: $interface"
# 2. 备份现有 netplan 配置
echo "📁 备份现有配置..."
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak 2>/dev/null || echo "⚠️ 未找到现有配置文件,跳过备份"
# 3. 写入新的静态 ip 配置
echo "📝 写入静态 ip 配置..."
sudo tee /etc/netplan/01-netcfg.yaml > /dev/null <<eof
network:
version: 2
renderer: networkd
ethernets:
$interface:
dhcp4: false
addresses:
- 192.168.6.102/24
routes:
- to: default
via: 192.168.6.2
nameservers:
addresses:
- 114.114.114.114
- 8.8.8.8
eof
# 4. 设置正确的文件权限
sudo chmod 600 /etc/netplan/01-netcfg.yaml
# 5. 测试并应用配置
echo "🔍 测试配置..."
if sudo netplan try --timeout 5; then
echo "✅ 配置测试通过"
else
echo "❌ 配置测试失败,正在恢复备份..."
sudo cp /etc/netplan/01-netcfg.yaml.bak /etc/netplan/01-netcfg.yaml 2>/dev/null || true
sudo netplan apply
exit 1
fi
# 6. 应用配置
echo "🔄 应用网络配置..."
sudo netplan apply
# 7. 显示配置结果
echo ""
echo "=========================================="
echo "✅ 静态 ip 配置完成!"
echo "=========================================="
echo "📌 网卡: $interface"
echo "📌 ip 地址: 192.168.6.102/24"
echo "📌 网关: 192.168.6.2"
echo "📌 dns: 114.114.114.114, 8.8.8.8"
echo ""
echo "📌 验证命令:"
echo " ip addr show $interface"
echo " ip route | grep default"
echo " ping -c 3 114.114.114.114"
echo "=========================================="
分步详解
第一步:理解 netplan 网络管理工具
ubuntu 26.04 使用 netplan 作为默认的网络配置工具。它是一个基于 yaml 的配置抽象层,可以将配置渲染为 networkd 或 networkmanager 的后端配置。
netplan 配置文件位置:
/etc/netplan/目录下的.yaml文件- 常见文件名:
01-netcfg.yaml、50-cloud-init.yaml、01-network-manager-all.yaml
netplan 的 yaml 格式要求:
- 缩进必须使用空格,不可使用 tab
- 键值对使用
:分隔 - 数组使用
-标识
第二步:查看当前网络状态
在配置之前,先了解当前的网络状态:
# 1. 查看所有网卡和 ip 地址 ip a # 2. 查看当前路由表 ip route # 3. 查看当前 dns 配置 cat /etc/resolv.conf
输出示例:
2: ens33: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up group default qlen 1000
link/ether 00:0c:29:c1:96:2c brd ff:ff:ff:ff:ff:ff
inet 192.168.6.101/24 brd 192.168.6.255 scope global dynamic ens33
valid_lft 86385sec preferred_lft 86385sec
从输出中可以看到:
- 网卡名称:
ens33(也可能是eth0、enp0s3等) - 当前 ip:
192.168.6.101/24(动态分配) - 状态:
state up(已启用)
第三步:找到你的网卡名称
在配置中,你需要指定正确的网卡名称。使用以下命令之一查看:
# 方法1:使用 ip 命令
ip a | grep -e "^[0-9]+:" | awk '{print $2}' | sed 's/://g'
# 方法2:列出 /sys/class/net 目录
ls /sys/class/net/
# 方法3:查看连接状态(最直观)
ip link show | grep -e "^[0-9]+:" | grep up
常见网卡名称:
| 类型 | 名称示例 |
|---|---|
| 传统命名 | eth0、eth1 |
| 可预测命名(pcie) | enp0s3、enp2s1 |
| 可预测命名(虚拟机) | ens33、ens37 |
本文示例使用 ens33,请替换为你的实际网卡名称。
第四步:备份当前 netplan 配置
修改前务必备份,以便出错时恢复:
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
如果文件不存在(比如使用默认配置),可以跳过这一步。
第五步:编辑 netplan 配置文件
使用 vim 或 nano 编辑配置文件:
sudo vim /etc/netplan/01-netcfg.yaml
或使用 nano(更简单):
sudo nano /etc/netplan/01-netcfg.yaml
第六步:写入静态 ip 配置
将以下内容粘贴到文件中(注意:将 ens33 替换为你的实际网卡名称):
network:
version: 2
renderer: networkd
ethernets:
ens33: # ⚠️ 替换为你的实际网卡名
dhcp4: false # 关闭 dhcp(禁用动态 ip)
addresses:
- 192.168.6.102/24 # 静态 ip 地址 / 子网掩码(/24 = 255.255.255.0)
routes: # 【重要】新版格式,替代弃用的 gateway4
- to: default # 默认路由
via: 192.168.6.2 # 网关地址
nameservers: # dns 服务器配置
addresses:
- 114.114.114.114 # 国内通用 dns(主)
- 8.8.8.8 # google dns(备用)配置项详解:
| 字段 | 含义 | 本例值 | 说明 |
|---|---|---|---|
version: 2 | netplan 配置版本 | 2 | 固定值,不可修改 |
renderer | 后端渲染引擎 | networkd | 服务器推荐,桌面版可用 networkmanager |
ethernets | 以太网配置块 | - | - |
dhcp4: false | 关闭 ipv4 dhcp | false | 启用静态 ip 必须设为 false |
addresses | ip 地址和子网掩码 | 192.168.6.102/24 | /24 = 255.255.255.0(254个可用ip) |
routes | 路由配置 | - | 新版格式,替代 gateway4 |
to: default | 目标地址(默认路由) | default | 表示所有外部流量 |
via | 网关地址 | 192.168.6.2 | 网络出口设备地址 |
nameservers | dns 服务器列表 | - | - |
重要提醒:ubuntu 26.04 的 netplan 已弃用
gateway4字段,必须使用routes格式,否则会报错gateway4 has been deprecated。
子网掩码对照表:
| cidr | 子网掩码 | 可用 ip 数 |
|---|---|---|
/24 | 255.255.255.0 | 254 |
/25 | 255.255.255.128 | 126 |
/26 | 255.255.255.192 | 62 |
/16 | 255.255.0.0 | 65,534 |
第七步:设置正确的文件权限
netplan 要求配置文件仅 root 用户可读写:
sudo chmod 600 /etc/netplan/01-netcfg.yaml
600 表示 -rw-------,即只有所有者(root)有读写权限。
第八步:测试配置(安全验证)
在正式应用前,先测试配置是否正确:
sudo netplan try
执行效果:
- 系统会尝试应用配置,并等待 60 秒
- 如果 60 秒内没有确认,配置会自动回滚
- 按
enter确认,配置正式生效
do you want to keep these settings? press enter before the timeout to accept the new configuration changes will revert in 112 seconds configuration accepted.
为什么使用
netplan try:如果配置错误(比如 ip 和网关不在同一网段),系统会在 60 秒后自动回滚,避免因配置错误导致无法连接服务器。
第九步:应用配置
如果 netplan try 测试通过,或者你确定配置正确,可以直接应用:
sudo netplan apply
第十步:验证配置是否生效
# 1. 检查 ip 地址是否已更新 ip addr show ens33 | grep inet # 2. 检查默认网关是否正确 ip route | grep default # 3. 测试外网连通性 ping -c 3 114.114.114.114 # 4. 测试 dns 解析 nslookup mirrors.aliyun.com # 5. 查看完整的网络状态 ip a
成功标志:
inet 192.168.6.102/24 brd 192.168.6.255 scope global ens33 default via 192.168.6.2 dev ens33 proto static 64 bytes from 114.114.114.114: icmp_seq=1 ttl=128 time=0.949 ms
常见问题与解决方案
1.netplan apply报错 “gateway4 has been deprecated”
原因:旧版配置使用了 gateway4 字段,ubuntu 26.04 已弃用。
解决:改用 routes 格式:
routes:
- to: default
via: 192.168.6.2删除原有的 gateway4 行。
2. 配置静态 ip 后无法 ping 通外网
排查流程:
# 1. 检查默认网关是否配置正确 ip route | grep default # 应显示:default via 192.168.6.2 dev ens33 # 2. 检查网关本身是否可达 ping -c 2 192.168.6.2 # 3. 检查 dns 配置 cat /etc/resolv.conf # 4. 检查是否有多个默认网关冲突 ip route | grep "^default" # 如果有两行,删除多余的网关:sudo ip route del default via 错误的网关
3.netplan apply报错 “conflicting default route declarations”
原因:netplan 配置中存在多个网关定义(比如同时有 gateway4 和 routes)。
解决:确保配置中只有一个网关定义,删除 gateway4 行,只保留 routes 部分。
4. 配置后 ssh 连接断开
原因:修改了 ip 地址,旧 ip 不再可用。
解决:
- 使用新 ip 重新连接:
ssh 用户名@192.168.6.102 - 如果无法连接,通过服务器本地终端(或 ipmi/kvm)检查配置
5. 网卡名称不对(如实际是 eth0 但配置写的是 ens33)
解决:
# 查看实际网卡名称 ip a # 修改配置文件中的网卡名称 sudo vim /etc/netplan/01-netcfg.yaml # 将 ens33 改为实际的名称(如 eth0) # 重新应用 sudo netplan apply
6. 如何恢复到 dhcp(自动获取 ip)?
# 1. 编辑配置文件
sudo vim /etc/netplan/01-netcfg.yaml
# 2. 修改为:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true # 开启 dhcp
# 删除 addresses、routes、nameservers 部分
# 3. 应用配置
sudo netplan apply配置校验清单
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| ip 地址 | ip a show ens33 | 包含 192.168.6.102/24 |
| 默认网关 | ip route | grep default | default via 192.168.6.2 dev ens33 |
| 网关可达 | ping -c 2 192.168.6.2 | 0% 丢包 |
| 外网连通 | ping -c 3 114.114.114.114 | 0% 丢包 |
| dns 解析 | nslookup mirrors.aliyun.com | 返回 ip 地址 |
总结
通过本文,你应该已经掌握了:
- netplan 基础:ubuntu 26.04 的网络配置工具及其 yaml 格式要求。
- 静态 ip 配置:使用
routes格式替代已弃用的gateway4。 - 配置步骤:查看网卡 → 备份 → 编辑 → 测试 → 应用 → 验证。
- 问题排查:常见报错及解决方案。
下一步:配置好静态 ip 后,建议配置阿里云镜像源,加速软件安装;或安装 docker ce,搭建容器化环境。
以上就是ubuntu 26.04配置静态ip地址的方法步骤的详细内容,更多关于ubuntu 26.04配置静态ip地址的资料请关注代码网其它相关文章!
发表评论