VPS默认DNS修改,迟延明显降低
效果
修改前
image851×148 22.6 KB
修改后
image912×150 22.3 KB
问题
某些VPS会使用优先使用自己的DNS, 非大厂8.8.8.8或者1.1.1.1,会导致迟延高,例如
运行如下,查看默认DNS
resolvectl status
会显示如下,第一个172开头的是默认的DNS
image821×213 43.8 KB
解决方法
步骤一:查看系统当前用的是什么网络管理工具
检查点
命令
作用
查看是否在用 NetworkManager
nmcli general status
如果输出有 running,就是在用
查看是否在用 systemd-networkd
networkctl status
如果 systemd-networkd 管理了网卡,会看到详细网卡状态
查看是否在用 Netplan
ls /etc/netplan/
有 .yaml 文件一般就是用 Netplan 配合后端(networkd 或 NetworkManager)
常见默认:
Netplan(Ubuntu Server 默认)
NetworkManager(Ubuntu Desktop, Rocky 默认)
根据系统默认采用的网络管理工具,分别采用不同的设置:
步骤二:根据系统默认采用的网络管理工具修改配置
如果采用的是Netplan:
Option1: Netplan
运行
networkctl status eth0
看最后eth0前是否是systemd-networkd:
如果是,说明eth0 是由systemd-networkd(netplan)来管理,可以通过netplan进行配置。
如果不是,eth0 可能是NetworkManager进行管理,需要修改NetworkManager 配置文件,请见 Option 2 部分。
通过netplan进行配置:
cd /etc/netplan
备份配置文件
sudo cp 00-a-b.yaml 00-a-b.yaml.backup
修改
sudo vim 00-a-b.yaml
把原始内容
# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
dhcp4: true
version: 2
改为
# This is the network config written by 'subiquity'
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
use-dns: no
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
运行生效
sudo netplan apply
sudo resolvectl flush-caches
查看
resolvectl status eth0
可以发现默认是8.8.8.8,运行ping google.com发现延迟明显降低。Done!
如果没有降低,可以把配置文件改回去,运行如上两行生效命令。
如果采用的是NetworkManager :
Option2: NetworkManager
用 nmcli 修改
假设你的网卡是 eth0(先执行 nmcli dev 查看具体名字)。
# 查看网卡名字
nmcli dev
# 修改 DNS,例如改成 8.8.8.8 和 1.1.1.1
sudo nmcli con mod "System eth0" ipv4.dns "8.8.8.8 1.1.1.1"
# 禁用自动获取 DNS(如果是 DHCP)
sudo nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
# 重新连接生效
sudo nmcli con down "System eth0" && sudo nmcli con up "System eth0"
System eth0 是连接名字,不是网卡名字,可以执行 nmcli con 看连接名。
步骤三:避免重启后失效
关闭 cloud-init 对网络的接管:
sudo tee /etc/cloud/cloud.cfg.d/99z-disable-network-config.cfg <<'EOF'
network: {config: disabled}
EOF
‘99z-’ 带一个‘z’是为了确保最后加载这个文件,防止被覆盖失效。(数字越大最后加载)
VPS 默认DNS的优劣
image756×674 25.6 KB
image748×903 30.8 KB