Ubuntu 20.10设置静态IP地址
1. 前言
今天有同学发现 Ubuntu 20.10 设置静态 IP 后没有生效
于是我就在虚拟机上试验了一把,发现完全不起作用(网络上还有很多误人子弟的文章如此写...不求甚解很可怕呀)
root@ubuntu20:~# 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
root@ubuntu20:~#
后来在搜索之后才发现,原来自 17.10 开始,Ubuntu 已放弃在 /etc/network/interfaces 里设置静态 IP 的办法了,即使配置也不会生效,而是改成 netplan 方式 ,配置写在 /etc/netplan/01-network-manager-all.yaml 或者类似名称的 yaml 文件里(此处请注意 yaml 的语法格式)
2. 设置网卡
cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
ethernets:
enp0s3: # 配置网卡的名称,通过 ip a 命令查看
dhcp4: false # 关闭 DHCP,如果需要打开 DHCP 则写 true
addresses: [172.18.0.214/24] # 配置的静态 IP 地址和掩码
optional: true
gateway4: 172.18.0.1 # 网关地址
nameservers:
addresses: [202.106.0.20,114.114.114.114] # DNS 服务器地址,多个 DNS 服务器地址需要用英文逗号分隔开
3. 设置后重启网卡
root@ubuntu20:~# netplan apply
4. 查看网卡设置是否生效
root@ubuntu20:~# ifconfig enp0s3
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.0.214 netmask 255.255.255.0 broadcast 172.18.0.255
inet6 fe80::a00:27ff:fe7e:6d82 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:7e:6d:82 txqueuelen 1000 (Ethernet)
RX packets 456385 bytes 52540642 (52.5 MB)
RX errors 0 dropped 18 overruns 0 frame 0
TX packets 199715 bytes 19649186 (19.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@ubuntu20:~#
5. 测试网络连通性
root@ubuntu20:~# ping -c5 www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=54 time=10.7 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=54 time=12.6 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=3 ttl=54 time=10.6 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=4 ttl=54 time=11.7 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=5 ttl=54 time=11.2 ms
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 10.582/11.377/12.630/0.741 ms
root@ubuntu20:~#
6. yaml 语法
-
冒号后面如果跟内容,需要使用空格隔开
-
使用#号注释代码
-
缩进必须是统一的,不能空格和tab混用
-
缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行来实现的
-
YAML文件扩展名通常为yml或yaml