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版本

    Linux系统中,可通过命令”cat /etc/os-release”或”lsb_release

    2025年8月15日
    1400
  • 如何一键安装最新软件?

    在Linux系统中安装宝塔面板(BT-Panel)可大幅简化服务器管理,以下是详细操作指南,严格遵循官方推荐流程并兼顾安全实践:安装前准备系统要求操作系统:CentOS 7+/Ubuntu 18.04+/Debian 10+(推荐全新环境)内存:≥1GB(小内存需配置Swap虚拟内存)硬盘:≥10GB可用空间网……

    2025年7月27日
    2700
  • 死锁由哪四个条件引发?

    在Linux系统中,死锁(Deadlock)是多进程或多线程并发编程中的一种严重问题,指两个或多个执行单元因相互等待对方释放资源而永久阻塞的状态,它不仅会导致程序卡死,还可能引发系统资源耗尽,本文将详细讲解Linux下检测死锁的多种实用方法,帮助开发者和运维人员快速定位问题,在深入检测前,需理解死锁发生的条件……

    2025年6月15日
    3900
  • 如何正确为dev/sdb分区避免误操作?

    挂载前的准备工作连接硬盘并识别将硬盘接入SATA/USB接口,开机后执行: sudo fdisk -l # 或使用 lsblk查看新硬盘标识(如 /dev/sdb、/dev/nvme0n1p1),备份数据(重要!)若硬盘存有数据,务必先备份,挂载操作可能触发格式化,导致数据丢失,检查文件系统确认硬盘是否已格式化……

    2025年7月21日
    2600
  • 你的CPU支持硬件虚拟化吗?

    在Linux系统中,查看虚拟化功能是否启用是部署虚拟机(如KVM、VirtualBox)或容器(如Docker、LXC)的关键前提,以下详细介绍多种专业方法,帮助您全面检测CPU虚拟化支持(如Intel VT-x或AMD-V)及当前虚拟化环境状态,通过 /proc/cpuinfo 文件运行命令查看CPU标志位……

    2025年6月16日
    4000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信