总结:我想找到一种方法,使我的有线网络连接能够正确使用我的 dhcp 服务器提供的所有信息,同时仍允许 gnome 意识到存在活动网络连接。此请求的详细信息在此公认的长描述中提供:
我在一台物理主机(称为 Host1)上运行 Ubuntu 18.04.4 桌面。在我的网络上,我设置了两台服务器(N1 和 N2,均运行 Ubuntu 18.04 服务器),并安装了以下守护进程:isc-bind9、isc-dhcp-server 和 chrony。它们在我的 LAN 上提供 DNS、DHCP 和 NTP 服务。
我将 Host1 设置为 IPv4 DHCP 客户端。我希望 DHCP 客户端接受我的 DHCP 服务器提供的信息。此信息包括保留的 IP 地址、我的本地 DNS 服务器(本地权威服务器和其他所有服务器的解析器)以及我的 NTP 服务器。不幸的是,NetworkManager 显然有一个长期存在的错误(自 2009 年以来),它忽略了来自 DHCP 服务器的几乎所有信息,除了 IP 地址、默认路由和 DNS 服务器。请参阅这是 2009 年 7 月的错误报告。
我做了一些研究,发现从 18.04 开始,关于 Ubuntu 上的网络设置方式似乎存在很多错误信息/混淆。根据我的研究,netplan 将网络连接的设置作为一个抽象来处理,可以使用 NetworkManager 或 systemd-networkd 作为给定连接的“渲染器”(设置网络实现的实际服务)。
由于 NetworkManager 没有执行我需要的操作(或者我认为它应该执行的操作),我切换到 networkd 以通过 dhcp 设置到 Host1 的有线网络连接。networkd 中的默认设置是使用 dhcp 服务器提供的所有信息。我遵循了 netplan 示例这里使用 dhcp4 通过 networkd 设置以太网连接。这是我的 01-config-networkd.yaml 文件:
# use networkd to setup the wired ethernet
network:
version: 2
renderer: networkd
ethernets:
enp8s0:
dhcp4: true
# assuming networkd dhcp4 defaults
# such as the following default to true:
# use-dns, use-ntp, send-hostname, use-mtu, use-routes
运行良好(NTP 服务器已正确列出),但有一个主要问题:gnome 桌面现在认为有线网络连接不受管理。这不会成为问题,只是软件更新程序认为没有连接,不会下载待处理更新的描述。它仍然更新了软件包,但我喜欢查看详细信息,我不确定可能还存在什么其他问题。这个帖子看起来相关,但并不完全相同。这个帖子这正是使用 networkd 作为渲染器时发生的情况,但提出并使用的解决方案是返回 NetworkManager。除非 NTP 问题(以及其他未来问题)能够得到解决,否则这对我来说不是一个选择。这似乎也是将 gnome 桌面安装到 Ubuntu 18.04 服务器上的人的常见问题。请参阅本论坛例如。
这个 askUbuntu 帖子如何在 ubuntu 18.04 桌面上使用 neworkd 代替 NetworkManager似乎正是我要找的,但实际的问题是如何配置静态 IP(而不是标题所示的)。一个答案描述了如何将 NetworkManager 保留为通用渲染器,但让 networkd 专门渲染有线连接。我试过这个,它所做的与上面的没有什么不同。每当 networkd 接管适配器时,NetworkManager 都会认为它是不受管理的,并且显然会告诉 gnome 没有连接(基于软件更新程序),即使 gnome 应用程序使用了一个活动连接。以下是此设置的 netplan 配置:
# Let Network Manager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
# use networkd to setup the wired ethernet
enp8s0:
renderer: networkd
dhcp4: true
# assuming networkd dhcp4 defaults
# such as the following default to true:
# use-dns, use-ntp, send-hostname, use-mtu, use-routes
最终,我发现没有办法让 networkd (正确) 呈现有线以太网连接,同时又不让桌面认为网络连接不可用。任何不需要对 dhcp 提供的信息进行硬编码的帮助都将不胜感激。
编辑于2020年5月10日:
猫/等/网络/接口
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
sudo lshw -C 网络
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:08:00.0
logical name: enp8s0
version: 15
serial: a8:a1:59:15:2b:9c
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 duplex=full firmware=rtl8168h-2_0.0.2 02/26/15 ip=192.168.1.89 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
resources: irq:38 ioport:d000(size=256) memory:f7504000-f7504fff memory:f7500000-f7503fff
猫/等/默认/ntpdate
cat: /etc/default/ntpdate: No such file or directory
猫/etc/ntp.conf
cat: /etc/ntp.conf: No such file or directory
ls -al /etc/systemd/network
total 8
drwxr-xr-x 2 root root 4096 Oct 4 2017 .
drwxr-xr-x 5 root root 4096 Feb 22 11:20 ..
知识产权
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: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a8:a1:59:15:2b:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.89/24 brd 192.168.1.255 scope global dynamic enp8s0
valid_lft 34882sec preferred_lft 34882sec
inet6 fe80::aaa1:59ff:fe15:2b9c/64 scope link
valid_lft forever preferred_lft forever
使用图像编辑:
这是 gnome 下拉菜单:
这是软件更新程序设置,显示它认为没有互联网连接。这是在它更新了所有存储库之后。由于没有更新,它不会显示主窗口,指示没有互联网连接(在它更新列表之后)。
答案1
对于 netplan...
network:
version: 2
renderer: networkd
ethernets:
enp8s0:
dhcp4: true
对于网络管理器...
network:
version: 2
renderer: NetworkManager
sudo netplan --debug generate
sudo netplan apply
reboot