根据你的操作系统,执行相应的安装命令:
-
Debian/Ubuntu
sudo apt-get install dnsmasq sudo apt-get install dnsmasq-base
-
Fedora
sudo dnf install dnsmasq
-
Arch Linux
sudo pacman -S dnsmasq
-
macOS
brew install dnsmasq
配置dnsmasq(命令行)
进入dnsmasq的交互式配置界面:
sudo dnsmasq -C
在提示符下执行命令,按下Ctrl+D退出。
-
设置DNS
--domain=example.com # 设置域名 --domain-servers=8.8.8.8 # 指定DNS服务器(如Google的8.8.8.8) --host=server.example.com # 指定主机名 --address=/24 # 设置子网掩码(如/24) --interface=eth # 指定网络接口 --dhcp-range=192.168.1.2,192.168.1.20,24h
-
设置DHCP
--dhcp-hosts=192.168.1.2/24 # 指定可分配的IP范围 --dhcp-lease-time=24h # 租期 --no-broadcast-dhcp # 禁用广播 --enable-tftp # 启用TFTP服务
保存并退出后,启动服务:
sudo systemctl start dnsmasq
配置dnsmasq(使用文件)
编辑配置文件/etc/dnsmasq.conf:
sudo nano /etc/dnsmasq.conf
interface=eth domain=example.com server=8.8.8.8 host=server.example.com address=/24 dhcp-range=192.168.1.2,192.168.1.20,24h dhcp-lease-time=24h no-broadcast-dhcp enable-tftp
保存后启动:
sudo systemctl restart dnsmasq
测试配置
检查DNS配置:
nslookup server.example.com dig server.example.com
检查DHCP分配:
ip addr show eth dhclient -v
高级配置(可选)
-
设置TLD(Top-Level Domain)
add_domain=example.
-
启用DNSSEC
--dnssec
-
配置静态IP
--static /etc/hosts
-
使用ACL
--acl "new:1234 allow all"
-
集成DNS-over-TLS
--dns-over-tls
故障排除
-
端口占用
sudo systemctl stop dnsmasq sudo fuser -k 53
-
权限问题
sudo chown -R dnsmasq:dnsmasq /etc/dnsmasq.conf
-
日志分析
sudo journalctl -u dnsmasq
-
重新启动服务
sudo systemctl restart dnsmasq
通过以上步骤,你可以成功配置并使用dnsmasq作为内部网络的DNS和DHCP服务器,根据实际需求,进一步调整配置以满足特定需求。




