如何模拟拔掉网线或关闭服务器?

Saf*_*feY 18 linux shutdown

我用netem模拟了网络延迟,这很棒。现在我想模拟未插入的网线或服务器出现故障时。我需要这个来简化我的应用程序的测试,但我在网上找不到任何对我有帮助的东西。我的服务器是虚拟 CentOS 实例,它们位于 Virtualbox 上。我想从一个 php 网页上做到这一点。

Chr*_*own 19

只需将界面关闭即可。例如,使用 eth0:

ip link set eth0 down
Run Code Online (Sandbox Code Playgroud)

要恢复界面:

ip link set eth0 up
Run Code Online (Sandbox Code Playgroud)

  • @NancySmith 创建另一个网络接口,该接口无法访问它所连接的任何内容(使用路由等)。使用该接口通过 SSH 连接到主机。关闭您*未*连接到 SSH 的接口。 (3认同)

Moc*_*ing 10

在通过 SSH 连接的机器上使用投票最高的答案时,您将关闭网络并且无法将其恢复。以下是一种在 SSH 连接时关闭和重新启动的方法。

使用接口示例ens32

如果你运行:

ip link set ens32 down
Run Code Online (Sandbox Code Playgroud)

并且您正在通过 SSH 连接,您将无法再次启动它,因为您已禁用网络,因此无法通过 SSH 连接到您的服务器。

我使用以下脚本来模拟 20 秒的停机时间:

#!/bin/sh
ip link set ens32 down
sleep 20
ip link set ens32 up
Run Code Online (Sandbox Code Playgroud)

保存为downtime.sh,确保文件有执行权限,然后运行:

sudo ./downtime.sh
Run Code Online (Sandbox Code Playgroud)

  • 呃...我是一个 linux 新手,但我认为这里可能有一些不好的建议:如果你不 nohup 这个脚本,会发生什么你执行它,你的会话终止(由于断开连接)并且脚本停止(并且永远不会恢复网络接口)。我认为一些关于 nohup 的阅读应该很有价值! (2认同)