Ubuntu实现修改局域网IP地址(Netplan)

 更新时间:2026年05月28日 11:23:17   作者:黑风风  
这篇文章主要介绍了Ubuntu实现修改局域网IP地址(Netplan),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在服务器或虚拟机环境中,我们通常需要为 Ubuntu 设置固定的局域网 IP,例如从 192.168.100.142 调整为 192.168.100.151,以便用于 Docker、NAS、数据库、反向代理等长期运行的服务。

一、Ubuntu 当前使用的网络配置体系

Ubuntu 18.04 开始,系统默认使用 Netplan 作为网络配置抽象层:

配置文件位于:/etc/netplan/*.yaml

Netplan 会生成底层的:

  • systemd-networkd
  • NetworkManager 配置

只要你看到 .yaml 文件,说明你使用的就是 Netplan。

ls /etc/netplan

常见文件名例如:

00-installer-config.yaml
50-cloud-init.yaml

二、确认当前网卡名称(非常重要)

在修改 IP 之前,必须确认真实的网卡名:

ip addr

你会看到类似输出:

2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 192.168.100.142/24

本文示例统一使用 ens18,请以你的实际网卡名为准。

三、传统写法的问题:gateway4 已被废弃

很多旧教程仍然使用:

gateway4: 192.168.100.1

在较新的 Netplan 版本中,这一写法会出现警告:

gateway4 is deprecated

为什么会被废弃?

原因并不是“不能用”,而是 设计升级

gateway4 只能描述“一个默认网关”

无法支持:

  • 多路由
  • 策略路由
  • IPv4 / IPv6 统一建模

Netplan 正在统一使用 显式路由模型

四、正确、推荐、无警告的写法(重点)

下面是 官方推荐、未来长期有效 的配置方式。

示例:将 IP 改为192.168.100.151

network:
  version: 2
  ethernets:
    ens18:
      dhcp4: false
      addresses:
        - 192.168.100.151/24
      routes:
        - to: default
          via: 192.168.100.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 114.114.114.114

关键字段说明

addresses

  • /24 等价于 255.255.255.0

routes

  • to: default 表示默认路由
  • via 表示下一跳(路由器 IP)

nameservers

  • 只影响 DNS,不影响局域网通信

五、远程 SSH 环境下的安全应用方式

如果你是通过 SSH 连接服务器,不要直接 netplan apply

推荐使用

sudo netplan try

特性:

  • 配置生效后会进入确认倒计时
  • 如果网络断开,自动回滚
  • 非常适合远程修改 IP

确认网络正常后,按提示回车即可。

六、验证是否配置成功

查看 IP

ip addr show ens18

查看默认路由

ip route

应看到:

default via 192.168.100.1 dev ens18

七、常见踩坑点汇总

1. IP 冲突

修改前请确认目标 IP 未被占用:

ping 192.168.100.151

2. YAML 缩进错误

  • 只能使用空格
  • routes 下的 - tovia 缩进必须一致

3. cloud-init 覆盖配置

如果存在 50-cloud-init.yaml,需确认 cloud-init 是否会在重启时重写网络配置。

参考资料:

1.Netplan 官方文档(Canonical)

2.Netplan 路由配置说明(Default Route / routes)

3.Ubuntu Server 网络配置文档

4.systemd-networkd 文档(Netplan 底层实现之一)

5.cloud-init 网络配置说明

九、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux抵御DDOS攻击 通过iptables限制TCP连接和频率

    linux抵御DDOS攻击 通过iptables限制TCP连接和频率

    这篇文章主要介绍了linux抵御DDOS攻击 通过iptables限制TCP连接和频率,需要的朋友可以参考下
    2016-05-05
  • VMware下Ubuntu16.04镜像完整安装教程

    VMware下Ubuntu16.04镜像完整安装教程

    这篇文章主要为大家详细介绍了VMware下Ubuntu16.04镜像完整安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Linux的GPIO驱动程序使用详解

    Linux的GPIO驱动程序使用详解

    文章详细解析了Linux系统中GPIO驱动程序的结构及多层抽象,说明了从硬件寄存器到内核与用户空间API的实现过程,并通过具体开发板实例,展示了驱动注册、访问与共享机制,总结:Linux GPIO驱动层次清晰,保障了平台兼容性与安全访问
    2025-10-10
  • Linux fsync系统调用方式

    Linux fsync系统调用方式

    这篇文章主要介绍了Linux fsync系统调用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 详解Linux上svn命令行批量操作

    详解Linux上svn命令行批量操作

    这篇文章主要介绍了详解Linux上svn命令行批量操作的相关资料,linux上的svn命令行批量添加或删除文件,需要的朋友可以参考下
    2017-07-07
  • Linux使用Cron+AT实现在某个确定的时间段内随机执行命令

    Linux使用Cron+AT实现在某个确定的时间段内随机执行命令

    写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使用Cron+AT实现,需要的朋友可以参考下
    2016-07-07
  • Linux如何修改SSH端口号

    Linux如何修改SSH端口号

    这篇文章主要介绍了Linux如何修改SSH端口号问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 在Centos部署nodejs的步骤

    在Centos部署nodejs的步骤

    本篇文章主要介绍了在Centos部署nodejs的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Linux VPS利用SSH重置ROOT密码的方法

    Linux VPS利用SSH重置ROOT密码的方法

    如果我们的VPS使用的是SolusVM客户端管理面板,我们直接在VPS商的管理后台就可以重置ROOT密码
    2012-09-09
  • Ubuntu下Sublime Text无法输入中文最简单的解决方案

    Ubuntu下Sublime Text无法输入中文最简单的解决方案

    今天小编就为大家分享一篇关于Ubuntu下Sublime Text无法输入中文最简单的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10

最新评论