sudo iptables -L # 或帶行號、詳細計數器 sudo iptables -L -n -v --line-numbers
輸出說明:
關鍵原則:規則按順序匹配,首個匹配生效。預設鏈結尾通常設 DROP,中間不應出現 DROP 導致後續 ACCEPT 失效。
# iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT # 或使用服務名稱 # iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
參數解析:
-A INPUT:追加到 INPUT 鏈-p tcp:TCP 協定-i eth0:進介面 eth0--dport 22:目標埠 22-j ACCEPT:動作接受iptables -A INPUT -p tcp --dport 9001 -j ACCEPT
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 3306 -j ACCEPT
# 先查看帶行號的規則 iptables -L -n --line-numbers # 刪除 INPUT 鏈第 3 條規則 iptables -D INPUT 3
iptables -D INPUT -p tcp --dport 9001 -j ACCEPT
iptables -P INPUT DROP
警告:執行前務必確保 SSH 規則已添加,否則會把自己鎖在外面!
# 儲存 service iptables save # 或 iptables-save > /etc/sysconfig/iptables # 恢復(重啟自動載入) service iptables restart
apt-get install iptables-persistent # 安裝過程會詢問是否儲存當前規則 # 手動儲存 iptables-save > /etc/iptables/rules.v4 ip6tables-save > /etc/iptables/rules.v6
# 1. 清空現有規則 iptables -F iptables -X # 2. 設定預設策略 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 3. 允許本地回環 iptables -A INPUT -i lo -j ACCEPT # 4. 允許已建立/相關連線 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 5. 允許 SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 6. 允許 HTTP/HTTPS iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 7. 允許 ICMP (ping) iptables -A INPUT -p icmp -j ACCEPT # 8. 儲存 service iptables save
firewalld (CentOS 7+) 或 ufw (Ubuntu) 等高層工具iptables -nvL 觀察封包/位元組計數器驗證規則命中