dnsmasq怎样搭建本地DNS服务器

联启 网络工具 13

本文目录导读:

dnsmasq怎样搭建本地DNS服务器-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 安装dnsmasq
  2. 基本配置
  3. 高级配置
  4. 启动和管理服务
  5. 客户端配置
  6. 测试DNS解析
  7. 常见问题解决
  8. 安全注意事项
  9. 监控和优化

我来详细介绍如何使用dnsmasq搭建本地DNS服务器。

安装dnsmasq

Ubuntu/Debian

sudo apt update
sudo apt install dnsmasq

CentOS/RHEL

sudo yum install dnsmasq

macOS

brew install dnsmasq

基本配置

备份原配置文件

sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.backup

编辑配置文件

sudo vim /etc/dnsmasq.conf

核心配置示例

# 监听地址(监听本机所有网卡)
interface=eth0
# 或指定监听地址
listen-address=0.0.0.0
# 绑定到指定接口
bind-interfaces
# 设置域名服务器上游
server=8.8.8.8
server=114.114.114.114
# 设置域名解析缓存大小(单位:个)
cache-size=1000
# 设置本地域名
local=/local/
# 本地域名解析
address=/mylocal.com/192.168.1.100
address=/dev.local/192.168.1.50
# DNS劫持(将所有.example.com指向本地)
address=/example.com/127.0.0.1
# 设置路由模式(仅响应本地网络的查询)
local-ttl=3600
# 日志记录
log-queries
log-facility=/var/log/dnsmasq.log

高级配置

配置DHCP服务器(可选)

# 启用DHCP
dhcp-range=192.168.1.100,192.168.1.200,12h
dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
# 分配固定IP
dhcp-host=00:11:22:33:44:55,192.168.1.99
dhcp-host=aa:bb:cc:dd:ee:ff,server1,192.168.1.88
# 设置网关和DNS
dhcp-option=option:router,192.168.1.1
dhcp-option=option:dns-server,192.168.1.1

配置本地域名解析文件

创建自定义域名文件:

sudo vim /etc/dnsmasq.d/localdomain.conf
# 公司内部域名
address=/company.com/192.168.1.10
address=/dev.company.com/192.168.1.20
address=/test.company.com/192.168.1.30
# 开发环境
address=/mylocal.site/127.0.0.1

启动和管理服务

启动服务

# 启动dnsmasq
sudo systemctl start dnsmasq
# 设置开机自启
sudo systemctl enable dnsmasq

检查状态

# 查看服务状态
sudo systemctl status dnsmasq
# 检查端口监听
sudo netstat -tulpn | grep 53
# 查看日志
sudo tail -f /var/log/dnsmasq.log

客户端配置

Linux客户端

修改 /etc/resolv.conf

nameserver 192.168.1.x  # 替换为dnsmasq服务器IP

或修改 /etc/systemd/resolved.conf

[Resolve]
DNS=192.168.1.x
Domains=~.

Windows客户端

  1. 打开网络和共享中心
  2. 修改IPv4属性
  3. 设置首选DNS服务器为dnsmasq服务器IP

测试DNS解析

# 测试DNS解析
nslookup mylocal.com 192.168.1.x
dig @192.168.1.x localhost
host mylocal.com 192.168.1.x
# 查看缓存统计
sudo killall -USR1 dnsmasq

常见问题解决

端口冲突

# 检查端口占用
sudo lsof -i :53
# 停止systemd-resolved
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

配置错误

# 检查配置语法
dnsmasq --test
# 调试模式
sudo dnsmasq -d

防火墙配置

# 允许DNS端口
sudo ufw allow 53/tcp
sudo ufw allow 53/udp

重启服务

# 修改配置后重启
sudo systemctl restart dnsmasq

安全注意事项

  1. 限制访问:使用local-service选项限制本地查询
  2. 防止DNS劫持:配置正确的上游DNS服务器
  3. 日志管理:定期清理和轮转日志文件
  4. 访问控制:使用bogus-privstop-dns-rebind防止DNS重绑定攻击

监控和优化

性能监控

# 查看缓存命中率
sudo dnsmasq --statistics
# 实时监控查询
sudo tcpdump -i any port 53

优化建议

  1. 调整缓存大小根据实际需求
  2. 配置合理的TTL值
  3. 使用多个上游DNS服务器
  4. 考虑使用DNS over HTTPS

这样就完成了dnsmasq本地DNS服务器的搭建和配置!

标签: 本地DNS

抱歉,评论功能暂时关闭!