嗨,我正在尝试配置我的Raspberry PI作为dhcp服务器。想法是,通过eth0接口,我将连接交换机,我可以连接其他设备。但我仍然希望通过wlan0保持ssh和internet的访问。
为了实现这个目的,我已经安装了isc-dhcp-服务器,然后通过将静态ip地址的配置添加到/etc/etc/interfaces.d/eth0来配置它。
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.1接下来,我将dhcp服务器的配置添加到文件/etc/dhcp/dhcpd.conf中:
authorative
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.1 10.0.0.10;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
option routers 10.0.0.1;
option domain-name "local-network";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}在此之后,我重新启动了Raspberry,一切似乎都很好,我可以通过WiFi从我的机器连接到它,而连接到交换机的其他机器将从10.0.0.2到10.0.10获得IP地址(并且我能够通过配置的Raspberry向它们提供ssh )。
最大的问题是,我无法从那个树莓派访问互联网。当我打字的时候
ping 10.0.0.3很管用,但是
ping 8.8.8.8失败了。调试该问题后,我设法发现了命令ip route的问题:
default via 10.0.0.1 dev eth0 proto dhcp src 10.0.0.2 metric 202
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.46 metric 303
10.0.0.0/24 dev eth0 proto dhcp scope link src 10.0.0.2 metric 202
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.46 metric 303我尝试通过10.0.0.1删除默认路由,这有助于临时的,但经过一些进程(我怀疑dhcp服务器)恢复了它。当然,我可以编写一个守护进程来随时删除它,但是我正在寻找更好的解决方案。
Update #1
如果没有dhcp服务器,ip route将显示:
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.46 metric 303
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1
169.254.0.0/16 dev eth0 scope link src 169.254.44.117 metric 202
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.46 metric 303提前感谢
发布于 2020-01-04 04:29:06
问题确实在于路由表,但我已经成功地删除了路由记录而没有返回。
如前所述,“伸展”中的网络(我认为回杰西)发生了很大的变化。这个帖子引导我通过修改/etc/dhcpcd.conf而不是/etc/network/interfaces*来设置静态IP。但是,我发现在我的情况下最好注释掉eth0适配器静态ip的D4变量,因为我不希望它作为我的默认网关。然后,我简单地用ip route del default via dev eth0从表中删除了路由,并将其删除。
不过,如果要使internet访问在连接到dhcp服务器的其他设备上正常工作,则需要执行以下操作才能安装NAT:
1)编辑/etc/sysctl.conf以启用IP转发,并按以下切换net.ipv4.ip_forward=1 2)编辑/etc/rc.local以添加从eth0到wlan0和back的可移植规则。增加以下内容:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state \
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT3)重新启动以使更改生效
您的其他设备现在应该按照您的dhcp服务器分配的wifi访问和IP来工作。
https://unix.stackexchange.com/questions/560240
复制相似问题