当前位置:首页 > 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文件:可以使用vi、nano或其他文本编辑器。 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:

    linux下如何设置dns 第1张

    sudo systemctl restart NetworkManager

通过NetworkManager设置DNS

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

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

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

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

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

    linux下如何设置dns 第2张

  4. 重启网络连接: sudo nmcli connection up <connection_name>
  5. 通过网卡配置文件设置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是否工作正常:

    linux下如何设置dns 第3张

    1. 使用nslookup命令: nslookup example.com

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

    2. 使用dig命令: dig example.com

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

    3. 常见问题及解决方法

      问题 解决方法
      修改/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