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