在 CentOS 系统中,使用 iptables 命令可以管理防火墙规则,包括关闭特定端口。以下是一些常用的命令示例,帮助你关闭特定端口:
假设你想关闭 TCP 端口 8080,可以使用以下命令:
sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
这条命令的意思是:
-A INPUT:将规则添加到 INPUT 链。-p tcp:指定协议为 TCP。--dport 8080:指定目标端口为 8080。-j DROP:丢弃匹配的数据包。在 CentOS 7 及更高版本中,iptables 规则在重启后不会自动保存。你可以使用 firewall-cmd 命令来保存规则:
sudo firewall-cmd --runtime-to-permanent
如果你想关闭所有端口以进行测试,可以使用以下命令:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
这条命令的意思是:
-P INPUT DROP:将 INPUT 链的默认策略设置为 DROP。-P FORWARD DROP:将 FORWARD 链的默认策略设置为 DROP。-P OUTPUT ACCEPT:将 OUTPUT 链的默认策略设置为 ACCEPT。如果你想恢复默认规则,可以使用以下命令:
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
这条命令的意思是:
-F:清空所有链中的规则。-X:删除用户自定义的链。-t nat -F 和 -t nat -X:清空和删除 NAT 表中的规则。-t mangle -F 和 -t mangle -X:清空和删除 MANGLE 表中的规则。-P INPUT ACCEPT 等:将所有链的默认策略恢复为 ACCEPT。firewalldCentOS 7 及更高版本推荐使用 firewalld 来管理防火墙规则。你可以使用以下命令来关闭特定端口:
sudo firewall-cmd --permanent --zone=public --remove-port=8080/tcp
sudo firewall-cmd --reload
这条命令的意思是:
--permanent:使规则永久生效。--zone=public:指定区域为 public。--remove-port=8080/tcp:移除 TCP 端口 8080。--reload:重新加载防火墙配置。希望这些命令能帮助你成功关闭 CentOS 系统中的特定端口。