当前位置:首页 > Linux > 正文

linux下如何设置dns

Linux下设置DNS,可直接编辑/etc/resolv.conf文件,添加nameserver及对应DNS服务器IP地址,保存后重启网络服务使配置生效

Linux系统中,DNS(域名系统)的设置对于网络连接和域名解析至关重要,以下是如何在Linux下设置DNS的详细指南:

通过修改/etc/resolv.conf文件设置DNS

/etc/resolv.conf是Linux系统中用于配置DNS服务器的配置文件,以下是具体步骤:

  1. 打开终端:使用root用户或通过sudo命令获取管理员权限。
  2. 编辑/etc/resolv.conf文件:可以使用vinano或其他文本编辑器。
    sudo nano /etc/resolv.conf
  3. 添加或修改DNS服务器地址:在文件中添加或修改以下行,指定你希望使用的DNS服务器IP地址:
    nameserver 8.8.8.8  # Google Public DNS
    nameserver 8.8.4.4  # Google Public DNS

    你可以根据需要替换为其他DNS服务器,如Cloudflare(1.1.1.1)、OpenDNS(208.67.222.222)等。

  4. 保存并退出:保存文件并退出编辑器。
  5. 重启网络服务:使配置生效,可以使用以下命令:
    sudo systemctl restart network

    或者,如果使用NetworkManager:

    sudo systemctl restart NetworkManager

通过NetworkManager设置DNS

如果你的系统使用NetworkManager来管理网络连接,可以通过以下方式设置DNS:

linux下如何设置dns  第1张

  1. 打开终端:使用nmcli命令行工具。
  2. 查看当前网络连接
    nmcli connection show

    找到你要配置的网络连接名称(如eth0wlan0等)。

  3. 修改DNS服务器:使用以下命令设置DNS服务器:
    sudo nmcli con mod <connection_name> ipv4.dns "8.8.8.8 8.8.4.4"

    <connection_name>替换为你的连接名称,DNS服务器地址可以替换为你需要的值。

  4. 重启网络连接
    sudo nmcli connection up <connection_name>

通过网卡配置文件设置DNS

在某些Linux发行版中,可以通过编辑网卡配置文件来设置DNS,以下是针对CentOS/RHEL系统的示例:

  1. 打开网卡配置文件:编辑ifcfg-eth0文件:
    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. 添加DNS配置:在文件中添加以下行:
    DNS1=8.8.8.8
    DNS2=8.8.4.4
  3. 保存并退出:保存文件并退出编辑器。
  4. 重启网络服务
    sudo systemctl restart network

通过netplan设置DNS(适用于Ubuntu/Debian)

在Ubuntu 17.10及以上版本中,netplan是默认的网络管理工具,以下是配置步骤:

  1. 编辑netplan配置文件:编辑/etc/netplan/01-netcfg.yaml文件:
    sudo nano /etc/netplan/01-netcfg.yaml
  2. 添加DNS配置:在文件中添加或修改以下内容:
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: true
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]

    eth0替换为你的网络接口名称,DNS服务器地址可以替换为你需要的值。

  3. 应用配置
    sudo netplan apply

验证DNS配置

配置完成后,可以通过以下命令验证DNS是否工作正常:

  1. 使用nslookup命令
    nslookup example.com

    如果能够正确返回IP地址,则表示DNS配置成功。

  2. 使用dig命令
    dig example.com

    该命令会显示详细的DNS解析信息。

常见问题及解决方法

问题 解决方法
修改/etc/resolv.conf后DNS不生效 确保已重启网络服务,并检查文件权限是否正确,如果使用NetworkManager,可能需要禁用其对resolv.conf的管理。
DNS解析速度慢或失败 尝试更换DNS服务器,或检查网络连接是否正常。
配置冲突导致DNS无法解析 确保没有重复的DNS配置,且优先级设置正确。

FAQs

Q1: 如何锁定/etc/resolv.conf文件以防止被自动覆盖?
A1: 可以使用chattr命令锁定文件,防止被NetworkManager或其他服务修改:

sudo chattr +i /etc/resolv.conf

如果需要修改,先解锁:

sudo chattr -i /etc/resolv.conf

Q2: 如何临时使用特定的DNS服务器进行测试?
A2: 可以直接编辑/etc/resolv.conf文件,添加或修改DNS服务器地址,然后重启网络服务,测试完成后,可以恢复原配置或重新

0