0x00 简介

netplanUbuntu 在 17.10 版本中引入的一种新的命令行网络配置程序,用于在 Ubuntu 系统中轻松管理和配置网络设置。它允许用户使用 YAML 抽象语法来配置网络接口。它可与 NetworkManager 和 systemd-networkd 网络守护程序一起作为内核的接口。

它读取 /etc/netplan/*.yaml 中描述的网络配置,并且可以将所有网络接口的配置存储在这些文件中。

0x01 静态 IP 设置步骤

  1. 列出 Ubuntu 上的所有活动网络接口

    首先来查看 Ubuntu 上有哪些可以配置的网络接口。可以通过 ifconfig 命令来列出系统中所有连接的网络接口

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ismdeep@ubuntu:~$ ifconfig
    enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.56.103 netmask 255.255.255.0 broadcast 192.168.56.255
    inet6 fe80::a00:27ff:fe7c:4250 prefixlen 64 scopeid 0x20<link>
    ether 08:00:27:7c:42:50 txqueuelen 1000 (Ethernet)
    RX packets 361 bytes 32651 (32.6 KB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 240 bytes 30363 (30.3 KB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10<host>
    loop txqueuelen 1000 (Local Loopback)
    RX packets 1840 bytes 131056 (131.0 KB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 1840 bytes 131056 (131.0 KB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    这里可以看到系统中有两个网络接口:enp0s3 是以太网接口,lo 是环回接口。

  2. Ubuntu 设置静态 IP 地址

    在这个例子中,我们将以 enp0s3 以太网接口配置一个静态 IP。

    如果在 /etc/netplan 目录中没有 yaml 文件的话,则需要通过命令来生成这些配置文件。

    1
    ismdeep@ubuntu:~$ sudo netplan generate

    接下来可以通过以下命令查看 /etc/netplan 中有哪些配置文件。

    1
    2
    3
    ismdeep@ubuntu:~$ ls -l /etc/netplan/
    total 4
    -rw-r--r-- 1 root root 383 Nov 19 11:14 50-cloud-init.yaml

    接下来通过 vim 或者其他编辑器进行编辑 yaml 文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    network:
    ethernets:
    enp0s3:
    addresses:
    - 192.168.56.103/24
    dhcp4: false
    gateway4: 192.168.56.1
    nameservers:
    addresses:
    - 180.76.76.76
    search: []
    version: 2

    说明:

    • enp0s3 : 网络接口名称
    • dhcp4 : 接收 IPv4 接口的 DHCP 属性
    • dhcp6 : 接收 IPv6 接口的 DHCP 属性
    • addresses : 接口的静态地址序列
    • gateway4 : 默认网关的 IPv4 地址
    • nameservers : DNS 服务器地址,以英文逗号( , )分隔。
  3. 使之生效

    在编辑完配置文件后,通过以下命令使配置生效。

    1
    ismdeep@ubuntu:~$ sudo netplan apply

0x02 动态 IP 设置步骤

  1. 要将 enp0s3 以太网接口配置为通过 DHCP 动态IP,只需使用以下配置即可

    1
    2
    3
    4
    5
    6
    network:
    ethernets:
    enp0s3:
    dhcp4: true
    dhcp6: true
    version: 2
  2. 使之生效

    1
    ismdeep@ubuntu:~$ sudo netplan apply