周围开始的Ubuntu 18.04的某个时候,Ubuntu的开发者采用了经典的停止/etc/init.d/networking和/etc/network/interfaces配置网络的方法,并切换到一些东西叫netplan。这让很多人非常愤怒,被广泛认为是一个糟糕的举动。是否可以删除netplan并使用正确的/etc/network/interfaces方法来配置网络?
众所周知,要配置网络,我们可以编辑/etc/network/interfaces和执行/etc/init.d/networking restart.
今天我尝试使用 Ubuntu 17.10,我发现网络配置发生了变化。现在我们应该编辑/etc/netplan01-netcfg.yaml并执行netplan apply.
好吧,这可能是一个不好的问题,但我真的很想知道为什么 Ubuntu 做了这样的改变。是否有充分的理由来解释像这样的所有变化?
我已经安装了 Ubuntu Server 18.04,而不是旧的/etc/network/interfaces,我的网络配置现在似乎存在于一系列 YAML 文件中/etc/netplan,其中我实际拥有的唯一一个是/etc/netplan/50-cloud-init.yaml:
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens3:
addresses: []
dhcp4: true
dhcp6: true
nameservers: {}
optional: true
ens4:
addresses: []
dhcp4: true
dhcp6: true
nameservers: {}
optional: true
version: 2
Run Code Online (Sandbox Code Playgroud)
这似乎是由cloud-init …
Ubuntu 18.04 LTS 使用netplan并systemd-networkd作为默认网络配置工具。
在早期版本中,我们可以使用service networking restart, 或者只是ifdown & ifup完全重新启动网络或接口。
在 18.04 中,netplan 告诉只需更改 yaml 文件并使用 netplan apply 。
当我更改绑定接口时,就像哈希策略 mtu 一样,该netplan apply命令不会使新配置生效。
哦,顺便说一句,netplan 显示 render is networkd.
我搜索了整个互联网以找到重新启动网络的方法,但失败了。
我能做的是重新启动服务器。这将使新的 mtu 和哈希策略生效。
但是只是更改网络参数,为什么我必须重新启动整个服务器!即使是不稳定的 Windows 服务器也不是这样!
所以,谁能告诉我我该怎么办?
我已经尝试过但失败的方法列表:
systemctl restart systemd-networkd : 重新启动但 mtu 和策略没有改变在旧的/etc/network/interfaces我可以定义一个虚拟接口:
auto enp7s0f0
iface enp7s0f0 inet static
address aaa.aaa.aaa.aaa
netmask 255.255.255.0
gateway aaa.aaa.aaa.1
auto enp7s0f0:0
iface enp7s0f0:0 inet static
address bbb.bbb.bbb.bbb
netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
如何在 Ubuntu Server 17.10 上使用 netplan 实现这一点?
现在我有:
network:
version: 2
renderer: networkd
ethernets:
enp7s0f0:
addresses: [aaa.aaa.aaa.aaa/24]
gateway4: aaa.aaa.aaa.1
Run Code Online (Sandbox Code Playgroud)
如何添加带有地址的虚拟接口bbb.bbb.bbb.bbb?
我在 vmware 虚拟机上安装了带有最新更新的 Ubuntu 17.10。Netplan 没有配置我的 2 个以太网。
这是我的 /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
lan:
match:
macaddress: 00:12:34:a8:29:e8
set-name: lan
dhcp4: false
dhcp6: false
accept-ra: false
addresses:
- 10.10.0.48/24
- 1701:5740:5000:3301::48/64
failover:
match:
macaddress: 00:45:57:89:27:e8
set-name: failover
dhcp4: false
dhcp6: false
accept-ra: false
addresses:
- 17.25.111.30/27
- 1701:5740:5000:3300::30/64
gateway4: 17.25.111.1
gateway6: 1701:5740:5000:3300::1
nameservers:
search:
- example.at
- intern.example.at
addresses:
- 10.10.0.1
- 1701:5740::66
Run Code Online (Sandbox Code Playgroud)
我切换回像 eth0 这样的可预测设备,启动后所有设备都被正确命名,但没有配置。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen …Run Code Online (Sandbox Code Playgroud) 除非禁用 TSO 卸载,否则我的网卡在高带宽情况下会崩溃。
它是一个 I217-LM(e1000e 驱动程序)。
我曾经在接口中这样做:
auto eno1
iface eno1 inet dhcp
post-up /sbin/ethtool -K eno1 tso off
Run Code Online (Sandbox Code Playgroud)
如何在 Ubuntu 18.04 上使用 netplan 执行此操作?
我新安装了 Ubuntu 22.04 并配置了 netplan,如下所示:
network:
version: 2
ethernets:
ens18:
addresses:
- 10.10.0.101/24
- 2009:470:1099:10::101/64
dhcp4: false
dhcp6: false
accept-ra: false
gateway4: 10.10.0.1
gateway6: 2009:470:1099:10::1
nameservers:
addresses:
- 8.8.8.8
- 2001:4860:4860::8888
Run Code Online (Sandbox Code Playgroud)
启动后我收到此警告
** (generate:1099): WARNING **: 15:10:35.646: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.
** (generate:1099): WARNING **: 15:10:35.646: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details. …Run Code Online (Sandbox Code Playgroud) 什么是概念renderer中的一个netplan配置文件?
选择渲染器networkd和NetworkNamager渲染器之间有什么实际区别?
任何人(在第二种情况下)都可以继续nmtui或nmcli吗?
如何为 Ubuntu Server 18.04 设置 Raspberry Pi 3 B+ 板载 WiFi?特别是,与netplan?
现有答案,例如“如何在带有 Ubuntu Server 16.04 的 Raspberry Pi 3 上使用板载 wifi?” ,似乎不再因为申请/etc/network/interfaces,国家netplan已经取代ifupdown。
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
Run Code Online (Sandbox Code Playgroud)
这是Raspberry Pi 3的Ubuntu Server 映像的全新安装。
##### release ###########################
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
##### kernel ############################
Linux 4.15.0-1034-raspi2 #36-Ubuntu SMP PREEMPT Fri Apr …Run Code Online (Sandbox Code Playgroud) netplan ×10
networking ×8
18.04 ×4
17.10 ×2
server ×2
cloud ×1
cloud-init ×1
raspberrypi ×1
systemd ×1
wireless ×1