在 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。firewalld
CentOS 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 系统中的特定端口。