Ubuntu 17.10+ 禁用 netplan

Ubuntu 17.10+ 禁用 netplan

根据: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文件和目录中设置的配置重启后仍可继续使用

这些是已验证脚步:

  1. 检查您感兴趣的实际接口ip l名称链接(又名接口)和ip a地址。
  2. ifupdown使用进行安装sudo apt -y install ifupdown
  3. netplan用清除sudo apt -y purge netplan.io
  4. 根据您的需要进行配置/etc/network/interfaces和/或(示例可以提供一些帮助)。/etc/network/interfaces.dman 5 interfaces
  5. networking使用sudo systemctl restart networking; systemctl status networking或重新启动服务sudo /etc/init.d/networking restart; /etc/init.d/networking status。命令的输出status应提active及其状态。
  6. 该命令ip a将显示预期的网络配置是否已应用。
  7. 或者,使用 手动清除 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.confsystemd从 提供自己的解析服务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 的回答(谢谢)。

  1. 检查您感兴趣的实际接口名称, ip l 包括链接(又名接口)和 ip a 地址。
  2. 安装 网络管理器使用 sudo apt -y install network-manager
  3. 清除 网络计划 和 sudo apt -y purge netplan.io
  4. 或者,使用 手动清除 netplan 配置文件的残余 sudo rm -vfr /usr/share/netplan /etc/netplan
  5. /etc/network/interfaces 根据您的需要进行相应配置 (man 5 interfaces 示例可能会有所帮助)。我的配置如下:

    auto lo
    iface lo inet loopback
    
    auto enp0s3
    allow-hotplug enp0s3
    iface enp0s3 inet dhcp
    
  6. 在文件中/etc/NetworkManager/NetworkManager.conf,将行修改managed=falsemanaged=true。这将使网络管理器管理在中配置的接口/etc/network/interfaces

  7. 使用 重新启动网络管理器服务 sudo service network-manager restart。status 命令的输出应该提到 积极的 作为其状态。
  8. 该命令 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# 不确定是否需要

冗余文件可能仍然存在,但我决定不再寻找它们

相关内容