绝招!教你分分钟禁止 CentOS 外网访问,只留局域网畅通无阻
2023-07-09 15:33:06
轻松掌握 CentOS 临时禁止外网访问的妙招
在 CentOS 系统中,临时禁止外网访问并非易事,但别担心!本文将为你揭秘一项妙招,让你轻松搞定这一难题。
检查网络配置
首先,我们需要检查你的网络接口和默认网关。使用 ifconfig
命令查看可用网络接口,然后用 route -n | grep 'UG'
命令找出默认网关的 IP 地址。
设置 iptables 规则
iptables 是一款强大的防火墙工具,它可以帮助我们实现临时禁止外网访问的目的。以下是具体的步骤:
- 使用
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
将所有传入和传出的流量重定向到默认网关。 - 使用
sudo iptables -A FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
允许与局域网其他设备相关的流量。 - 使用
sudo iptables -A FORWARD -i eth0 -o eth0 -j REJECT
拒绝所有其他传入和传出的流量。
保存并重启网络服务
用 sudo iptables-save
保存 iptables 规则,然后用 sudo service network restart
重启网络服务,使规则生效。
验证规则
使用 sudo iptables -L
命令验证 iptables 规则是否有效。
移除规则
当你想恢复对互联网的访问时,可以使用以下命令移除 iptables 规则:
- 使用
sudo iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
删除 NAT 规则。 - 使用
sudo iptables -D FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
删除允许局域网通信的规则。 - 使用
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 脚本并将其添加到系统启动脚本中。