安装 dnsmasq
确保你已经安装了 dnsmasq,在大多数 Linux 系统上,你可以通过包管理器安装它:
sudo apt update && sudo apt install dnsmasq
启动和启用服务
启动 dnsmasq 服务并启用它随系统启动:
sudo systemctl start dnsmasq sudo systemctl enable dnsmasq
配置 dnsmasq
默认情况下,dnsmasq 不会作为路由服务器,为了启用路由功能,你需要修改它的配置文件。
方法 1:手动配置
编辑 dnsmasq 的配置文件:
sudo nano /etc/dnsmasq.conf
在文件末尾添加以下内容:
interface=eth route=192.168.1./24,192.168.2./24
这里的 interface=eth 指定了接口 eth,route=192.168.1./24,192.168.2./24 指定了两个路由范围,168.1./24 和 168.2./24,这意味着 dnsmasq 将这些路由信息传播给客户机。
如果你需要更多路由范围,可以继续添加:
route=10.../8
保存并退出编辑器。
方法 2:使用命令行配置
你可以直接在 dnsmasq 启动时传递路由选项:
sudo dnsmasq --interface eth --route=192.168.1./24,192.168.2./24
或者,如果你需要更多路由范围:
sudo dnsmasq --interface eth --route=192.168.1./24,192.168.2./24,10.../8
重启 dnsmasq 服务
应用配置后,重启 dnsmasq 服务:
sudo systemctl restart dnsmasq
验证路由配置
你可以使用 ip 工具来验证路由是否已正确配置:
ip r
预期输出会显示新增的路由信息。
设置 DNS 和 路由服务器(可选)
如果你希望客户机自动检测路由服务器,可以在 /etc/resolv.conf 中添加以下内容:
nameservers 127...1
这会将 dnsmasq 作为 DNS 和 路由服务器。
测试 DNS 和 路由
使用 nslookup 或 dig 命令来测试 DNS 解析:
nslookup localhost
预期输出会显示 ..1 作为 DNS 服务器。
对于路由测试,可以使用 traceroute 或 mtr 工具:
traceroute 8.8.8.8
故障排除
- 防火墙设置:确保防火墙允许
dnsmasq运行,尤其是在iptables或iptables-nat中。 - 路由器列表:确保你在
dnsmasq配置中正确指定了所有需要路由的子网。 - 重启服务:如果路由信息没有生效,可能需要重启
dnsmasq服务。
提供额外帮助
如果你遇到了问题,可以参考 dnsmasq 的官方文档或社区资源:
通过这些步骤,你应该能够成功配置并启用 dnsmasq 的路由功能,确保网络中的 DNS 和 路由请求能够正确处理。









