根据:https://wiki.ubuntu.com/Netplan
我可以通过以下方式禁用 netplan:“预先设置 netcfg/do_not_use_netplan=true (在启动 Ubuntu Server 安装媒体时将其添加到命令行)”
我假设这是通过以下方式完成的,/etc/default/grub
但我究竟在哪里添加“netcfg/do_not_use_netplan=true”?
是否添加到:GRUB_CMDLINE_LINUX
我目前将其设置为:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
将“netcfg/do_not_use_netplan=true”添加到这个现有设置中的语法是什么?
PS:是的,我想删除 netplan,所以问题具体是如何做到这一点,而不是为什么。
答案1
这些说明也已针对 Ubuntu 18.04.1 进行了测试,并且很可能也适用于使用netplan
和的任何未来版本systemd
。
根本不需要摆弄 GRUB,也不需要手动删除任何文件。/etc/networking
文件和目录中设置的配置重启后仍可继续使用。
这些是已验证脚步:
- 检查您感兴趣的实际接口
ip l
名称链接(又名接口)和ip a
地址。 ifupdown
使用进行安装sudo apt -y install ifupdown
。netplan
用清除sudo apt -y purge netplan.io
。- 根据您的需要进行配置
/etc/network/interfaces
和/或(示例可以提供一些帮助)。/etc/network/interfaces.d
man 5 interfaces
networking
使用sudo systemctl restart networking; systemctl status networking
或重新启动服务sudo /etc/init.d/networking restart; /etc/init.d/networking status
。命令的输出status
应提active
及其状态。- 该命令
ip a
将显示预期的网络配置是否已应用。 - 或者,使用 手动清除 netplan 配置文件的剩余部分
sudo rm -vfr /usr/share/netplan /etc/netplan
。
无需重启即可“刷新” IP 配置:从步骤 5 开始它将处于活动状态。如果出现问题,请仔细检查接口名称。典型的 IPv4 DHCP 配置将类似于以下内容:
auto enp0s3
iface enp0s3 inet dhcp
而静态 IPv4 地址可以像这样配置:
auto enp0s3
iface enp0s3 inet static
address 192.168.255.42/24
gateway 192.168.255.254
#dns-nameservers 8.8.8.8 208.67.222.222
注意,该dns-nameservers
条目将不起作用(感谢@Velkan 指出这一点!):解析器仍在使用/etc/resolv.conf
并systemd
从 提供自己的解析服务127.0.0.53
。因此,您可以手动更新它(无需重启网络!):
nameserver 8.8.8.8
nameserver 208.67.222.222
但这只是一个临时的解决方案,下次重启后它就会消失。
为了获得永久的解决方案,您需要编辑/etc/systemd/resolved.conf
并在“ ”节中添加如下行[Resolve]
:
DNS=8.8.8.8 208.67.222.222
请参阅man 5 resolved.conf
完整文档。
最后,万一出现任何网络服务未按预期响应的情况,则可能需要重新启动该服务。但这是一种奇怪的非标准网络守护进程行为。
答案2
实现这一目标的确切方法很难,在 netplan 的早期阶段也许不可能找到。
我目前将其设置为:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
我认为您的意思是您的/etc/default/grub
读物部分内容是:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
<snip>
我还假设您提供的链接建议您添加参考的措辞:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="ipv6.disable=1 netcfg/do_not_use_netplan=true"
<snip>
我建议您这样做,然后:
sudo update-grub
您还需要:
sudo apt install ifupdown
它可能已经安装。
最后,手动填写/etc/network/interfaces
以按照您想要的方式配置您的网络。
据我和 Google 所见,安装后执行此操作的确切过程并不存在。祝你好运,重启吧!
答案3
在 Ubuntu 18.10 Server 64 位(在 Virtual Box 上运行)上遇到了这个问题,以下步骤允许删除 netplan 并安装网络管理器 - 不确定它们是否适用于 ifupdown。这些步骤改编自 @Uqbar 的回答(谢谢)。
- 检查您感兴趣的实际接口名称,
ip l
包括链接(又名接口)和ip a
地址。 - 安装 网络管理器使用 sudo
apt -y install network-manager
。 - 清除 网络计划 和
sudo apt -y purge netplan.io
。 - 或者,使用 手动清除 netplan 配置文件的残余
sudo rm -vfr /usr/share/netplan /etc/netplan
。 /etc/network/interfaces
根据您的需要进行相应配置 (man 5 interfaces
示例可能会有所帮助)。我的配置如下:auto lo iface lo inet loopback auto enp0s3 allow-hotplug enp0s3 iface enp0s3 inet dhcp
在文件中
/etc/NetworkManager/NetworkManager.conf
,将行修改managed=false
为managed=true
。这将使网络管理器管理在中配置的接口/etc/network/interfaces
。- 使用 重新启动网络管理器服务
sudo service network-manager restart
。status 命令的输出应该提到 积极的 作为其状态。 该命令
nmcli dev
将显示是否已应用预期的网络配置。最初,接口enp0s3
(我的虚拟以太网)显示为未管理。重新启动机器后,它显示为已连接。示例输出如下nmcli
:DEVICE TYPE STATE CONNECTION enp0s3 ethernet connected Ifupdown (enp0s3) wlxc46e1f179799 wifi disconnected -- lo loopback unmanaged --
笔记:我遇到了一些进程挂起的问题,如所述这里和这里。我设法将vm.dirty_ratio
和`vm.dirty_background_ratio 分别从默认值 20 和 10 更改为 10 和 5。为此,请执行以下命令:
sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5
我将在运行虚拟机一段时间后更新此答案并报告结果。
已经过去很久了,但我认为这个问题再也没有发生过(无法验证,因为虚拟机已损坏)。从来没有真正理解为什么;我会把这个笔记留在这里以供将来参考。另请参阅下面的评论。
答案4
作为此答案的补充,该方法确实有效(18.04.4 LTS)以返回 ifup/down,并且比其他一些提议更容易。我确实重新启动了,但不确定是否有必要。
脚步:
ip a
(如果需要,获取有效的设备名称和 IP 地址)
apt install ifupdown
vi /etc/network/interfaces
# 如果你正在这样做,你就知道该放什么了
vi /etc/resolv.conf
# 如果你正在这样做,你就知道该放什么了
apt purge netplan.io
init 6
# 不确定是否需要
冗余文件可能仍然存在,但我决定不再寻找它们