返回

绝招!教你分分钟禁止 CentOS 外网访问,只留局域网畅通无阻

后端

轻松掌握 CentOS 临时禁止外网访问的妙招

在 CentOS 系统中,临时禁止外网访问并非易事,但别担心!本文将为你揭秘一项妙招,让你轻松搞定这一难题。

检查网络配置

首先,我们需要检查你的网络接口和默认网关。使用 ifconfig 命令查看可用网络接口,然后用 route -n | grep 'UG' 命令找出默认网关的 IP 地址。

设置 iptables 规则

iptables 是一款强大的防火墙工具,它可以帮助我们实现临时禁止外网访问的目的。以下是具体的步骤:

  1. 使用 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 将所有传入和传出的流量重定向到默认网关。
  2. 使用 sudo iptables -A FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 允许与局域网其他设备相关的流量。
  3. 使用 sudo iptables -A FORWARD -i eth0 -o eth0 -j REJECT 拒绝所有其他传入和传出的流量。

保存并重启网络服务

sudo iptables-save 保存 iptables 规则,然后用 sudo service network restart 重启网络服务,使规则生效。

验证规则

使用 sudo iptables -L 命令验证 iptables 规则是否有效。

移除规则

当你想恢复对互联网的访问时,可以使用以下命令移除 iptables 规则:

  1. 使用 sudo iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE 删除 NAT 规则。
  2. 使用 sudo iptables -D FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 删除允许局域网通信的规则。
  3. 使用 sudo iptables -D FORWARD -i eth0 -o eth0 -j REJECT 删除拒绝所有其他流量的规则。

保存并重启网络服务

sudo iptables-save 保存 iptables 规则,然后用 sudo service network restart 重启网络服务,使规则失效。

常见问题解答

1. 我的 iptables 规则不起作用,该怎么办?

检查你的网络配置,确保网络接口和默认网关正确。如果仍然无效,请尝试在每条规则后添加 -v 参数以查看详细信息。

2. 如何只禁止对特定网站的访问?

你可以使用 iptables 的 -d 参数创建特定于域的规则。例如,要禁止访问 www.example.com,可以使用以下命令:sudo iptables -A FORWARD -d www.example.com -j REJECT

3. 如何仅允许来自特定 IP 地址的连接?

可以使用 iptables 的 -s 参数创建特定于 IP 的规则。例如,要仅允许来自 192.168.1.10 的连接,可以使用以下命令:sudo iptables -A FORWARD -s 192.168.1.10 -j ACCEPT

4. 我无法 ping 通我的默认网关,该怎么办?

检查你的网络电缆是否连接良好。你还可以尝试使用 traceroute 命令来追踪到默认网关的路由。

5. iptables 规则永久生效了吗?

不,iptables 规则是临时的,在系统重启后将丢失。要使规则永久生效,可以创建 iptables 脚本并将其添加到系统启动脚本中。