![使用 dnsmasq 配置 DHCP 服务器](https://linux22.com/image/976876/%E4%BD%BF%E7%94%A8%20dnsmasq%20%E9%85%8D%E7%BD%AE%20DHCP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20.png)
尽管互联网上有很多教程,但我似乎无法使我的 DHCP 服务器 (dnsmasq) 工作。不知何故,我的设置有些地方不起作用。
我有:一台电脑、一台笔记本电脑、一台路由器。我想要以下内容:电脑 <-- eth0 --> 笔记本电脑=DHCP 服务器 <-- wifi --> 路由器。
为什么?如果可行,我可以将另一台设备(而不是计算机)连接到笔记本电脑的 eth0 并分析其网络流量。但我可以先轻松使用计算机检查这是否可行。
到目前为止我做了什么:基本上我能找到的一切 :D 笔记本电脑运行的是 Linux Mint 17,它使用 NetworkManager,它会自动启动某种 dnsmasq。我通过编辑 /etc/NetworkManager/NetworkManager.conf 将其禁用,如下所示:
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
no-auto-default=54:42:49:70:E5:8E,
[ifupdown]
managed=false
使用sudo apt-get install dnsmasq
我安装的 dnsmasq 并将其编辑/etc/dnsmasq.conf
成如下所示:
interface=eth0
dhcp-range=192.168.2.210,192.168.2.230,255.255.255.0,12h
dhcp-option=3,192.168.2.1
log-dhcp
我的想法是:路由器的 IP 是 192.168.2.1,它提供的 IP 范围是 192.168.2.100 到 192.168.2.199。因此,笔记本电脑可以提供 IP 范围是 192.168.2.210 到 192.168.2.230。
当将计算机连接到笔记本电脑的 eth0 时,计算机尝试连接,但失败。
因此我检查了笔记本电脑的 tcpdump 并看到了如下行:
22:29:21.141599 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 6c:f0:49:0a:25:61 (oui Unknown), length 300
这表明计算机正在发送广播 DHCP 请求,对吗?但我没有看到对该请求的任何答复。Wireshark 中也是如此:DHCP 从计算机发出请求/发现,但没有答复。
在此期间,我还尝试在 iptables 和 IP 转发中进行一些 NAT 伪装。如有必要,我可以再次将其删除。
当为计算机上的 eth0 分配静态 IP 时,它可以连接,但无法连接到任何网站(我在 NetworkManager 中使用 IP 192.168.2.75、255.255.255.0、网关:192.168.2.1 甚至 DNS 服务器:8.8.8.8)设置了此连接。
任何帮助都非常感谢!谢谢
答案1
最后的解决方案是使用 NetworkManager GUI 将 eth0 接口共享给其他计算机。
编辑:我按照最初的帖子中所述做了所有事情,然后解决方案是启动网络管理器并将以太网连接更改为“共享给其他计算机”。您可以通过双击以太网连接,选择“IPv4 设置”选项卡,然后更改方法来完成此操作。保存。如果您的 NetworkManager 没有显示任何以太网连接,只需单击“添加”并添加一个。