Ubuntu配置静态IP以及interfaces配置不生效问题解决
-
前言
最近配置ubuntu20.4的静态IP时发现设置静态 IP 后没有生效,后来发现原来自 17.10 开始,Ubuntu 已放弃在 /etc/network/interfaces 里设置静态 IP 的办法了,即使配置也不会生效。 20.4改成了 netplan 方式 ,配置写在 /etc/netplan/01-network-manager-all.yaml 或者类似名称的 yaml 文件里(此处请注意 yaml 的语法格式)
$ cat /etc/network/interfaces auto enpos3 iface enpos3 inet static address 172.18.0.214 netmask 255.255.255.0 gateway 172.18.0.1 dns-nameserver 202.106.0.20
-
设置网卡
$ cat /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this system network: version: 2 renderer: NetworkManager ethernets: ens33: # 配置网卡的名称,通过 ip a 命令查看 dhcp4: no # 关闭 DHCP,如果需要打开 DHCP 则写 true dhcp6: no addresses: [192.168.154.xxx/24] # 配置的静态 IP 地址和掩码 gateway4: 192.168.154.255 # 网关地址 nameservers: addresses: [192.168.154.2,8.8.8.8] # DNS 服务器地址,多个 DNS 服务器地址需要用英文逗号分隔开 # 注意DNS网段要和自己配的IP同个网段
-
设置后重启网卡
$ netplan apply
-
查看网卡设置是否生效
root@ubuntu20:~# ifconfig enp0s3 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.154.xxx netmask 255.255.255.0 broadcast xxxx
-
测试网络连通性
$ ping -c5 www.baidu.com
注意:yaml 语法
- 冒号后面如果跟内容,需要使用空格隔开
- 使用#号注释代码
- 缩进必须是统一的,不能空格和tab混用
- 缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的
- YAML文件扩展名通常为yml或yaml