如何在 Linux 上使用网络配置工具 Netplan | Linux 中国

2018 年 10 月 9 日 Linux中国
netplan 是一个命令行工具,用于在某些 Linux 发行版上配置网络。
-- Jack Wallen

致谢
编译自 | 
https://www.linux.com/learn/intro-to-linux/2018/9/how-use-netplan-network-configuration-tool-linux
 
 作者 | Jack Wallen
 译者 | LuMing (LuuMing) 🌟🌟共计翻译:5.0 篇 贡献时间:45 天

netplan 是一个命令行工具,用于在某些 Linux 发行版上配置网络。

多年以来 Linux 管理员和用户们以相同的方式配置他们的网络接口。例如,如果你是 Ubuntu 用户,你能够用桌面 GUI 配置网络连接,也可以在 /etc/network/interfaces 文件里配置。配置相当简单且可以奏效。在文件中配置看起来就像这样:

   
   
     
  1. auto enp10s0

  2. iface enp10s0 inet static

  3. address 192.168.1.162

  4. netmask 255.255.255.0

  5. gateway 192.168.1.100

  6. dns-nameservers 1.0.0.1,1.1.1.1

保存并关闭文件。使用命令重启网络:

   
   
     
  1. sudo systemctl restart networking

或者,如果你使用不带 systemd 的发行版,你可以通过老办法来重启网络:

   
   
     
  1. sudo /etc/init.d/networking restart

你的网络将会重新启动,新的配置将会生效。

这就是多年以来的做法。但是现在,在某些发行版上(例如 Ubuntu Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces 文件和 /etc/init.d/networking 脚本,我们现在转向使用 Netplan[1]。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。

我将向你展示如何在 Linux 上使用 Netplan 配置静态 IP 地址和 DHCP 地址。我会在 Ubuntu Server 18.04 上演示。有句忠告,你创建的 .yaml 文件中的缩进必须保持一致,否则将会失败。你不用为每行使用特定的缩进间距,只需保持一致就行了。

新的配置文件

打开终端窗口(或者通过 SSH 登录进 Ubuntu 服务器)。你会在 /etc/netplan 文件夹下发现 Netplan 的新配置文件。使用 cd /etc/netplan 命令进入到那个文件夹下。一旦进到了那个文件夹,也许你就能够看到一个文件:

   
   
     
  1. 01-netcfg.yaml

你可以创建一个新的文件或者是编辑默认文件。如果你打算修改默认文件,我建议你先做一个备份:

   
   
     
  1. sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

备份好后,就可以开始配置了。

网络设备名称

在你开始配置静态 IP 之前,你需要知道设备名称。要做到这一点,你可以使用命令 ip a,然后找出哪一个设备将会被用到(图 1)。

图 1:使用 ip a 命令找出设备名称

我将为 ens5 配置一个静态的 IP。

配置静态 IP 地址

使用命令打开原来的 .yaml 文件:

   
   
     
  1. sudo nano /etc/netplan/01-netcfg.yaml

文件的布局看起来就像这样:

   
   
     
  1. network:

  2.    Version: 2

  3.    Renderer: networkd

  4.    ethernets:

  5.       DEVICE_NAME:

  6.          Dhcp4: yes/no

  7.          Addresses: [IP/NETMASK]

  8.          Gateway: GATEWAY

  9.          Nameservers:

  10.             Addresses: [NAMESERVER, NAMESERVER]

其中:

◈  DEVICE_NAME 是需要配置设备的实际名称。
◈  yes/ no 代表是否启用 dhcp4。
◈  IP 是设备的 IP 地址。
◈  NETMASK 是 IP 地址的掩码。
◈  GATEWAY 是网关的地址。
◈  NAMESERVER 是由逗号分开的 DNS 服务器列表。

这是一份 .yaml 文件的样例:

   
   
     
  1. network:

  2.    version: 2

  3.    renderer: networkd

  4.    ethernets:

  5.       ens5:

  6.       dhcp4: no

  7.       addresses: [192.168.1.230/24]

  8.       gateway4: 192.168.1.254

  9.       nameservers:

  10.          addresses: [8.8.4.4,8.8.8.8]

编辑上面的文件以达到你想要的效果。保存并关闭文件。

注意,掩码已经不用再配置为 255.255.255.0 这种形式。取而代之的是,掩码已被添加进了 IP 地址中。

测试配置

在应用改变之前,让我们测试一下配置。为此,使用命令:

   
   
     
  1. sudo netplan try

上面的命令会在应用配置之前验证其是否有效。如果成功,你就会看到配置被接受。换句话说,Netplan 会尝试将新的配置应用到运行的系统上。如果新的配置失败了,Netplan 会自动地恢复到之前使用的配置。成功后,新的配置就会被使用。

应用新的配置

如果你确信配置文件没有问题,你就可以跳过测试环节并且直接使用新的配置。它的命令是:

   
   
     
  1. sudo netplan apply

此时,你可以使用 ip a 看看新的地址是否正确。

配置 DHCP

虽然你可能不会配置 DHCP 服务,但通常还是知道比较好。例如,你也许不知道网络上当前可用的静态 IP 地址是多少。你可以为设备配置 DHCP,获取到 IP 地址,然后将那个地址重新配置为静态地址。

在 Netplan 上使用 DHCP,配置文件看起来就像这样:

   
   
     
  1. network:

  2.    version: 2

  3.    renderer: networkd

  4.    ethernets:

  5.       ens5:

  6.       Addresses: []

  7.       dhcp4: true

  8.       optional: true

保存并退出。用下面命令来测试文件:

   
   
     
  1. sudo netplan try

Netplan 应该会成功配置 DHCP 服务。这时你可以使用 ip a 命令得到动态分配的地址,然后重新配置静态地址。或者,你可以直接使用 DHCP 分配的地址(但看看这是一个服务器,你可能不想这样做)。

也许你有不只一个的网络接口,你可以命名第二个 .yaml 文件为 02-netcfg.yaml 。Netplan 会按照数字顺序应用配置文件,因此 01 会在 02 之前使用。根据你的需要创建多个配置文件。

就是这些了

不管怎样,那些就是所有关于使用 Netplan 的东西了。虽然它对于我们习惯性的配置网络地址来说是一个相当大的改变,但并不是所有人都用的惯。但这种配置方式值得一提……因此你会适应的。

在 Linux Foundation 和 edX 上通过 “Introduction to Linux”[2] 课程学习更多关于 Linux 的内容。


via: https://www.linux.com/learn/intro-to-linux/2018/9/how-use-netplan-network-configuration-tool-linux

作者:Jack Wallen[4] 选题:lujun9972 译者:LuuMing 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


登录查看更多
0

相关内容

Linux 是一系列类 Unix 计算机操作系统的统称。该操作系统的核心为 Linux 内核。Linux 操作系统也是软件和开放源代码发展中最著名的例子之一。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
CALDERA 一款对手自动模拟工具
黑白之道
20+阅读 · 2019年9月17日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
ISeeYou一款强大的社工工具
黑白之道
30+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Arxiv
10+阅读 · 2019年2月19日
3D-LaneNet: end-to-end 3D multiple lane detection
Arxiv
7+阅读 · 2018年11月26日
Arxiv
12+阅读 · 2018年1月28日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
相关资讯
CALDERA 一款对手自动模拟工具
黑白之道
20+阅读 · 2019年9月17日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
ISeeYou一款强大的社工工具
黑白之道
30+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Top
微信扫码咨询专知VIP会员