更改networking设置的根服务器 – 如何避免被拒绝?

我只是在办公室里的一个本地Linux服务器上工作,通过SSH连接到它。 我改变了一些networking设置。 具体来说,我添加了一个简单的网桥,取代了以前的以太网连接(eth0)。 在这两种情况下,networking地址都是静态的IPv4地址。

在我做了这些更改并使用systemctl restart systemd-networkdnetworking守护进程后,我被locking,无法重新login到计算机。

幸运的是,我有权访问物理控制台。 虽然重新启动networking确实为我提供了正确地址的新网桥,但它并没有从eth0中删除地址 – 即使所有的configuration设置都是正确的。 所以,我不得不手动ip a flush eth0 ,并且我正在备份和运行。

我猜如果这是远程位置的根服务器,而不是本地机器,我现在看起来很老了。

我应该做些什么不同的事情呢?

更新:从目前为止提供的两个答案,我看到我应该更清楚。 我完全知道所有硬件选项如何保留访问我的站。 因为我拥有并使用它们,所以我可以很好地调用某些更改,以免发生不好的事情。 这是一个麻烦,但我可以通过串行控制台login,一切都很好。 但是我想知道,如果我没有他们,那么你们怎么去改变networking设置,这在理论上可以和你断绝呢?

坦率地说,我也只是想知道为什么我的eth0接口保持旧的IP地址,即使我用新的设置重新启动networking服务? 对我来说,这看起来并不像我想要的那样。

至less有两种方法可以做到这一点:

  1. 远程控制台(HP ILO,DELL DRAC,…)允许您通过自己的NIC和自己的IP进行访问,这与主OS设置无关。 如果你犯错了,你可以“远程控制台”并修理。
  2. 在定时器上重新启动到安全工作状态。 进行更改,然后杀死安全计时器。

例如

 sleep 15*60 && shutdown -r +NOW "I messed up. Rebooting" (On a new shell) ifconfig / ip whatever 

然后在工作改变状态取消重启。

PS1:使用睡眠和关机以免垃圾邮件用户。 (虽然你刚刚关机-t15m,然后取消关机。

PS2:注意睡眠&&关机,不睡觉; 关掉。

处理这种问题的干扰最小的方法是那些不需要重新启动的方法。

串行控制台是获取访问权限的一种方式。 其他更专门的硬件也存在访问没有functionnetworking的主机。

如果您没有任何这种带外访问,则值得尝试通过networking与主机进行通信的其他方式。 第一种替代方法是利用双堆栈给你一点冗余。 如果你搞砸了你的IPv4configuration,你仍然可以通过IPv6到达主机,反之亦然。

如果你搞砸了IPv4和IPv6,你仍然可以通过IPv6链路本地通信到达主机。 IPv6链路本地通信的工作方式使得它对于错误configuration的networking更加强大,所以它很有可能会起作用。 只有当您有权访问与您的目标相同的网段上的至less一个其他function主机时,此方法才有效。

处理这个问题的方法更多的是重新启动。 即使您没有完全远程访问的硬件,您仍可能有硬件来远程触发重新启动。 这可以通过可以触发主板上的复位线的硬件或通过对主机重新通电的硬件来实现。

如果主机上不存在用于带外pipe理的硬件,则可能需要现场工作人员提供帮助。 在这种情况下,要求他们重新启动机器要比debuggingnetworking连接要容易得多。

一旦机器重新启动,您需要以某种方式确保它实际上恢复在线。 如果坏的改变只是在内存中,重启将会恢复到已知的良好configuration,不需要特别小心。 在更多的问题情况下,将主机configuration为尝试PXE引导并且只有在networking上不存在PXE服务器的情况下才从本地磁盘引导可能是有用的。 但是,如果你知道你可以信任networking,这种方法是明智的。

最具侵扰性的是应用你所有的程序来处理主机完全丢失的情况。 这些程序通常用于硬件故障,甚至更糟的是build筑物已经烧毁了。 但是他们可能会被应用于一个错误configurationnetworking的微不足道的东西。 (由于这种方法是侵入性的,所以它几乎不是首选的解决scheme。)