5154

Good Luck To You!

linux增加dns服务器

Linux中增加DNS服务器,可编辑/etc/resolv.conf文件,添加如nameserver X.X.X.X的条目,或使用命令sudo echo "nameserver X.X.X.X" >> /etc/resolv.conf

Linux系统增加DNS服务器详解

在Linux系统中配置DNS服务器是网络管理的重要环节,无论是优化解析速度还是搭建本地缓存服务都至关重要,以下是多种实现方法及详细步骤说明:


直接修改/etc/resolv.conf文件(最常用)

适用场景:快速临时调整或静态设置首选/备用DNS。
📝操作流程

  1. 以root权限打开配置文件:
    sudo nano /etc/resolv.conf
  2. 添加如下格式的条目(每行一个DNS IP):
    nameserver 8.8.8.8      # Google公共DNS
    nameserver 8.8.4.4      # 备用节点
  3. 保存后立即生效,无需重启服务。
    ⚠️注意:此方法会覆盖原有配置,建议先备份原文件。
📊配置对比示例
search domain.local search domain.local
nameserver 192.168.1.1 nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4

🛠️验证命令

cat /etc/resolv.conf     # 查看当前配置
dig example.com          # 测试解析是否成功
nslookup google.com      # 交互式查询工具

通过NetworkManager图形化工具(适合桌面用户)

🖥️两种入口方式

  1. 命令行模式 nmcli

    sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"
    sudo nmcli connection up "Wired connection 1"

    ▶️替换"Wired connection 1"为实际连接名称(可通过nmcli connection show查看)。

  2. 文本界面 nmtui
    执行nmtui后按以下路径操作:
    ➜ Edit a connection → 选择网卡 → IPv4 CONFIGURATION → 手动输入DNS IP → Save & Quit。


配置systemdresolved服务(现代化管理方案)

⚙️优势:支持多进程共享缓存、自动刷新特性。
🔧设置步骤

  1. 编辑专用配置文件:
    sudo vi /etc/systemd/resolved.conf
  2. 添加目标DNS条目:
    [Resolve]
    DNS=8.8.8.8 8.8.4.4
    # FallbackMode=yes      # 可选:启用失败回退机制
  3. 重载服务使变更生效:
    sudo systemctl restart systemdresolved.service
  4. 查看状态确认运行正常:
    systemctl status systemdresolved.service

DHCP动态获取方案(适用于局域网环境)

📡核心原理:由路由器自动分配DNS参数。
重置网络租约流程

sudo dhclient r             # 释放现有IP地址
sudo dhclient               # 重新请求完整网络配置(含DNS)

📌典型应用场景:企业内网统一管理终端设备的DNS设置。


搭建权威DNS服务器(以BIND为例)

🏗️完整部署流程

  1. 安装软件包
    Debian/Ubuntu系:
    sudo apt update && sudo apt install bind9 y

    RHEL/CentOS系:

    sudo yum install bind y || sudo dnf install bind y
  2. 主配置文件调优/etc/bind/named.conf):
    关键参数示例:
    options {
        listenon port 53 { any; };    # 监听所有接口
        allowquery { any; };         # 允许全网络查询
        recursion yes;                # 开启递归解析
        forwarders { 8.8.8.8; };      # 上游转发器设置
    }
  3. 创建区域文件(如为域名xybdns.com提供服务):
    • 声明区域定义:在/etc/named.rfc1912.zones中添加:
      zone "xybdns.com" IN {
          type master;
          file "/etc/bind/db.xybdns.com";
          allowupdate { none; };
      }
    • 编写数据记录:新建/etc/bind/db.xybdns.com并填入:
      $TTL 604800
      @   IN SOA     ns1.xybdns.com. admin.xybdns.com. (
                   3         ; Serial
                   604800    ; Refresh (1周)
                   86400     ; Retry (1天)
                   2419200   ; Expire (4周)
                   604800 )  ; Negative Cache TTL
      @   IN NS      ns1.xybdns.com.
      A   IN A       YOUR_SERVER_IP
      www IN A       192.168.1.100
  4. 启动服务并设为开机自启
    sudo systemctl start bind9          # Systemd系统启动
    sudo systemctl enable bind9         # 加入启动项
  5. 安全加固建议
    • 防火墙放行UDP/TCP 53端口:
      sudo firewallcmd addport=53/udp permanent
      sudo firewallcmd addport=53/tcp permanent
      sudo firewallcmd reload
    • 限制递归范围防止滥用(生产环境务必配置ACL)。

常见问题与解答

Q1: 修改/etc/resolv.conf后未生效怎么办?

解决方案:检查是否存在网络管理器覆盖机制(如NetworkManager),此时应优先使用nmcli或图形工具进行配置,若仍无效,可尝试重启对应网络接口:sudo ifdown enp0s3 && sudo ifup enp0s3(替换为实际网卡名)。

Q2: BIND服务启动失败提示日志错误?

🔍排查步骤:查看日志文件journalctl u bind9,常见错误包括语法错误(检查区域文件格式)、端口冲突(确保无其他进程占用53端口)、SELinux阻止(临时禁用测试:getenforce 0),推荐使用namedcheckconf

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.