我有一个带有 2 个接口的 Debian Jessie 盒子。我希望 eth1 将公共流量路由到公共静态 IP 1.2.3.4,eth0 将管理流量路由到 192.168.0.55,因此我将 /etc/network/interfaces 编辑为如下所示:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth1
iface eth1 inet static
address 1.2.3.4
netmask 255.255.255.0
gateway 1.2.3.1
dns-nameservers 8.8.8.8
post-up route del default gw 192.168.0.1 eth0
post-up route add default gw 1.2.3.1 eth1
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.55
netmask 255.255.255.0
gateway 192.168.0.1
但当我重新启动时,我必须手动删除 192.168.0.1 eth0 网关并添加 1.2.3.1 eth1 网关。为什么这个在重新启动后没有保留?是否在其他地方设置了默认路由/网关?
答案1
您为两个接口配置了两个不同的网关,这绝对不会按您想要的方式工作。如果您只需要一个默认网关,那么也配置一个。您不需要 LAN (192.168.0.0/24) 的网关来进行内部通信。如果您启用了 ip_forward,那么 LAN 计算机无论如何都可以访问互联网。
尝试这个:
/etc/网络/接口
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.55
netmask 255.255.255.0
# The secondary network interface
allow-hotplug eth1
iface eth1 inet static
address 1.2.3.4
netmask 255.255.255.0
gateway 1.2.3.1
dns-nameservers 8.8.8.8
答案2
我认为,eth1 在 eth0 之前出现,并且脚本试图删除不存在的路由。
尝试这个:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 1.2.3.4
netmask 255.255.255.0
gateway 1.2.3.1
dns-nameservers 8.8.8.8
post-up ifup eth0
post-up route del default gw 192.168.0.1 eth0
post-up route add default gw 1.2.3.1 eth1
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.55
netmask 255.255.255.0
gateway 192.168.0.1