在/etc/netplan/*.yaml配置文件中:
renderer的值可以是networkd,或者是NetworkManager
它俩的其中一个区别为:
networkd在图像界面,networking setting中不显示网卡配置。
版权简介: 从Ubuntu 18.04.2版本开始,系统的网络配置改成了新的 netplan.io 方式,弃用了之前使用的 ifupdown 方式。所以网络配置文件和配置方式和之前不同,本文主要介绍新的配置方式如何使用及与之前的区别。
镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站
从Ubuntu 18.04.2版本开始,系统的网络配置改成了新的 netplan.io 方式,弃用了之前使用的 ifupdown 方式。所以网络配置文件和配置方式和之前不同,本文介绍新的配置方式如何使用及与之前的区别。
注:ifupdown 就是用这个脚本 /etc/init.d/networking、systemctl start networking.service 启动网络服务的方式。
一、新旧版本对比
- Ubuntu 18.04的DNS解析设置改成了 systemd-resolved,不是在原先的配置文件 /etc/resolv.conf 设置了。
- Ubuntu 18.04默认情况下不再安装ifupdown,因此命令ifup和ifdown也不可用。可以使用ip命令来实现类似的功能,ip link set device up 和 ip link set device down。
- 之前Ubuntu16.04版本里的网卡配置文件 /etc/network/interfaces 不起作用了,改成了netplan方式。
- 如果新的 netplan 目前不能满足用户的网络使用需求,ifupdown 软件包仍然可以在Ubuntu 中使用和支持。
- ifupdown安装命令:apt install ifupdown
二、netplan 是什么?
netplan官网说它是一个在Linux系统中简单方便配置网络的程序,使用YAML格式的文件进行配置。
YAML是什么?传送门 YAML 入门教程 | 菜鸟教程
三、netplan 的工作方式
netplan 从配置文件 /etc/netplan/*.yaml 读取网络配置,启动后 netplan 在 /run 目录中生成特定网卡名称后缀的配置文件,然后将网卡设备的控制权移交给特定的网络守护程序。
netplan 目前支持以下两种服务:
NetworkManager
Systemd-networkd
多配置引擎
Netplan可以使用不同的配置引擎来管理网络配置,例如NetworkManager、systemd-networkd和DHCP客户端等。
-
NetworkManager:这是一个广泛使用的网络配置工具,可以管理Wi-Fi、蓝牙和有线网络接口,并支持动态IP地址分配和VPN连接等功能。
-
systemd-networkd:这是一个系统守护进程,负责管理网络配置。它提供了基本的网络接口配置和DNS解析功能,并支持IPv6和网络桥接等高级功能。
-
DHCP客户端:这是一个动态主机配置协议(DHCP)客户端,可以自动分配IP地址和其他网络参数。它通常与DHCP服务器一起使用,以管理局域网上的客户机IP地址分配。
通过使用这些不同的配置引擎,Netplan可以适应不同的网络配置需求,并提供更多的配置灵活性和可扩展性。例如,在使用服务器时,可以使用systemd-networkd来提高性能和可靠性,而在桌面环境中,可以使用NetworkManager来管理各种网络接口,以方便用户使用。
为什么不直接使用NetworkManager或systemd-networkd
虽然NetworkManager和systemd-networkd都是强大的网络配置工具,但Ubuntu开发人员决定引入Netplan的主要原因是为了提高Ubuntu系统的网络配置体验和一致性。
在过去,Ubuntu使用ifupdown作为默认的网络配置工具。但是,ifupdown的配置文件使用传统的基于文本的格式,并且缺乏灵活性和可扩展性。此外,Ubuntu系统还经常遇到一些网络配置问题,例如接口命名不一致、硬件变化等等,导致网络配置需要手动更改。
Netplan的引入解决了这些问题。它提供了一个现代化的、易于阅读和编辑的YAML格式的配置文件,可以轻松地管理多个网络接口和配置参数。此外,Netplan还支持多种配置引擎,使得Ubuntu用户可以根据自己的需求选择适当的网络配置方案。
最重要的是,Netplan可以提高网络配置的一致性和稳定性。通过使用Netplan,Ubuntu系统可以自动检测网络接口和硬件变化,并自动更新配置文件。这样,Ubuntu用户可以避免手动修改网络配置文件所带来的错误和不便。
用法
要使用Netplan,可以按照以下步骤进行操作:
1.打开终端窗口。在Gnume中可以使用Ctrl+Alt+T键快捷键来打开终端。
2.使用编辑器打开Netplan配置文件。默认的配置文件位于“/etc/netplan/”目录下,命名为“01-netcfg.yaml”。可以使用命令“sudo nano /etc/netplan/01-netcfg.yaml”来打开此文件,并编辑配置。
3.在Netplan配置文件中,可以定义一个或多个网络接口和相关参数,例如IP地址、网关、DNS等等。以下是一个简单的Netplan配置文件示例:
上面的示例中,我们定义了一个名为“enp0s3”的以太网接口,禁用了DHCP客户端,并手动指定了IP地址、子网掩码、网关和DNS服务器。
-
保存Netplan配置文件并应用更改。可以使用Ctrl+X键快捷键退出编辑器,并选择“Y”保存更改。然后,可以使用命令“sudo netplan apply”来应用新的网络配置。
-
验证网络配置。可以使用命令“ip addr”和“ip route”来检查新的网络配置是否已成功应用。如果一切正常,应该可以看到新的网络接口和相关参数。
配置文件的命名
Netplan 是一个用于配置 Linux 系统网络接口的命令行工具,其配置文件的命名通常遵循以下规则:
-
文件名必须以
.yaml
为后缀。 -
文件名应该是以网络接口的名称为基础,例如
eth0.yaml
,其中eth0
是网络接口的名称。 -
如果需要配置多个网络接口,可以使用
config.yaml
或者类似的通用名称,然后在文件中分别定义每个网络接口的配置。 -
文件名前面的数字标识表示配置文件的优先级。具体来说,Netplan 会按照配置文件名中的数字顺序对配置进行合并,数字越小的配置文件优先级越高,数字相同的配置文件按照字母顺序进行合并。
例如,如果有两个配置文件 01-netcfg.yaml
和 02-netplan.yaml
,则 Netplan 会先应用 01-netcfg.yaml
中的配置,然后再应用 02-netplan.yaml
中的配置。如果两个配置文件中都有相同的接口配置,那么在合并时会以 02-netplan.yaml
中的配置为准。
因此,如果要修改网络接口的配置,可以创建一个新的配置文件,并确保文件名前面的数字比现有的配置文件优先级更高
配置项
在 Netplan 的配置文件中,可以使用以下标签来配置网络接口和相关设置:
-
network
: 该标签是配置文件的根标签,表示整个网络的配置。可以在该标签下定义多个网络接口的配置,以及一些全局设置。 -
version
: 该标签用于指定 Netplan 的版本号。目前版本为 2。 -
renderer
: 该标签用于指定网络接口的配置方式,支持networkd
和NetworkManager
两种渲染器。 -
ethernets
: 该标签用于定义以太网接口的配置。 -
bridges
: 该标签用于定义桥接接口的配置。 -
vlans
: 该标签用于定义 VLAN 接口的配置。 -
bonds
: 该标签用于定义网卡绑定接口的配置。 -
wifis
: 该标签用于定义 Wi-Fi 接口的配置。 -
access-points
: 该标签用于定义 Wi-Fi 接口的可访问点配置。 -
nameservers
: 该标签用于定义 DNS 解析器的配置。 -
routes
: 该标签用于定义路由表的配置。 -
dhcp4
和dhcp6
: 该标签用于定义 DHCP 的配置,包括是否使用 DHCP 和 DHCP 的选项。
这些标签可以组合使用,以实现不同网络场景下的配置需求。例如,可以在 ethernets
标签下定义以太网接口的 IP 地址和网关,然后在 nameservers
标签下定义 DNS 解析器的配置。在配置完成后,使用 netplan apply
命令即可使配置生效
ubuntu18.04系统里查看网卡用netplan配置的信息
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ networkctl
WARNING: systemd-networkd is not running, output will be incomplete.
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback n/a unmanaged
2 enp4s0 ether n/a unmanaged
3 enp5s0 ether n/a unmanaged
4 virbr0 ether n/a unmanaged
5 virbr0-nic ether n/a unmanaged
6 macvtap0 ether n/a unmanaged
7 vnet0 ether n/a unmanaged
8 docker0 ether n/a unmanaged
8 links listed.
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ sudo networkctl status enp4s0
WARNING: systemd-networkd is not running, output will be incomplete.
● 2: enp4s0
Link File: /lib/systemd/network/99-default.link
Network File: n/a
Type: ether
State: n/a (unmanaged)
Path: pci-0000:04:00.0
Driver: igb
Vendor: Intel Corporation
Model: I210 Gigabit Network Connection
HW Address: a8:5e:45:3d:f7:7d
Address: 192.168.0.7
fe80::594e:3bca:fb75:f761
Gateway: 192.168.0.254
四、如使用 netplan
配置文件:/etc/netplan/*.yaml
命令:netplan apply
每个网卡都需要在 /etc/netplan 目录中设置配置文件,在配置中指定网卡ip信息,使用DHCP或者静态ip方式。
/etc/netplan/ 目录下的配置文件,扩展名为.yaml(例如 /etc/netplan/config.yaml),然后运行 netplan apply 此命令分析配置信息并将其应用生效。
配置文件示例:
#网卡eth0使用dhcp方式配置ip网络,配置如下。yaml配置是用空格作为缩进对齐,不能使用tab键。
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
dhcp6: no
#网卡eth0使用静态ip方式,用关键字addresses指定ip地址和子网掩码(支持ipv4和ivp6),gateway4指定网关ip,nameservers 指定DNS。
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.10.10.2/24
gateway4: 10.10.10.1
nameservers:
search: [mydomain, otherdomain]
addresses: [10.10.10.1, 1.1.1.1]
配置文件里的关键字说明:
- renderer:指定后端网络服务,支持networkd(Systemd-networkd) 和 NetworkManager两种,默认是networkd。
- ethernets:指定是以太网配置,其他的还包括 wifis 或者 bridges
- eth0:以太网网卡名称
- dhcp4:开启使用ipv4的DHCP,默认是关闭。
- dhcp6:开启使用ipv6的DHCP,默认是关闭。
- addresses:对应网卡配置的静态ip地址,是ip/掩码的格式,支持ipv6地址,例如 addresses: [192.168.14.2/24, "2001:1::1/64"]
- gateway4, gateway6:指定IPv4/6默认网关,使用静态ip配置时使用。例如IPv4: gateway4: 172.16.0.1 例如IPv6: gateway6: "2001:4::1"
- nameservers:设置DNS服务器和搜索域。有两个受支持的字段:addresses:是DNS地址列表,search:是搜索域列表,没有特殊需要可以不配置search这项。
更多配置项可以参考netplan.io文档 https://netplan.io/reference
参考资料:
BionicBeaver/ReleaseNotes - Ubuntu Wiki
Netplan | Backend-agnostic network configuration in YAML
=============================
使用 Netplan 配置网络
您可以在/etc/netplan/*.yaml找到新的配置文件。
Ubuntu 服务器为 system- networkd生成名为01-netcfg.yaml的 Netplan 配置文件,
Ubuntu 桌面为 Network-Manager 生成名为01-network-manager-all.yaml的 Netplan 配置文件。
当我在 Ubuntu 桌面上工作时,我的/etc/ netplan目录中有01-network-manager-all.yaml文件用于网络配置。01-network-manager-all.yaml用于配置第一个接口。如果您有多个接口,请使用02-network-manager-all.yaml作为第二个接口。Netplan 按数字顺序应用配置。这意味着 01 文件将在 02 文件之前应用。
现在让我们转向网络配置。按照以下步骤在 Ubuntu 中配置静态或动态 IP 地址:
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a8:5e:45:3d:f7:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.7/24 brd 192.168.0.255 scope global noprefixroute enp4s0
valid_lft forever preferred_lft forever
inet6 fe80::594e:3bca:fb75:f761/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether a8:5e:45:3d:f7:7e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.10/24 brd 192.168.0.255 scope global enp5s0
valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:08:04:02:32 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
记下要使用 Netplan 配置的接口名称。这里的是enp4s0和enp4s0 我的机器是双网卡
2. Netplan默认配置文件在/etc/netplan目录下。您可以使用以下命令找到:
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ ls /etc/netplan/
01-network-manager-all.yaml 02-network-manager-all.yaml
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ cat /etc/netplan/*
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$
根据您的网络需要更新配置文件。对于静态 IP 寻址,添加 IP 地址、网关、DNS 信息,而对于动态 IP 寻址,无需添加此信息,因为它将从 DHCP 服务器获取此信息。使用以下语法编辑配置文件。
network:
Version: 2
Renderer: NetworkManager/ networkd
ethernets:
DEVICE_NAME:
dhcp4: yes/no
addresses: [IP_ADDRESS/NETMASK]
gateway: GATEWAY
nameservers:
addresses: [NAMESERVER_1, NAMESERVER_2]
此处说明
DEVICE_NAME:接口的名称。
dhcp4:是或否取决于动态或静态 IP 寻址
addresses:设备的 IP 地址以前缀表示法。不要使用网络掩码。
gateway:连接到外部网络的网关 IP 地址
nameservers : DNS 名称服务器的地址
请注意,Yaml 文件的缩进相当严格。使用空格来缩进,而不是制表符。否则,您将遇到错误。
在 Ubuntu 中配置静态 IP 地址
要手动配置 IP 地址,请使用上述配置文件语法并添加 IP 地址、网关和 DNS 服务器信息。在这里您可以看到我的静态 IP 寻址配置文件:
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ cat 02-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp5s0:
dhcp4: no
addresses: [192.16.10.11/24]
gateway4: 192.168.0.254
nameservers:
addresses: [8.8.8.8,114.114.114.114]
在 Ubuntu 中配置动态 IP 地址
测试配置
在应用任何更改之前,我们将测试配置文件。以 sudo 身份运行以下命令以测试配置:
$ sudo netplan try
应用配置
现在通过以 sudo 身份运行以下命令来应用新配置:
$ sudo netplan apply
如果您看到任何错误,请尝试调试以调查问题。要运行调试,请使用以下命令作为 sudo:
$ sudo netplan –d apply
重启网络服务
成功应用所有配置后,通过运行以下命令重新启动网络管理器服务:
$ sudo systemctl restart network-manager
如果您使用的是 Ubuntu 服务器,请改用以下命令:
$sudo systemctl restart system-networkd
验证 IP 地址
现在要验证新配置是否成功应用,请运行以下命令来验证 IP 地址:
$ ip a
无论您拥有 Ubuntu 服务器还是台式机,您都可以简单地使用 Netplan 配置静态或动态 IP 寻址,而无需任何复杂的配置。
==================
Netplan 是一款使用在终端的配置网络工具,本文介绍在 Ubuntu 18.04 系统中使用 Netplan 来配置网络,新的配置文件、网络设备名称、配置静态 IP 地址、测试配置并应用、配置 DHCP。
前言
多年以来 Linux 管理员和用户们以相同的方式配置他们的网络接口。例如,如果你是 Ubuntu 用户,你能够用桌面 GUI 配置网络连接,也可以在 /etc/network/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 Linux 18.04),网络的配置与控制发生了很大的变化。不需要那个 interfaces 文件和 /etc/init.d/networking 脚本,我们现在转向使用 Netplan。Netplan 是一个在某些 Linux 发行版上配置网络连接的命令行工具。Netplan 使用 YAML 描述文件来配置网络接口,然后,通过这些描述为任何给定的呈现工具生成必要的配置选项。
我将向你展示如何在 Linux 上使用 Netplan 配置静态 IP 地址和 DHCP 地址。本文在 Ubuntu Server 18.04 系统中演示。有句忠告,你创建的 .yaml 文件中的缩进必须保持一致,否则将会失败。你不用为每行使用特定的缩进间距,只需保持一致就行了。
netplan try #用此命令启用配置,并输入回车确定
【Server版本】
一、在Ubuntu Server版本中,因为只存有命令行模式,所以要想进行网络参数设置,只能通过修改 /etc/network/interfaces 。具体设置方法如下:
下面介绍2种Ubuntu 18.04系统下设置静态IP的方法
二、方法一
Ubuntu 18.04采用netplan来管理网络配置计划,在/etc/netplan/目录下有一个以yaml结尾的文件,例如00-installer-config.yaml,不同版本的系统这个文件名可能会有些差异,但是不影响,以实际为准。
(1):先ifconfig|ip a查看电脑的网卡信息:
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a8:5e:45:3d:f7:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.7/24 brd 192.168.0.255 scope global noprefixroute enp4s0
valid_lft forever preferred_lft forever
inet6 fe80::594e:3bca:fb75:f761/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether a8:5e:45:3d:f7:7e brd ff:ff:ff:ff:ff:ff
inet 192.168.0.10/24 brd 192.168.0.255 scope global enp5s0
valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:08:04:02:32 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
找到物理网卡的名称,我这里是enp4s0,其他几个是虚拟网卡和本地回环,不用管。
(2)输入route -n命令,打印路由表,这里主要是为了查看网关地址,后续会用到
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ route -n
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.0.254 0.0.0.0 UG 100 0 0 enp4s0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp5s0
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp4s0
我这里网关地址是192.168.0.254
(3)配置ip
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
ethernets:
enp4s0:
addresses: [192.1168.0.11/24]
gateway4: 192.168.0.254
dhcp4: false
nameservers:
addreses: [114.114.114.114,8.8.8.8]
enp4s0:
dhcp: false
renderer: NetworkManager #networkd
renderer如果是让NetworkMnager来托管的话,需要sudo vim /etc/NetworkManager/NetworkManager.conf
interfaces和Network-Manager是两种网络的设置方案。桌面情况,将conf文件中managed设置成true。
netplan的renderer两种方式:
renderer:NetworkMnager-->vim /etc/NetworkManager/NetworkManager.conf
renderer:networkd->vim /etc/network/interfaces
network:
ethernets:
ens33: #配置的网卡的名称
addresses: [172.16.85.130/24] #配置的静态ip地址和掩码
dhcp4: no #关闭DHCP,如果需要打开DHCP则写yes
optional: true
gateway4: 172.16.85.2 #网关地址
nameservers:
addresses: [8.8.8.8,8.8.4.4] #DNS服务器地址,多个DNS服务器地址需要用英文逗号分隔开
version: 2
renderer: networkd #指定后端采用systemd-networkd或者Network Manager,可不填写则默认使用systemd-workd
注意事项:
- ip 地址和 DNS 服务器地址需要用[]括起来,但是网关地址不需要
- 每个冒号后边都要先加一个空格
- 每一层前边的缩进,至少比上一层多两个空格
根据实际需要依次设置enp3s0网卡的静态IP地址、网关、DNS,dhcp4设置为false,最后一行添加:renderer: networkd。注意缩进对齐,并且每个冒号后面要跟一个空格,否则会有问题。设置好后保存退出。
(4)输入命令netplan apply使改动生效,然后reboot重启系统,就配置好了。
三、方法二
有时候根据方法一操作,仍然不能成功设置静态IP,原因一般是系统里面安装过ifupdown命令。这个命令会根据/etc/network/interfaces这个文件里的配置信息来设置网卡,会覆盖掉上面方法一中的设置,导致不起作用。这时候我们只需修改/etc/network/interfaces这个文件即可。
(1)打开 /etc/network/interfaces
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br1
iface br1 inet dhcp
bridge_ports virbr0-nic
bridge_stp on
bridge_fd 0.0
=====================
auto lo
iface lo inet loopback
动态地址:
auto eth0
iface eth0 inet dhcp
静态地址
auto eth0
iface eth0 inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 114.114.114.114
参照上图进行填写,其中网卡名称、静态IP地址、网关需要根据实际进行填写,填写好后保存退出。
(2)
allen@jettech-WS-C621E-SAGE-Series:/etc/netplan$ sudo cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
search localdomain #如果本Server为DNS服务器,可以加上这一句,如果不是,可以不加
nameserver 172.16.3. #希望修改成的DNS
nameserver 172.16.3. #希望修改成的DNS
options edns0
(3) Ubuntu Server 最后一步,也是最重要的一步
在rc.local里加入这个重启网络配置的命令:
sudo /etc/init.d/networking restart
【Desktop版本】
在Desktop版本中,除了可以修改 /etc/network/interfaces 来进行配置以外;还可以直接在network-manager中配置。通过 interfaces修改的方法参照Server版本。network-manager的配置和直观,按照提示一步一步操作即可,有兴趣的朋友,可以自行Google或者Baidu
但如果修改了interfaces,又配置了network-manager(以下简称nm),你就会发现出现了一些莫名其妙的问题:
1,interfaces和 nm中的网络设置不一样,系统实际的IP是哪个?
2,有时候莫名其妙的,界面右上角的网络连接图标就丢失了。
3,明明在nm中配置了正确的网络设置,为什么就上不了网呢?
其实,我们要知道 interfaces和 nm之间的关系,这些问题就不难解释了。
首先,当系统内没有第三方网络管理工具(比如nm)时,系统默认使用interfaces文件内的参数进行网络配置。(就像Server版本一样)
接着,当系统内安装了 nm之后,nm默认接管了系统的网络配置,使用nm 自己的网络配置参数来进行配置。
但是,如果用户在安装nm之后(Desktop版本默认安装了nm),自己手动修改了interfaces 文件,那nm 就自动停止对系统网络的管理,系统改使用interfaces 文件内的参数进行网络配置。
此时,再去修改nm 内的参数,不影响系统实际的网络配置。若要让nm 内的配置生效,必须重新启用nm 接管系统的网络配置。
现在知道了两者之间的工作关系,再看上面的三个问题:
1,要看nm是否接管,如果没有接管,系统实际的IP设置以interfaces 中的为准。反之,以nm 中的为准。
2,当nm 停止接管的时候,网络连接图标就丢失了。
3,同样是接管的问题。
如果用户希望在Desktop版本中,直接使用interfaces 进行网络配置,那可以关闭network-manager:
/etc/init.d/network-manager stop
systemctl stop NetworkManager
vim /etc/network/interfaces修改之后
确保/etc/NetworkManager/Network-manager.conf内的managed=false(系统默认是false,但是你更改过的话需要改这里)
/etc/init.d/networking restart
如果希望能继续使用nm 来进行网络配置,则需要进行如下操作:
sudo service network-manager stop # 停止 nm服务
sudo rm /var/lib/NetworkManager/NetworkManager.state # 移除nm 的状态文件
sudo gedit /etc/NetworkManager/nm-system-settings.conf # 打开nm 的配置文件
##里面有一行:managed=true
## 如果你手工改过 /etc/network/interfaces ,nm会自己把这行改成:managed=false(这里应该默认就是false)
## 将false 修改成true
sudo servicenetwork-manager start
Debian/Ubuntu的Network-Manager
debian/ubuntu管理网络连接的有两个东西,图形化的NetworkManager和文字的 ifup/ifdown,如果在 /etc/network/interfaces里设置了网卡信息,那么NetworkManager就不会接管该网卡,如果没有设置NetworkManager默认是会接管网卡的。
NetworkManager最方便的地方是个人电脑用无线连网的时候,因为文字界面的 iwlist wlan0 scan 并不是非常好用,而NetworkManger可以像windows那样列出所有可用的wifi热点,如果有中文乱码的,也一样可以连接,但如果你的机子是用来做服务器的,或者是在办公室里使用,有固定的路由环境,一般来说,也会有固定的ip,因为这样可以方便内网共享资源。总之不是个人用的,而且不用移来移去的话,最好是关掉这个NetworkManager,当然如果你经常带着本子跑,想去咖啡馆蹭网的话,就一定要打开这个NetworkManager,自动搜索无线非常方便了。
下面来说说这两种情况:
1,使用NetworkManger来联网,这个时候,如果使用了无线连接路由,而在/etc/network/interfaces里配置了有线连接的eth0的话,就会发生一个超级诡异的问题:可以访问外网,但不能访问内网,比如无线路由ip 192.168.0.1,ping该地址,会显示有线网卡的ip地址无法ping通,而不是无线!证明在设置了有线eth0的时候,会优先采用,但奇怪的是,外网连接正常,所有我怀疑这可能是debian的一个bug。所以当使用 NetworkManager的时候,可以注释掉所有/etc/network/interfaces 里的内容,仅仅保留本地回环网络:
auto lo
iface lo inet loopback
这两句。设置固定ip,可以在NetworkManager图形界面里配置。
2,关闭NetworkManager,关闭命令:sudo /etc/init.d/network-manager stop 取消开机启动:chkconfig network-manager off 重启网络:/etc/init.d/networking restart
修改 /etc/network/interfaces 文件,
系统配置部分:本地回环网络。
auto lo
iface lo inet loopback
有线配置部分:
auto eth0
#iface eth0 inet dhcp # 如果你不想用固定ip的话,推荐用固定ip,这样可以省去请求路由分配的时间
iface eth0 inet static
netmask 255.255.255.0
gateway 192.168.0.1 #gateway 0.0.0.0 # 拨号上网请把 gateway全部设置为0
address 192.168.0.112
无线配置部分:
auto wlan0
iface wlan0 inet static
netmask 255.255.255.0
gateway 192.168.0.1
address 192.168.0.113
pre-up ip link set wlan0 up
pre-up iwconfig wlan0 essid ssid
wpa-ssid TP-Link # 这里的ssid为路由里设置的无线名称
wpa-psk 12345678 # 无线密码
adsl拨号上网:
auto dsl-provider
iface dsl-provider inet ppp # dsl-provider 为之前配置好的拨号名称
provider dsl-provider