Ubuntu通过netplan设置网卡静态/动态IP的方法(v18.04及之后版本)


一般系统安装好后为DHCP动态获取IP的配置文件如下:

network:
    version: 2
    ethernets:
        ens33:
            dhcp4: true #动态ip
            match:
                macaddress: xx:xx:xx:xx:xx:xx #网卡mac地址

要修改Netplan 配置文件以设置静态IP,​需要先备份原始配置文件,然后编辑配置文件,最后应用更改。

  1. 备份配置文件:

使用 cp 命令备份原始的Netplan 配置文件,通常是 /etc/netplan/01-network-manager-all.yaml。例如:

my-pc@ubuntu$sudo cp /etc/netplan/01-network-manager-all.yaml{,.bak}

上述命令的01-network-manager-all.yaml文件自行替换成系统的文件名称(各有不同的配置文件名称),备份后的文件名为01-network-manager-all.yaml.bak

  1. 查看网卡名称、IP、MAC等信息:
   my-pc@ubuntu$sudo ip addr
  1. 编辑配置文件:

使用文本编辑器(如 vimnano) 打开Netplan 配置文件,例如:

my-pc@ubuntu$sudo vim /etc/netplan/01-network-manager-all.yaml

在文件中找到你的网络接口配置,并修改为静态IP 设置。以下是一个示例,其中 ens33 是你的网络接口名称,192.168.5.15 是你想要设置的静态IP 地址,192.168.5.10 是网关地址,192.168.5.101.1.1.1以及223.5.5.5 是DNS 服务器地址:

network:
    version: 2
    renderer: networkd
    ethernets:
        ens33:
        # 可以ip a查看以太网连接名称
            addresses:
                - 192.168.5.15/24
            nameservers:
                addresses: [192.168.5.10, 1.1.1.1, 223.5.5.5]
            # gateway4: 10.10.10.1
            # gateway4已经废弃,推荐使用routes
            routes:
                - to: default
                  via: 192.168.5.10

注:

  1. YAML在Saltstack中使用两个空格进行缩进,一定不要使用Tab进行缩进。
  2. YAML的冒号后边如果还要文本,需要一个空格。
  3. 列表项的写法类似Markdown,-加上空格。

这里的addresses: [192.168.56.3/24]就是列表项,可以写作:

addresses:    
  - 192.168.56.3/24

如上[192.168.5.1 , 114.114.114.114]的域名服务器设置,在通过netplan get进行查看时,会显示为:

nameservers:   
  addresses:     
    - 192.168.5.1     
    - 114.114.114.114

整个配置为enp0s3网卡开启DHCP,该网络连接将自动获取地址;为enp0s8网卡配置了一个静态IP192.168.5.3,掩码为24位。


netplan常用命令:
完成了配置文件的描述,之后就可以进行通过netplan通过针对后端管理工具生成配置文件。
netplan操作命令提供常用子命令如下:

netplan generate :生成后端管理工具对应的配置;
netplan apply:应用配置,必要时重启管理工具;
netplan try:在配置得到确认之后才应用,如果配置存在错误,则回滚,类似test;
netplan get:获取当前netplan配置;
netplan set:修改当前netplan配置。

netplan –debug apply 返回错误信息。


NetworkManager命令示例:
(选作操作)无移动设备桌面版(或移动设备虚拟机)需执行如下操作:

sudo systemctl status NetworkManager停止NetworkManger.service;
sudo systemctl disable NetworkManager关闭NetworkManger.service开启自启。

sudo netplan apply #应用配置。

注:网关不确定的情况下,可以通过networkctl status查看(如果使用的是VMware虚拟机,则.2地址为网关和本地DNS服务器)。

辅助命令:

networkctl 可以查看网络设备的汇总信息,
networkctl status可以查看详情状态。

后续:
运行netplan apply 报错如下:

root@ubuntu:/etc/netplan# netplan try
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.
Do you want to keep these settings?

可以尝试安装openvswitch-switch软件包解决

sudo apt install openvswitch-switch
sudo systemctl start openvswitch-switch
sudo systemctl enable openvswitch-switch
sudo systemctl start openvswitch-switch

参考资料:
https://blog.csdn.net/bigbaojian/article/details/125396045?fromshare=blogdetail&sharetype=blogdetail&sharerId=125396045&sharerefer=PC&sharesource=lemonplus1999&sharefrom=from_link

发表回复