Linux 内网 DNS 服务器配置

1次阅读

Linux 内网 DNS 服务器配置

在内网环境中搭建 dns 服务器,核心目标是让局域网内的设备能通过域名(如 server1.local)访问内部服务,无需依赖外部 DNS,同时提升解析效率与可控性。推荐使用轻量、稳定、配置清晰的 dnsmasq,它集 DHCP + DNS 于一体,特别适合中小内网场景。

一、安装并启用 dnsmasq

ubuntu/debian 为例:

  • 执行 sudo apt update && sudo apt install dnsmasq 安装
  • 安装后默认已禁用,先停用 systemd-resolved 冲突服务:
    sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved
  • 备份原始配置:sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
  • 清空配置文件,从头写入关键项(避免注释干扰)

二、基础 DNS 配置(/etc/dnsmasq.conf)

编辑 /etc/dnsmasq.conf,至少包含以下内容:

  • Interface=eth0 —— 指定监听网卡(替换为你的内网接口名,如 enp0s3)
  • bind-interfaces —— 仅绑定到指定接口,不监听公网
  • domain=local —— 设置默认域名(可选,用于短域名补全)
  • address=/server1.local/192.168.1.10 —— 静态解析:访问 server1.local → 解析为 192.168.1.10
  • address=/git.local/192.168.1.11 —— 可添加多条 address 行
  • server=114.114.114.114 —— 上游 DNS(用于解析非内网域名)
  • cache-size=1000 —— 启用本地缓存,提升重复查询速度

三、让客户端生效(两种常用方式)

客户端需将 DNS 服务器地址设为 dnsmasq 所在主机的内网 IP(如 192.168.1.1):

  • 手动设置:在客户端网络配置中,DNS 服务器填 192.168.1.1(即 dnsmasq 主机 IP)
  • 配合 DHCP 自动分发:在 dnsmasq 中启用 DHCP(加几行):
    dhcp-range=192.168.1.100,192.168.1.200,12h
    dhcp-option=option:dns-server,192.168.1.1
    这样客户端通过 DHCP 获取 IP 时,会自动获得该 DNS 地址

四、验证与排错

配置完成后重启服务:sudo systemctl restart dnsmasq

  • 在服务器本机测试:dig server1.local @127.0.0.1nslookup git.local 127.0.0.1
  • 从客户端 ping 或 curl 测试:ping server1.local(应返回 192.168.1.10)
  • 检查日志:sudo journalctl -u dnsmasq -f,看是否有拒绝或配置错误提示
  • 常见问题:防火墙拦截 53 端口 → 开放:sudo ufw allow 53
text=ZqhQzanResources