Debian Linux 无需重启网络即可重新加载接口文件更改

Debian Linux 无需重启网络即可重新加载接口文件更改

我是 Linux 服务器管理新手,正在尝试一些网络命令。我希望通过修改 /etc/network/interfaces 文件来更改网络设置,并希望更改尽快生效。但我不想重新启动网络服务,因为这会导致灾难。我们还想尽可能避免重新启动系统。怎么做?我使用过 ip 命令和 ifup/ifdown 命令,但出于某种奇怪的原因,它们有时会失败。哪里有文档或书籍可以学习这个?抱歉,我是英语水平。

答案1

问题ifup/ifdown是它读取当前配置来打开和关闭接口。因此,如果您有,例如:

iface eno1 inet static
    address 1.1.1.1
    netmask 24

而你ifup eno1,真正发生的是执行了一些ip addrip route命令。其中你将有ip addr add 1.1.1.1/24 dev eno1。如果你现在修改文件:

iface eno1 inet static
    address 2.2.2.2
    netmask 24

并且您ifdown eno1,它将不会执行ip addr del 1.1.1.1/24 dev eno1,但是ip addr del 2.2.2.2/24 dev eno1,因此当您在接口启动时修改配置时会出现错误。

为了解决此问题,请在修改旧配置文件之前备份它:

cp /etc/network/interfaces /etc/network/interfaces.bak

修改配置后,使用以下命令进行备份ifdown

ifdown -i /etc/network/interfaces.bak <your_interface>; ifup <your_interface>

如果您正在远程连接到机器,一个好的想法是在超时后撤销操作:

(sleep 180; ifdown <your_interface>; ifup -i /etc/network/interfaces.bak <your_interface>)&

如果失去连接,则应在 180 秒后恢复,否则您可以终止该作业。

相关内容