我在 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-manager
systemd-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
责备
一个界面总是有两面。