18.04 - 它是否强制使用 netplan 还是我仍然可以使用 solved.conf?

18.04 - 它是否强制使用 netplan 还是我仍然可以使用 solved.conf?

我在 18.04 Bionic Beaver 上不断收到超时错误,直到我使用这些命令切换到 OpenDNS

sudo rm -f /etc/resolv.conf 
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf 
sudo nano /etc/systemd/resolved.conf
# with body 
nameserver 208.67.222.222

我真的应该用 Netplan 进行这个 OpenDNS 配置吗?我尝试了以下方法,但没有效果。

# Create a netplan file
sudo vi /etc/netplan/50-cloud-init.yaml

# Put this in the body
nameservers: 
    addresses: [208.67.222.222, 208.67.220.220]

我也在正文中尝试过这种语法,但没有成功,但也许是因为我在使用 wifi 并且我喊出了“以太网”??? wlo1 是我的 wifi 逻辑名称sudo lshw -C network

network:
  ethernet:
    wlo1:
      nameservers:
        addresses: [208.67.222.222, 208.67.220.220]

答案1

您首先必须决定使用 NetworkManager 还是 systemd-networkd。如果您将 Wi-Fi 连接到各种无线网络,那么 NetworkManager 可能是更好的选择。systemd-networkd 最适合用于服务器,因为服务器的配置变化不大。请参阅https://netplan.io/examples

/etc/netplan .yaml 示例启用 NetworkManager...


network:
  version: 2
  renderer: NetworkManager

terminal...

sudo netplan generate# 生成配置文件

sudo netplan apply# 应用新配置

reboot# 重新启动以确认网络操作

答案2

另一个选择是systemd-networkd.service, 代替网络管理器.服务

背景故事

我在使用 NetworkManager 时遇到了问题,在更改网络设置几次后,DNS 就会失败。

我注意到应该与和systemd-resolved.service一起工作。 network-managersystemd-network

systemd-networkd实际上是软件系列的一部分systemd。所以(我想也许)它会systemd-networkd比更好地沟通NetworkManager。我试过了,确实看起来更好。

如何设置systemd-networkd

设置 ,/etc/systemd/network/10-enp2s0.network其中enp2s0是接口的名称,如 所示ifconfig。它可能是eth0。这是一个带 DNS 覆盖的 DHCP 简单示例。请注意,该DNS=指令可以多次使用。

[Match]
MACAddress=1c:dd:dd:dd:dd:dd

[Network]
DHCP=yes
DNS=208.67.222.222
DNS=208.67.220.220

[Network]固定地址的部分。

[Network]
Address=192.168.1.172/24
Gateway=192.168.1.1
DNS=208.67.222.222
DNS=208.67.220.220

更多示例

测试一下 -

systemctl stop NetworkManager.service
systemctl start systemd-networkd.service
systemctl restart systemd-resolved.service

在我运行的系统上systemd-resolved,该resolv.conf文件是一个链接 -

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

如果在期间没有自动替换链接restart,您可能需要手动链接并systemd-resolved重新启动。

如果它按预期工作,则设置其启动时间启动行为 -

systemctl disable NetworkManager.service
systemctl enable systemd-networkd.service

责备

一个界面总是有两面。

相关内容