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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