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 网络配置说明

九、总结

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

相关文章

  • Apache服务器关闭TRACE Method请求方式的方法

    Apache服务器关闭TRACE Method请求方式的方法

    这篇文章主要介绍了Apache服务器关闭TRACE Method请求方式的方法,因为支持该方式的服务器存在跨站脚本漏洞,需要的朋友可以参考下
    2014-06-06
  • linux使用find和crontab命令定期清理过期文件

    linux使用find和crontab命令定期清理过期文件

    这篇文章主要给大家介绍了linux系统下使用find和crontab命令定期清理过期文件的方法,文中先对find和crontab命令进行了详细的介绍,相信对大家的理解和学习具有一定的参考借鉴价值,下面来一起看看吧。
    2016-12-12
  • CentOS VPS安装Kloxo免费虚拟主机管理系统

    CentOS VPS安装Kloxo免费虚拟主机管理系统

    之前介绍过使用LNMP一键安装包配置Web服务器环境。配置环境虽然简单,但往后维护服务器的工作都是通过SSH,这还是需要学习一定的命令的。
    2011-03-03
  • Shell中的单中括号和双中括号的用法详解

    Shell中的单中括号和双中括号的用法详解

    shell中的中括号在条件测试中是使用最频繁的,无论是中括号还是双中括号,可用于一些条件的测试:算术比较、文件属性测试、字符串比较。这篇文章主要介绍了Shell中的单中括号和双中括号的用法详解,需要的朋友可以参考下
    2022-12-12
  • centos下简单配置安装Squid 3.0反向代理

    centos下简单配置安装Squid 3.0反向代理

    以下安装及配置均为Sudu所在公司应用中使用的脚本,希望高手们能指正我的一些不足。如果测试过程中发现了问题请回复或者联系我。
    2010-12-12
  • Windows 配置Apache以便在浏览器中运行Python script的CGI模式

    Windows 配置Apache以便在浏览器中运行Python script的CGI模式

    在前面的我的一篇文章中 “Windows XP下的Python 首次安装配置和使用 ”谈到当想在Apache服务器下运行Python script的时候,发现Apache的mod_python版本还不支持Python 2.6更别说3.0.1了,只有2.5之下的,折腾着卸载和安装,最后还没搞定,就先搁一边了。
    2009-07-07
  • Linux下Mysql定时任务备份数据的实现方法

    Linux下Mysql定时任务备份数据的实现方法

    当安装完成操作系统之后,默认便会启动此任务调度命令。下面这篇文章主要给大家介绍了关于在Linux下Mysql定时任务备份数据的实现方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-11-11
  • linux查看硬盘大小与挂载硬盘的实现

    linux查看硬盘大小与挂载硬盘的实现

    这篇文章主要介绍了linux查看硬盘大小与挂载硬盘的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 关于Apache默认编码错误 导致网站乱码的解决方案

    关于Apache默认编码错误 导致网站乱码的解决方案

    Apache默认编码UTF-8在解析A网站的时候没有任何问题,当运行B网站时出现的"蝌蚪文"乱码问题
    2011-12-12
  • linux下apache开启url重写的方法(详细说明)

    linux下apache开启url重写的方法(详细说明)

    Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块
    2012-04-04

最新评论