网站打不开是DNS的锅?

在Linux系统中配置DNS是确保网络连接正常的关键步骤,以下将详细介绍多种配置方法,涵盖主流发行版(如Ubuntu、CentOS、Debian等),并强调安全性和最佳实践,所有操作均需root权限(使用sudo或切换root用户)。

  • DNS作用:将域名(如www.example.com)解析为IP地址(如0.2.1)。
  • 配置文件
    • /etc/resolv.conf:传统DNS配置文件(可能被覆盖)。
    • /etc/systemd/resolved.conf:systemd系统的DNS配置。
    • /etc/NetworkManager/NetworkManager.conf:NetworkManager服务配置。
    • /etc/netplan/*.yaml:Ubuntu 18.04+的Netplan配置。

配置方法详解

方法1:临时修改(重启失效)

编辑/etc/resolv.conf(适用于临时测试):

sudo nano /etc/resolv.conf

添加DNS服务器(例如Cloudflare和Google DNS):

nameserver 1.1.1.1
nameserver 8.8.8.8

注意:某些服务(如NetworkManager)会覆盖此文件,需结合以下永久配置。


方法2:永久配置(推荐)

1 使用NetworkManager(图形界面/命令行)

  • 图形界面(Ubuntu/CentOS GNOME):
    1. 打开设置网络 → 选择连接 → IPv4/IPv6
    2. 关闭自动获取DNS,手动输入DNS地址(如1.1.1,8.8.8.8)。
  • 命令行
    nmcli con mod "连接名" ipv4.dns "1.1.1.1 8.8.8.8"
    nmcli con up "连接名"  # 应用配置

2 使用systemd-resolved(Ubuntu/Debian)

  1. 编辑配置文件:
    sudo nano /etc/systemd/resolved.conf
  2. 取消注释并修改:
    [Resolve]
    DNS=1.1.1.1 8.8.8.8
    Domains=example.com
  3. 重启服务:
    sudo systemctl restart systemd-resolved
  4. 验证状态:
    systemd-resolve --status

3 使用Netplan(Ubuntu 18.04+)

  1. 编辑YAML文件(如/etc/netplan/01-netcfg.yaml):
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.10/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [1.1.1.1, 8.8.8.8]
            search: [example.com]
  2. 应用配置:
    sudo netplan apply

4 传统配置(Debian/CentOS)

  • 文件路径/etc/network/interfaces(Debian)或/etc/sysconfig/network-scripts/ifcfg-eth0(CentOS 7)。
  • 示例(Debian)
    iface eth0 inet static
      address 192.168.1.10
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-nameservers 1.1.1.1 8.8.8.8
      dns-search example.com
  • 重启网络服务:
    sudo systemctl restart networking  # Debian
    sudo systemctl restart network     # CentOS 7

验证DNS配置

  1. 检查生效的DNS
    cat /etc/resolv.conf  # 注意:可能被覆盖
    systemd-resolve --status  # systemd系统
  2. 测试解析
    nslookup google.com
    dig google.com +short
    ping -c 3 google.com

常见问题解决

  • DNS被覆盖:若/etc/resolv.conf被重置,检查:
    • NetworkManager的dns=none选项(在/etc/NetworkManager/NetworkManager.conf中)。
    • 禁用resolvconf服务:sudo systemctl stop resolvconf.service
  • 解析缓慢:优化DNS顺序或更换公共DNS(如1.1.18.8.8更快)。
  • 安全建议
    • 使用加密DNS(DoH/DoT),如cloudflare-dns.com
    • 避免公共Wi-Fi中使用默认DNS(防劫持)。

最佳实践

  1. 主备DNS分离:配置至少两个DNS(如主用Cloudflare,备用Google)。
  2. 本地缓存加速:安装dnsmasqsystemd-resolved提升解析速度。
  3. 企业环境:优先使用内部DNS服务器,保障域名解析安全。

引用说明基于Linux官方文档(kernel.org)、Ubuntu Manpage(manpages.ubuntu.com)及Cloudflare公共DNS指南(1.1.1),配置前请备份原始文件,操作需符合企业安全策略。

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

(0)
酷番叔酷番叔
上一篇 3天前
下一篇 3天前

相关推荐

  • 为什么firewalld无法开放指定端口?

    在Linux系统中,防火墙是保护系统安全的关键组件,它通过控制网络流量阻止未授权访问,禁用防火墙会显著增加系统遭受网络攻击的风险,仅建议在测试环境、内部安全网络或明确知晓后果的情况下操作,以下是不同防火墙工具的禁用方法,操作前请确保具备管理员权限(使用sudo),操作前准备确认当前防火墙工具执行以下命令查看系统……

    2025年7月7日
    1300
  • 吸引流量?

    查看文件行结构(行结束符类型)Linux/Unix系统使用 LF(\n) 作为行结束符,Windows使用 CRLF(\r\n),通过以下命令识别:file 文件名 # 查看文件类型和行结束符cat -A 文件名 # 显示行结束符(LF显示为`$`,CRLF显示为`^M$`)dos2unix -n 原文件 新文……

    2025年6月21日
    1900
  • Linux强制关机危害大?安全关机命令揭秘!,(注,28字,疑问句式引发好奇,包含核心关键词Linux安全关机命令,同时点出用户痛点强制关机危害提升点击欲)

    在Linux虚拟机中正确退出至关重要,不仅能避免数据丢失或系统损坏,还能确保虚拟化环境稳定运行,以下是三种主流退出方法,适用于VirtualBox、VMware Workstation/Player等常见虚拟机软件,操作前请务必保存工作文件,此方法模拟物理机关机流程,确保所有进程正常结束,步骤:在虚拟机内打开终……

    6天前
    900
  • 如何重新加载配置而无需重启?

    在Linux系统中,NFS(Network File System)是实现跨网络共享文件的关键服务,当修改NFS配置(如/etc/exports文件)或遇到服务异常时,重启NFS是必要的操作,以下是详细步骤,覆盖主流Linux发行版:重启NFS的核心步骤CentOS/RHEL 7+ 或 Fedora(使用sys……

    2025年7月17日
    1200
  • 如何快速确认系统并进行基础操作?

    在开始使用前,请务必确认您的系统版本,主流 Linux 发行版(如 Red Hat Enterprise Linux / CentOS)的 1 版本发布于 2015 年,目前已结束生命周期(EOL),不再获得安全更新和技术支持,强烈建议用户升级至受支持的版本(如 RHEL/CentOS 8+ 或 Ubuntu……

    2025年7月4日
    1700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信