Ubuntu 26.04 配置静态 IP 地址

本教程将指导你将 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 设置并应用。

bash 复制代码
#!/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 的配置抽象层,可以将配置渲染为 networkdNetworkManager 的后端配置。

Netplan 配置文件位置

  • /etc/netplan/ 目录下的 .yaml 文件
  • 常见文件名:01-netcfg.yaml50-cloud-init.yaml01-network-manager-all.yaml

Netplan 的 YAML 格式要求

  • 缩进必须使用空格,不可使用 Tab
  • 键值对使用 : 分隔
  • 数组使用 - 标识

第二步:查看当前网络状态

在配置之前,先了解当前的网络状态:

bash 复制代码
# 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(也可能是 eth0enp0s3 等)
  • 当前 IP192.168.6.101/24(动态分配)
  • 状态state UP(已启用)

第三步:找到你的网卡名称

在配置中,你需要指定正确的网卡名称。使用以下命令之一查看:

bash 复制代码
# 方法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

常见网卡名称

类型 名称示例
传统命名 eth0eth1
可预测命名(PCIe) enp0s3enp2s1
可预测命名(虚拟机) ens33ens37

本文示例使用 ens33,请替换为你的实际网卡名称。


第四步:备份当前 Netplan 配置

修改前务必备份,以便出错时恢复:

bash 复制代码
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

如果文件不存在(比如使用默认配置),可以跳过这一步。


第五步:编辑 Netplan 配置文件

使用 vimnano 编辑配置文件:

bash 复制代码
sudo vim /etc/netplan/01-netcfg.yaml

或使用 nano(更简单):

bash 复制代码
sudo nano /etc/netplan/01-netcfg.yaml

第六步:写入静态 IP 配置

将以下内容粘贴到文件中(注意 :将 ens33 替换为你的实际网卡名称):

yaml 复制代码
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 用户可读写:

bash 复制代码
sudo chmod 600 /etc/netplan/01-netcfg.yaml

600 表示 -rw-------,即只有所有者(root)有读写权限。


第八步:测试配置(安全验证)

在正式应用前,先测试配置是否正确:

bash 复制代码
sudo netplan try

执行效果

  • 系统会尝试应用配置,并等待 60 秒
  • 如果 60 秒内没有确认,配置会自动回滚
  • Enter 确认,配置正式生效
bash 复制代码
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 测试通过,或者你确定配置正确,可以直接应用:

bash 复制代码
sudo netplan apply

第十步:验证配置是否生效

bash 复制代码
# 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 格式:

yaml 复制代码
routes:
  - to: default
    via: 192.168.6.2

删除原有的 gateway4 行。


2. 配置静态 IP 后无法 ping 通外网

排查流程

bash 复制代码
# 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 配置中存在多个网关定义(比如同时有 gateway4routes)。

解决 :确保配置中只有一个网关定义,删除 gateway4 行,只保留 routes 部分。


4. 配置后 SSH 连接断开

原因:修改了 IP 地址,旧 IP 不再可用。

解决

  • 使用新 IP 重新连接:ssh 用户名@192.168.6.102
  • 如果无法连接,通过服务器本地终端(或 IPMI/KVM)检查配置

5. 网卡名称不对(如实际是 eth0 但配置写的是 ens33)

解决

bash 复制代码
# 查看实际网卡名称
ip a

# 修改配置文件中的网卡名称
sudo vim /etc/netplan/01-netcfg.yaml
# 将 ens33 改为实际的名称(如 eth0)

# 重新应用
sudo netplan apply

6. 如何恢复到 DHCP(自动获取 IP)?

bash 复制代码
# 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`
网关可达 ping -c 2 192.168.6.2 0% 丢包
外网连通 ping -c 3 114.114.114.114 0% 丢包
DNS 解析 nslookup mirrors.aliyun.com 返回 IP 地址

💡 总结

通过本文,你应该已经掌握了:

  1. Netplan 基础:Ubuntu 26.04 的网络配置工具及其 YAML 格式要求。
  2. 静态 IP 配置 :使用 routes 格式替代已弃用的 gateway4
  3. 配置步骤:查看网卡 → 备份 → 编辑 → 测试 → 应用 → 验证。
  4. 问题排查:常见报错及解决方案。

下一步:配置好静态 IP 后,建议配置阿里云镜像源,加速软件安装;或安装 Docker CE,搭建容器化环境。


如果在配置过程中遇到任何问题,欢迎在评论区留言! 😊

相关推荐
虹科网络安全7 小时前
解读CRA横向标准EN 40000系列:从法规文本到工程落地 | CRA合规之路(七)
网络·安全·web安全
huainingning8 小时前
华三防火墙web界面ipsec配置
网络
阿里云云原生11 小时前
可用性从 99.9% 跃升至 99.995%:畅捷通如何用 AI 重塑运维底座?
运维·网络·人工智能
kisloy12 小时前
【爬虫入门第13讲】Scrapy 框架深度解析(四)核心配置与自定义扩展
网络·爬虫·scrapy
夜雪一千13 小时前
TCP数据包长什么样?拆解TCP报文头部结构
网络·网络协议·tcp/ip
德迅云安全杨德俊13 小时前
应用加速:一站式解决企业跨域网络加速与安全双重难题
网络·安全·ddos
瓦学妹14 小时前
什么是网络索引?它是如何工作的?
大数据·网络·python·网络爬虫
TMT星球14 小时前
Crybaby特展北京站开幕 泡泡玛特以IP承载情绪表达
tcp/ip
for_ever_love__16 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c