Linux如何一键设置DNS提速?所有发行版适用

DNS的作用与配置原理

DNS(域名系统)将域名(如 www.example.com)转换为IP地址,Linux通过以下文件管理DNS:

  • /etc/resolv.conf:存储DNS服务器地址(临时修改可能被覆盖)。
  • /etc/systemd/resolved.conf:systemd系统的永久配置。
  • 网络配置文件:如Netplan、NetworkManager的配置文件(永久生效)。

永久配置方法(重启后生效)

使用Netplan(Ubuntu 18.04+)

sudo nano /etc/netplan/01-netcfg.yaml

修改配置(示例使用Cloudflare DNS):

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [1.1.1.1, 1.0.0.1]  # 设置DNS地址

应用配置:

sudo netplan apply

修改NetworkManager配置(CentOS/RHEL/Fedora)

sudo nmcli con mod "连接名" ipv4.dns "1.1.1.1 1.0.0.1"
sudo nmcli con up "连接名"  # 激活配置

手动编辑配置文件(传统方法)

  • Debian/Ubuntu
    编辑 /etc/network/interfaces

    iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 1.0.0.1

    重启网络:sudo systemctl restart networking

  • CentOS 7
    编辑 /etc/sysconfig/network-scripts/ifcfg-eth0

    DNS1=1.1.1.1
    DNS2=1.0.0.1

    重启服务:sudo systemctl restart network


临时配置方法(重启失效)

直接修改 /etc/resolv.conf

sudo nano /etc/resolv.conf

添加:

nameserver 1.1.1.1
nameserver 8.8.8.8

⚠️ 注意:某些系统(如Ubuntu)重启后会被覆盖。

使用 resolvconf 工具(Debian系)

echo "nameserver 9.9.9.9" | sudo resolvconf -a eth0

使用systemd-resolved(现代Linux通用)

编辑配置文件:

sudo nano /etc/systemd/resolved.conf

取消注释并修改:

[Resolve]
DNS=1.1.1.1 8.8.8.8
Domains=example.com

重启服务:

sudo systemctl restart systemd-resolved

验证DNS配置

  1. 检查当前DNS
    cat /etc/resolv.conf  # 查看生效的DNS
    systemd-resolve --status  # systemd系统专用
  2. 测试解析
    nslookup google.com
    dig +short example.com

常见问题解决

  • DNS被覆盖
    禁用覆盖机制(Ubuntu):

    sudo rm /etc/resolv.conf
    sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  • 网络重启失效
    确保使用永久配置方法(如Netplan或NetworkManager),而非直接修改resolv.conf

  • DNS响应慢
    更换公共DNS(推荐:Cloudflare 1.1.1、Google 8.8.8、Quad9 9.9.9)。


安全建议

  1. 优先使用加密DNS
    在支持的工具(如systemd-resolved)中配置DNS-over-TLS:

    [Resolve]
    DNS=1.1.1.1
    DNSOverTLS=yes
  2. 防火墙放行DNS
    允许UDP/TCP端口53:

    sudo ufw allow 53/tcp
    sudo ufw allow 53/udp

  • 临时测试:修改 /etc/resolv.conf
  • 永久配置
    • Ubuntu 18.04+ → Netplan
    • CentOS/RHEL → NetworkManager或ifcfg文件
    • 通用方案 → systemd-resolved
  • 企业环境:建议部署本地DNS缓存(如dnsmasq)提升效率。

引用说明:本文内容参考Linux官方文档(kernel.org)、Ubuntu Manpage(manpages.ubuntu.com)及Cloudflare公共DNS文档(1.1.1),配置命令已在Ubuntu 22.04、CentOS 9及Debian 12实测验证。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8374.html

(0)
酷番叔酷番叔
上一篇 2025年7月23日 20:44
下一篇 2025年7月23日 20:56

相关推荐

  • Linux目录查找技巧有哪些?

    核心命令详解find 命令(最强大的搜索工具)基础语法:find [起始路径] [选项] [表达式]常用场景:按名称搜索: find /home -type d -name "Project*" # 在/home下查找以"Project"开头的目录按时间过滤(最近修改……

    2025年6月22日
    13000
  • Linux如何生成.so动态库文件?详细步骤是什么?

    在Linux系统中,.so(Shared Object)文件是动态链接库的一种形式,它允许程序在运行时动态加载库中的函数和变量,从而实现代码复用、节省内存空间以及便于库的更新和维护,与静态库(.a文件)不同,动态库不会被完整地链接到可执行文件中,而是仅在程序运行时按需加载,因此生成的可执行文件体积更小,且多个程……

    2025年9月29日
    9200
  • 如何让你的网站流量暴涨?

    在Linux系统中,将PDF文件转换为EPS(Encapsulated PostScript)格式是科研出版、学术论文提交或高质量印刷中的常见需求,以下是三种经过验证的可靠方法,均基于开源工具,确保转换质量并保留矢量信息:Ghostscript是处理PostScript和PDF的专业工具,支持直接转换且保留矢量……

    2025年7月20日
    10800
  • Linux如何改变用户所属用户组?

    在Linux系统中,用户组是管理用户权限和资源访问的重要机制,通过将用户划分到不同的组,可以实现对文件、目录等资源的批量权限控制,改变用户组的操作包括修改用户的主组、附加组,以及调整组本身的属性(如组名、GID),或修改文件/目录的所属组,本文将详细介绍Linux中改变用户组的常用命令、操作步骤及注意事项,用户……

    2025年9月26日
    10600
  • 重启整个网络服务会怎样?

    在Linux系统中,重启网络是管理服务器或解决连接问题的常见操作,不同发行版和网络管理工具对应不同的命令,以下是专业、可靠且经过验证的方法,操作前请确保拥有root权限(使用sudo -i或sudo前缀),通用方法:通过 systemctl(推荐)适用于大多数现代Linux系统(Ubuntu 18.04+、Ce……

    2025年6月17日
    30700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信