我想从运行Raspbian的Raspberry Pi中删除默认路由。
这就是我从route -n得到的信息:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.178.1 0.0.0.0 UG 203 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 204 0 0 docker0
169.254.0.0 0.0.0.0 255.255.0.0 U 206 0 0 veth07ba603
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.178.0 0.0.0.0 255.255.255.0 U 203 0 0 eth1我尝试了以下命令来删除网关:
ip route del default via 192.168.178.1 dev eth1
route del default gw 192.168.178.1
route del default gw 192.168.178.1 dev eth1
route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth1
ip route del 0.0.0.0/0它们都不管用。
如果我再次运行route -n,路线仍然在那里,我仍然可以到达互联网。
Syslog看起来也不错:
Dec 3 02:42:21 pi dhcpcd[474]: eth1: deleted default route via 192.168.178.1我发现只有当我运行码头集装箱时才会出现这个问题,例如:
docker run --name 'foo' -itd alpine /bin/sh如果容器被关闭,我可以删除网关。但出于某种原因,如果我用docker start foo启动容器,那么docker将重新创建默认网关。如果容器正在运行,则根本无法删除网关(见上文)。
有人知道这里发生了什么吗?如何在没有默认网关的情况下运行容器?Pi不应该有互联网连接。
发布于 2017-12-03 18:16:51
解决方案是通过向/etc/dhcpcd.conf中添加以下行将静态ip分配给Pi:
interface eth1
static ip_address=192.168.178.10现在,我可以像预期的那样使用add和del作为默认网关,不管码头容器是否在运行。
https://unix.stackexchange.com/questions/408448
复制相似问题