我正在尝试在 Debian 10 计算机上添加静态持久路由,而无需重新启动它。我的/etc/network/interfaces
看起来像这样:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens192
iface ens192 inet static
address xxx.xxx.xxx.xxx/xx
gateway xxx.xxx.xxx.xxx
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
dns-search domain.com
up /bin/ip route add yyy.yyy.yyy.yyy/yy via yyy.yyy.yyy.yyy
发出问题后/etc/init.d/networking restart
我失去了网络连接。对任何 IP 地址执行 ping 操作都会抛出该消息connect: Network is unreachable
。
如果我重新启动机器,一切(包括新的静态路由)都可以正常工作。
谁能给我提示如何添加静态持久路由而不需要重新启动机器?
答案1
正如@stoney 评论的那样,完全在线的方式是将命令添加到文件中interfaces
,然后手动执行它。手动执行的替代方案是:
ifdown ens192 && ifup ens192
或者/etc/init.d/networking restart
allow-hotplug
替换后auto
(当然,除非您实际上依赖于热插拔功能)。
这两种方法都会造成短暂的网络中断,但可以让您测试interfaces
文件的实际内容(仅指定的节或全部)。
答案2
你有一个失踪的汽车 ens192在你的配置中声明!
这适用于 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
最后一步是重新启动网络:
~] /etc/init.d/networking restart
# or
~] systemctl restart networking