如何在VPS上修改DNS?

HCRM技术_小炮 DNS 2026-05-11 3 0

在 VPS 上修改 DNS 主要取决于你使用的 Linux 发行版以及网络管理工具(如 systemd-networkd、NetworkManager 或 netplan),以下是几种常见情况的修改方法,请根据你的 VPS 系统选择对应的步骤。

临时修改(重启后失效)

适用于快速测试,不会永久保存。

直接修改 /etc/resolv.conf(部分系统为只读)
echo "nameserver 1.1.1.1" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf

永久修改(推荐)

方法 A:使用 systemd-resolved(Ubuntu 18.04+、Debian 10+ 等)

这是最常见的现代 Linux 发行版 DNS 管理方式。

1、编辑配置文件:

sudo nano /etc/systemd/resolved.conf

2、添加或修改以下内容:

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=8.8.4.4
如果需要,取消下面行的注释以启用高级选项
#Domains=

3、重启服务:

sudo systemctl restart systemd-resolved

4、如果/etc/resolv.conf 未自动更新,可手动创建软链接:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

方法 B:使用 netplan(Ubuntu 18.04+ 默认)

许多云 VPS(如 DigitalOcean、Linode、Vultr)使用 netplan 管理网络。

1、找到配置文件(通常为/etc/netplan/ 下的.yaml 文件):

ls /etc/netplan/
输出类似:01-netcfg.yaml 或 50-cloud-init.yaml

2、编辑该文件(例如sudo nano /etc/netplan/01-netcfg.yaml),在对应接口下添加 DNS:

network:
  version: 2
  ethernets:
    eth0:           # 你的网卡名称,可能是 ens3 或 eth0
      dhcp4: true   # 通常为 true,但需保留
      nameservers:
        addresses:
          - 1.1.1.1
          - 8.8.8.8

3、应用配置:

sudo netplan apply

方法 C:使用 NetworkManager(CentOS、Fedora、老版 Ubuntu)

如果你的 VPS 使用了 NetworkManager(查看systemctl status NetworkManager):

首先查看当前连接名称
nmcli con show
修改指定连接的 DNS,例如连接名为 "System eth0"
nmcli con mod "System eth0" ipv4.dns "1.1.1.1 8.8.8.8"
应用修改
nmcli con up "System eth0"

方法 D:直接编辑接口配置文件(CentOS 7/8、RHEL 传统方式)

1、编辑/etc/sysconfig/network-scripts/ifcfg-eth0(网卡名称可能不同):

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

2、添加或修改 DNS 行:

DNS1=1.1.1.1
DNS2=8.8.8.8
PEERDNS=no   # 避免被 DHCP 覆盖

3、重启网络服务:

sudo systemctl restart network
或对于老系统:service network restart

验证修改是否生效

检查当前 DNS 服务器
cat /etc/resolv.conf
或使用 dig
dig +short example.com
或使用 nslookup
nslookup google.com
查看 systemd-resolved 状态
systemd-resolve --status   # 新版本: resolvectl status

常见问题与注意事项

云厂商自定义网络:部分云平台(如阿里云、腾讯云)在 VPS 重启后可能会通过 DHCP 或 cloud-init 覆盖/etc/resolv.conf,此时需要检查是否使用了dhclientcloud-init,并修改对应的配置模板(例如/etc/dhcp/dhclient.conf/etc/cloud/cloud.cfg)。

安全加固:如果你的 VPS 需要防 DNS 劫持,建议使用加密 DNS(DNS over HTTPS/TLS),但上述方法仅针对传统 UDP 53 端口的 DNS。

推荐公共 DNS

- Cloudflare:1.1.1.1,1.0.0.1

- Google:8.8.8.8,8.8.4.4

- 阿里云国内:223.5.5.5,223.6.6.6

- 腾讯云国内:119.29.29.29

选择适合你系统的方法修改后,请测试pingcurl 外部域名确认网络正常,如果修改后无法上网,请检查防火墙或通信是否被云服务商安全组拦截。

文章摘自:https://idc.huochengrm.cn/dns/25546.html

评论