我将iptables
通过 SSH 更改配置、接口速度和双工设置。如果主机无法访问,有哪些可能性可以回滚更改?我想很简单:
ip addr add 10.10.10.1/24 dev eth0; ping -c1 8.8.8.8 || ip addr add 192.168.1.1/24 dev eth0
..有点风险,因为如果 SSH 连接在 IP 地址更改后立即断开,那么 shell 也应该被杀死并且ping -c1 8.8.8.8 || ip addr add 192.168.1.1/24 dev eth0
部分永远不会执行?crontab
如果远程主机上发生危险的更改,是否应该使用?还有什么巧妙的方法吗?
答案1
在screen
或tmux
会话中,设置一个 shell,该 shell 将在延迟后撤消您的更改。我对此一无所知iptables
,所以对此无能为力,但在改变 FreeBSD 上的实时防火墙配置时,类似这样的事情在很多场合都挽救了我的困境:
# In one `screen` or `tmux` window
% sleep 60 && <command to reverse changes>
在另一个窗口中,您现在可以进行更改,如果它们有效,您可以杀死sleep
.请注意,因为我们使用的是&&
,所以当您终止时,取消更改的命令将不会运行sleep
。
如果您的更改不起作用,请等待几秒钟,您的退出命令将运行。