如何从 bash “关闭” Linux 上的所有网络?

如何从 bash “关闭” Linux 上的所有网络?

我想编写一个 bash/shell 脚本来“关闭”机器通过其网卡进行通信的能力,从而有效地关闭所有网络。从命令行:

# To turn all networking off
sh networking.sh OFF

# Then to turn it back on
sh networking.sh ON

我能想到的唯一方法是通过端口级别IPTABLES,但我以前从未尝试过,我不确定我是否走在正确的道路上,或者我是否偏离了方向。提前致谢。

答案1

大多数 Linux 版本都附带了执行此操作的脚本。它们是启动/关闭过程的一部分。

在 Fedora/RHEL 版本中,脚本通常通过 访问/etc/init.d/。因此,您可以执行“ /etc/init.d/network stop”来停止网络。要启动,请将“start”替换为“stop”。

从命令行,这些风格的首选是使用命令service:“ service network stop”或“ service network start”。

这些命令仅限于 root 用户使用。我不建议让普通用户执行此类操作。

答案2

正如你提到的,你可以使用 iptables 来实现这一点

这些规则将丢弃所有传入和传出的数据包

iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

检查配置的规则

iptables -L

删除这些规则

iptables -D INPUT -j DROP
iptables -D OUTPUT -j DROP

相关内容