我想编写一个 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