使用 iptables 允許連接埠失敗

使用 iptables 允許連接埠失敗

我一直在嘗試編寫一個 bash 腳本,以便使用 iptables 在 Debian 伺服器上快速開啟和關閉連接埠。我想透過使用我的腳本在“維護模式”和“伺服器 - 遊戲模式”之間快速切換,因為我將運行遊戲伺服器。請原諒我在這方面的菜鳥,因為我對 Linux 不太有經驗...

本質上,我將運行三個獨立的遊戲伺服器實例,它們各自在不同的連接埠上運行。

  • 伺服器A需要32000 TCP + UDP32005 TCP
  • 伺服器B需要33000 TCP + UDP33005 TCP
  • 伺服器C需要34000 TCP + UDP34005 TCP
  • 另外,預設情況下,我允許連接埠 80 和 443 TCP 用於 Web 內容(由於某種原因,它們一直被禁用 - 我仍在研究它)。

執行我的腳本後,連接埠 80 打開得很好,但由於某種原因我無法打開其餘連接埠...

這是我的腳本的最後狀態。

#!/bin/bash
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[1;32m'
ORANGE='\033[0;33m'
GREY='\033[1;30m'
NC='\033[0m'

echo -e "${ORANGE}Starting default server iptables script${GREY}"

set -o xtrace

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#Web ports configuration
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

#A server ports configuration
iptables -A INPUT -p tcp --dport 32000 -j ACCEPT
iptables -A INPUT -p udp --dport 32000 -j ACCEPT
iptables -A INPUT -p tcp --dport 32005 -j ACCEPT

#B server ports configuration
iptables -A INPUT -p tcp --dport 33000 -j ACCEPT
iptables -A INPUT -p udp --dport 33000 -j ACCEPT
iptables -A INPUT -p tcp --dport 33005 -j ACCEPT

#C server ports configuration
iptables -A INPUT -p tcp --dport 34000 -j ACCEPT
iptables -A INPUT -p udp --dport 34000 -j ACCEPT
iptables -A INPUT -p tcp --dport 34005 -j ACCEPT

iptables -I INPUT 1 -i lo -j ACCEPT
iptables -P INPUT ACCEPT
iptables -A INPUT -j DROP

#Save the iptables
eval "iptables-save > /etc/iptables/rules.v4"

set +o xtrace
echo -e "\n\n\nScript finished executing...! :-)${NC}"

我在用這個網站檢查我的連接埠是否開啟。

如果您能指出我的錯誤,我將非常感激,因為我已經嘗試了兩天了:-(

編輯:我剛剛下載了 nmap 並掃描了所有 tcp 連接埠。由於某種原因,我的 32005 連接埠打開,但其餘連接埠關閉。我現在非常非常困惑:)請看截圖。 在此輸入影像描述

相關內容