多年来,Linux管理员和使用户一直都在以一种固定的方式配置了他们的网络接口。例如,假如你是一个Ubuntu使用户,你可以通过桌面GUI或者者从/etc/network/interfaces文件配置网络连接。这种方法简单而且也很好使用。interfaces文件中的配置可能是这样的:auto enp10s0

iface enp10s0 inet static

address 192.168.1.162

netmask 255.255.255.0

gateway 192.168.1.100

dns-nameservers 1.0.0.1,1.1.1.1

保存并关闭该文件后,可以用以下命令重新启动网络:sudo systemctl restart networking

或者者,假如您用的是非systemd的发行版,您可以像这样重新启动网络:sudo /etc/init.d/networking restart

您的网络将重新启动,新配置的接口也能工作的很好。

这就是多年来的做法。但是现在不同了。在某些发行版(如Ubuntu 18.04)中,网络的配置和控制发生了很大的变化。我们现在需要转向Netplan,而不是用接口文件和/etc/init.d/networking脚本。Netplan是一个命令行程序,使用于配置某些Linux发行版上的网络。Netplan用YAML形容文件来配置网络接口,并从这些形容中为任何给定的工具生成必要的配置选项。

我将向您展现如何在Linux上用Netplan来配置静态IP地址和DHCP地址。我将在Ubuntu Server 18.04上进行演示。需要提示的是,你为Netplan创立的.yaml文件必需在间距上保持一致,否则它们将无法工作。你不必为每行用特定的间距,只需保持一致就行了。

创立新的配置文件

打开一个终端窗口(或者者通过SSH登录到你的Ubuntu Server)。您将在/etc/netplan目录中找到Netplan的新配置文件。用命令cd /etc/netplan切换到该目录。进入该目录后,您可能只会看到一个文件:

01-netcfg.yaml

您可以创立一个新文件或者编辑默认文件。假如选择编辑默认文件,我建议首先用以下命令制作一个备份:sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

有了备份,即可以进行配置了。

网络设施名称

在配置静态IP地址之前,需要知道要配置的设施的名称。为此,您可以用命令ip a来找出要用的设施(如下图)。

我将为设施ens5配置静态IP地址。

配置静态IP地址

用以下命令打开原始.yaml文件进行编辑:sudo nano /etc/netplan/01-netcfg.yaml

该文件的布局如下所示:network:

Version: 2

Renderer: networkd

ethernets:

DEVICE_NAME:

Dhcp4: yes/no

Addresses: [IP/NETMASK]

Gateway: GATEWAY

Nameservers:

Addresses: [NAMESERVER, NAMESERVER]

其中:DEVICE_NAME是要配置的实际设施名称。

yes/no是启使用或者禁使用dhcp4的选项。

IP是设施的IP地址。

NETMASK是IP地址的网络掩码。

GATEWAY是您网关的地址。

NAMESERVER是使用逗号分隔的DNS服务器列表。

下面是一个.yaml文件示例:network:

version: 2

renderer: networkd

ethernets:

ens5:

dhcp4: no

addresses: [192.168.1.230/24]

gateway4: 192.168.1.254

nameservers:

addresses: [8.8.4.4,8.8.8.8]

你可以根据自己的实际情况编辑以上内容以满足您的网络需求。保存并关闭该文件。

请注意,网络掩码不再以255.255.255.0的形式配置。网络掩码被增加到了IP地址后面。

测试配置

在应使用更改之前,让我们测试一下配置。为此,用以下命令:sudo netplan try

上述命令将在应使用之前验证配置。假如成功,您将看到新配置被接受。换句话说,Netplan将尝试将新设置应使用于正在运行的系统。假如新的配置文件测试失败,Netplan将自动恢复到以前的工作配置。假如新的配置工作,它将被应使用。

应使用新配置

假如您确定您的配置文件,您可以跳过try选项,直接应使用新配置。对此的命令是:sudo netplan apply

此时,您可以用命令ip a来查看您的新地址配置能否已经就绪。

配置DHCP

尽管您可能不会为您的服务器配置DHCP,但是知道如何做总是很好的。例如,您可能不知道网络受骗前有哪些静态IP地址可使用。您可以为您的设施配置DHCP,获取IP地址,而后将该地址重新配置为静态地址。

要在Netplan中用DHCP,配置文件应该如下所示:network:

version: 2

renderer: networkd

ethernets:

ens5:

Addresses: []

dhcp4: true

optional: true

保存并关闭该文件。而后用以下命令进行测试:sudo netplan try

Netplan应该已经成功测试并应使用DHCP配置。而后,您可以用ip a命令,获取动态分配的地址,而后重新配置静态地址。或者者,您可以将其设置为用DHCP(但是考虑到这是一个服务器,您可能不想这样做)。

假如有多个接口,你可以将第二个.yaml配置文件命名为02-netcfg.yaml。Netplan将按数字顺序应使用配置文件,因而01将在02之前应使用。你可以根据需要为您的服务器创立尽可能多的配置文件。

这就是一律

