首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从dhcp服务器禁用自动默认路由

从dhcp服务器禁用自动默认路由
EN

Unix & Linux用户
提问于 2020-01-03 23:24:45
回答 1查看 5.7K关注 0票数 4

嗨,我正在尝试配置我的Raspberry PI作为dhcp服务器。想法是,通过eth0接口,我将连接交换机,我可以连接其他设备。但我仍然希望通过wlan0保持ssh和internet的访问。

为了实现这个目的,我已经安装了isc-dhcp-服务器,然后通过将静态ip地址的配置添加到/etc/etc/interfaces.d/eth0来配置它。

代码语言:javascript
复制
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中:

代码语言:javascript
复制
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 )。

最大的问题是,我无法从那个树莓派访问互联网。当我打字的时候

代码语言:javascript
复制
ping 10.0.0.3

很管用,但是

代码语言:javascript
复制
ping 8.8.8.8

失败了。调试该问题后,我设法发现了命令ip route的问题:

代码语言:javascript
复制
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将显示:

代码语言:javascript
复制
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

提前感谢

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 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以添加从eth0wlan0和back的可移植规则。增加以下内容:

代码语言:javascript
复制
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 ACCEPT

3)重新启动以使更改生效

您的其他设备现在应该按照您的dhcp服务器分配的wifi访问和IP来工作。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/560240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档