本文目录导读:

我来详细介绍如何使用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客户端
- 打开网络和共享中心
- 修改IPv4属性
- 设置首选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
安全注意事项
- 限制访问:使用
local-service选项限制本地查询 - 防止DNS劫持:配置正确的上游DNS服务器
- 日志管理:定期清理和轮转日志文件
- 访问控制:使用
bogus-priv和stop-dns-rebind防止DNS重绑定攻击
监控和优化
性能监控
# 查看缓存命中率 sudo dnsmasq --statistics # 实时监控查询 sudo tcpdump -i any port 53
优化建议
- 调整缓存大小根据实际需求
- 配置合理的TTL值
- 使用多个上游DNS服务器
- 考虑使用DNS over HTTPS
这样就完成了dnsmasq本地DNS服务器的搭建和配置!
标签: 本地DNS
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播