Ubuntu:18.04/20.04使用netplan设置网络
Ubuntu 20.04服务器中配置静态IP地址
前言
通常,Ubuntu的默认设置是通过DHCP服务器自动获取IP地址,这对台式机系统来说非常有用,因为它不需要任何更改。
但是,始终建议为Ubuntu服务器分配一个静态IP地址,因为该静态IP地址将在重新启动后保持不变。
Ubuntu 17.10及更高版本使用“Netplan”作为默认网络管理工具。因此,在Ubuntu 20.04系统上配置IP地址与旧版本的Ubuntu不同。
在本文中,我们将描述如何在Ubuntu 20.04服务器中配置静态IP地址。同时,这也适用于Ubuntu 18.04,参考在Ubuntu 18.04系统中使用Netplan工具配置网络。
什么是Netplan
Netplan是Canonical(Ubuntu)开发的实用程序,能在Linux系统上轻松配置网络。它基于基于YAML的配置,从而大大简化了网络配置过程。
要配置网络接口,只需创建所需网络接口的YAML描述,然后Netplan将为所选的渲染器工具生成所有必需的配置。
您可以在“/etc/netplan/*.yaml”中找到Netplan网络配置文件。Netplan当前支持以下后端渲染器,例如“NetworkManager”和“Systemd-networkd”。
NetworkManager通常在台式机上使用,而Systemd网络在服务器上使用。
禁用cloud-init配置
确保网络接口不受“cloud-init”管理。要禁用此功能,请将以下行添加到文件“/etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg”中:
$ sudo echo "network: {config: disabled}" >> /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
添加后,您可以通过运行以下命令来确认这一点:
$ cat /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
识别接口和IP信息
以太网接口由系统使用可预测的网络接口名称标识。这些名称可以显示为“eno1”或“enp0s25”。但是,在某些系统中,名称可能有所不同。
使用ip命令可以快速识别系统上所有可用的以太网接口。您可以看到,根据以下输出,动态IP已自动分配给“enp0s3”接口:
$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:97:13:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.101/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe97:132e/64 scope link
valid_lft forever preferred_lft forever
在Ubuntu 20.04服务器中配置静态IP地址
您可以在“/etc/netplan”目录中找到Netplan配置文件。您可能会找到一个默认的netplan配置文件,即“01-netcfg.yaml”或“50-cloud-init.yaml”或“00-installer-config.yaml”,但在您的系统中可能有所不同。
如果/etc/netplan下没有.yaml文件,可以到以下目录找到示例文件
/usr/share/doc/netplan/examples
root@localhost:/home/user# ll /usr/share/doc/netplan/examples
total 92
drwxr-xr-x 2 root root 4096 Feb 11 18:03 ./
drwxr-xr-x 3 root root 4096 Feb 11 18:03 ../
-rw-r--r-- 1 root root 202 Jan 15 2021 bonding.yaml
-rw-r--r-- 1 root root 938 Jan 15 2021 bonding_router.yaml
-rw-r--r-- 1 root root 156 Jan 15 2021 bridge.yaml
-rw-r--r-- 1 root root 245 Jan 15 2021 bridge_vlan.yaml
-rw-r--r-- 1 root root 86 Jan 15 2021 dhcp.yaml
-rw-r--r-- 1 root root 216 Jan 15 2021 dhcp_wired8021x.yaml
-rw-r--r-- 1 root root 168 Jan 15 2021 direct_connect_gateway.yaml
-rw-r--r-- 1 root root 253 Jan 15 2021 direct_connect_gateway_ipv6.yaml
-rw-r--r-- 1 root root 311 Jan 15 2021 ipv6_tunnel.yaml
-rw-r--r-- 1 root root 126 Jan 15 2021 loopback_interface.yaml
-rw-r--r-- 1 root root 360 Jan 15 2021 modem.yaml
-rw-r--r-- 1 root root 49 Jan 15 2021 network_manager.yaml
-rw-r--r-- 1 root root 191 Jan 15 2021 route_metric.yaml
-rw-r--r-- 1 root root 542 Jan 15 2021 source_routing.yaml
-rw-r--r-- 1 root root 239 Jan 15 2021 static.yaml
-rw-r--r-- 1 root root 158 Jan 15 2021 static_multiaddress.yaml
-rw-r--r-- 1 root root 345 Jan 15 2021 static_singlenic_multiip_multigateway.yaml
-rw-r--r-- 1 root root 583 Jan 15 2021 vlan.yaml
-rw-r--r-- 1 root root 91 Jan 15 2021 windows_dhcp_server.yaml
-rw-r--r-- 1 root root 305 Jan 15 2021 wireless.yaml
-rw-r--r-- 1 root root 780 Jan 15 2021 wpa_enterprise.yaml
如果通过DHCP配置IP地址,则默认的netplan配置文件将类似于以下文件:
$ cat /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
要将静态IP地址“192.168.0.20”分配给“enp0s3”界面,请按如下所示编辑文件。进行更改后,保存并关闭文件。
由于这是Yaml文件,因此在更改文件时必须遵循正确的缩进。如果语法不正确,将不会应用更改。
配置:
$ vim /etc/netplan/00-installer-config.yaml
network:
ethernets:
enp3s0:
addresses: [192.168.0.20/24] //IP址
gateway4: 192.168.0.1 // 网关
nameservers:
addresses: [114.114.114.114, 192.168.0.1] //DNS
dhcp4: no
optional: no
version: 2
测试配置:
sudo netplan try
应用配置:
$ sudo netplan apply
通过运行IP命令来验证新的IP信息:
$ ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:97:13:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.20/24 brd 192.168.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe97:132e/64 scope link
valid_lft forever preferred_lft forever
至此,使用Netplan在Ubuntu 20.04服务器中配置静态IP成功。
扩展
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)