在 Debian 9 之前,我曾经这样添加静态路由:
up route add -net 1.2.3.4.5/23 gw 2.3.4.5.6
up route add -host 2.3.4.5 gw 3.4.5.6
debian10 发生了什么变化以及文件中静态路由的新语法是什么/etc/network/interfaces
?
答案1
这些up ...
线不是独立的,而是iface ...
它们之前的线的延伸。在 Debian 9 之前,实际的网络接口几乎总是在 中的最后一个条目/etc/network/interfaces
,因此只需up route add ...
在末尾添加几行实际上可能经常有效。
如果您选择安装桌面环境,安装时可能会包含 NetworkManager,在这种情况下,您的网络接口可能根本没有iface
线路,而是由 NetworkManager 控制接口。在这种情况下,您可以使用一次性nmcli
命令来持久添加新路由:
nmcli c modify eno1 +ipv4.routes "1.2.3.4/23 2.3.4.5" # network route
nmcli c modify eno1 +ipv4.routes "2.3.4.5 3.4.5.6" # host route
如果您不使用 NetworkManager...net-tools
包含旧命令的软件包ifconfig
自route
Debian 9 起已被弃用,并且默认情况下不再安装。因此,除非您明确选择安装net-tools
,否则您应该使用较新的ip route
命令:
iface eno1 ...
up /bin/ip route add 1.2.3.4/23 via 2.3.4.5 # network route
up /bin/ip route add 2.3.4.5/32 via 3.4.5.6 # single host route
答案2
这适用于 debian 9 (debian Stretch)、debian 10 (debian buster) 和 debian 11 (debian bullseye):
编辑/etc/network/interfaces
文件并添加您的永久路线。
例子:
auto ens192
allow-hotplug ens192
iface ens192 inet static
address 192.168.221.54/24
gateway 192.168.221.1
dns-nameservers 82.99.137.41 212.158.133.41
dns-search secar.cz
up ip route del 192.168.0.0/24 via 192.168.221.1 dev ens192
up ip route add 192.168.0.0/24 via 192.168.221.1 dev ens192
up ip route del 192.168.1.0/24 via 192.168.221.1 dev ens192
up ip route add 192.168.1.0/24 via 192.168.221.1 dev ens192
答案3
我解决了这个问题/etc/systemd/network/
,这里我把所有的网络配置都放上了!
替换或注释(如果存在):dhcp.network
static.network 文件
[Match]
Name=e*
[Network]
Address=aaa.aaa.aaa.aaa/aa (MY IP)
Gateway=ccc.ccc.ccc.ccc (Default Gateway)
DNS= 8.8.8.8
DNS= 8.8.4.4
[Route]
Destination=yyy.yyy.yyy.yyy/yy
GatewayOnlink=true
Gateway=zzz.zzz.zzz.zzz
Metric=1
[Route]
Destination=xxx.xxx.xxx.xxx/xx
GatewayOnlink=true
Gateway=xxx.xxx.xxx.xxx
Metric=1