/etc/network/interfaces
我在 Debian 机器上使用以下配置:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.0.0.5/24
gateway 10.0.0.1
auto eth1
iface eth1 inet static
address 192.168.1.5/24
gateway 192.168.1.16
的输出route
显示配置的最后一行被忽略:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 eth0
link-local 0.0.0.0 255.255.255.0 U 1000 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
一旦我运行route add -net 192.168.0.0/24 gw 192.168.1.16
,就会route
显示预期的网关:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 eth0
link-local 0.0.0.0 255.255.255.0 U 1000 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 192.168.1.16 255.255.255.0 UG 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
为什么gateway
声明不自动应用?我缺少什么?
答案1
根据我的理解,你只能有一个默认路由,debian 似乎会将第一个配置了网关的接口作为默认路由。在您的情况下,如果您尝试路由到本地网络中的不同子网,则为 eth0。您的系统位于 192.168.1.0/24 网络上,但您只需要静态路由来通过本地网络路由 192.168.0.0/24 流量,如果您将其设置为默认网关,这将通过此网关路由所有流量我认为没有其他通往互联网的途径。
要将静态路由添加到第二个网络,您可以使用以下命令在接口文件中添加新行
up route add -net 192.168.0.0/24 gw 192.168.1.16 dev eth1
这应该会创建一个在重新启动后仍会保留的静态路由。