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系统中添加服务(通常指守护进程)是管理系统后台任务的核心操作,主要依赖Systemd(现代发行版标准)或SysVinit(旧版系统)实现,以下是详细步骤及最佳实践:Systemd 方式(推荐,适用于 Ubuntu 18.04+、CentOS 7+ 等)步骤 1:创建服务配置文件在 /etc/syst……

    2025年7月17日
    14500
  • linux 如何修改ip代理

    Linux 中,可通过修改网络配置文件或使用命令如 sudo http_proxy 等

    2025年8月14日
    15100
  • Linux系统中如何查看环境变量的具体配置?

    在Linux系统中,环境变量是用于存储系统配置、用户信息以及程序运行所需参数的特殊变量,它们以“键=值”的形式存在,影响当前shell及其子进程的行为,查看环境变量是系统管理、调试程序和配置开发环境的基础操作,Linux提供了多种命令和方法来实现这一需求,下面将详细介绍常用方法及其应用场景,使用printenv……

    2025年9月27日
    10600
  • linux下如何复制

    在Linux系统中,复制文件和目录是最基础且高频的操作,主要通过cp命令实现,结合不同选项可满足多样化需求,针对特殊场景(如远程复制、设备复制、大文件同步等),还可使用rsync、dd等工具,本文将详细说明Linux下的复制方法及常用技巧,基础复制操作复制文件最简单的文件复制语法为cp 源文件 目标文件,例如将……

    2025年9月30日
    14900
  • Linux系统如何进入配置界面?操作步骤有哪些?

    Linux作为一款开源操作系统,其配置方式因发行版、桌面环境及使用场景(桌面版/服务器版)的不同而存在差异,无论是通过图形化界面进行直观设置,还是通过命令行进行精细化管理,掌握进入配置界面的方法都是高效使用Linux的基础,本文将从桌面版和服务器版两个维度,详细解析Linux进入配置界面的多种途径,桌面版Lin……

    2025年10月5日
    13400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信