信不信由你,这就是用Netplan的一律内容。尽管这对于我们之前所习惯的配置网络地址的方式来说是一个重大的改变,但这并不难习惯。考虑到这种类型的配置将会在linux中变的越来越流行,你最终还是需要习惯它。

linux查看etc下yam文件,在Linux上用Netplan进行网络配置相关推荐

  1. linux查看根目录下所有文件夹大小的方法

    linux查看根目录下所有文件夹大小的方法如下: 1.进入根目录:cd / 2.使用命令 : du -sh * 查看根目录下每个文件夹的大小 3.进入占用空间比较大的文件夹,随后针对过大的文件目录不断 ...

  2. Linux 查看目录下的文件数量

    Linux 查看目录下的文件数量 1 查看当前目录下的文件数量(不包含子目录中的文件) 说明: 2 查看当前目录下的文件数量(包含子目录中的文件) 3 查看当前目录下的文件夹数量(不包含子目录中的目录 ...

  3. linux查看根目录下的目录结构,Linux根目录下的文件结构

    文件系统是Linux内核中的主要功能之一,这也是Liunx的一切皆文件的思想. 下面介绍一下root根目录下的文件夹功能. 1.linux根目录文件结构 BACKUP  dev   lib       ...

  4. linux目录下所有文件内容替换,linux替换目录下所有文件中的某字符串

    比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl ...

  5. linux 查看目录下文件、查看文件具体内容、查看文件夹大小

    linux 查看目录下文件.查看文件具体内容 查看目录下文件 查看文件具体内容 查看文件夹大小 查看文件夹下各文件大小 查看目录下文件 ls 查看目录下所有文件(不包含隐藏文件) ls -a 查看目录 ...

  6. [转帖]linux /proc目录下的文件为何无法用vi编辑保存

    linux /proc目录下的文件为何无法用vi编辑保存 https://blog.51cto.com/xlogin/1216914 学习一下 之前看过书 这一点 没太仔细看.. xlogin关注8人 ...

  7. Linux和Mac下获取文件CRC/MD5/SHA1/SHA256

    简介: Linux和Mac下获取文件CRC.MD5.hash.SHA1.SHA256值. 注: Linux和Mac下获取方式一致. 语法如下: cksum 文件名 # CRC md5sum 文件名 # ...

  8. Linux和Windows下计算文件的Hash值

    Linux和Windows下计算文件的Hash值 MD和SHA简介 MD SHA MD5 SHA1标识文件唯一性 Linux Windows 不需要下载工具,也不需要写代码. MD和SHA简介 MD ...

  9. linux查看jar包内容命令,【达内Java教程】用linux查看jar包内文件命令

    深圳java培训(sz.java.tedu.cn)专家教你用linux查看jar包内文件命令 jar vtf fileName.jar 用法: jar {ctxui}[vfm0Me] [jar-fil ...

最新文章

  1. 视频+课件| 室内动态变化场景中的相机重定位(CVPR2021)
  2. 联想PC被华为反超,杨元庆“美梦”或将破碎,余承东:对手较弱
  3. android ListView包含Checkbox滑动时状态改变
  4. Scheme 语言概要
  5. C#集合--Dictionary
  6. JavaScript函数作用域
  7. reduce详细用法
  8. 中断linux命令快捷键_基于Linux终端命令行的快捷键的详细解析
  9. 几种.NET平台数据持久化框架介绍
  10. 88上的数学题目之二
  11. 金山实习周记(2)——沟通
  12. node使用ffmpeg拼接音频
  13. Activiti 7 配置及相关流程一站式介绍(包含基础流程及网关应用)
  14. html5背景图片幻灯片切换,如何将一个PPT的背景设置成另一个PPT的背景?
  15. 代码设置margintop_js获取css属性,更改margin-top属性,给每个a标签的margin-top属性在原基础上 +5px...
  16. 机器学习入门(五):集成学习Bagging,Boosting,RandomForest和GridSearchCV参数调优
  17. 更改tomcat端口8080为80的时候,有系统端口占用的问题
  18. 编程实践精华总结集锦系列2: SpringBoot/Maven/IDEA/Java/Kotlin/Redis等等
  19. python分析股票数据 彤_Python数据分析:股票数据
  20. ubuntu box_将您的Ubuntu Box转换成卡拉OK机

热门文章

  1. lsr: Cannot access .: No such file or directory. 解决办法
  2. 华为nova3 计算机,华为nova 3评测:是迷妹选择,还是实力圈粉?
  3. laravel Helpers文件 通用帮助函数 以及常用帮助方法
  4. signal 11 linux,signal 11 (SIGSEGV)错误排查
  5. 办公软件excel表格_Office 办公软件教程丨Word,Excel,PPT
  6. mysql表别名不加as_数据库别名AS区别
  7. [转]oracle EBS 基础100问
  8. 10万辆特斯拉之后,租车公司Hertz再订6.5万辆Polestar电动车
  9. MySQL数据库的锁 --- 六种分类 - 14种锁详细介绍
  10. jupyter 内核似乎挂掉了 它很快将自动重启---解决方案