我一直在嘗試編寫一個 bash 腳本,以便使用 iptables 在 Debian 伺服器上快速開啟和關閉連接埠。我想透過使用我的腳本在“維護模式”和“伺服器 - 遊戲模式”之間快速切換,因為我將運行遊戲伺服器。請原諒我在這方面的菜鳥,因為我對 Linux 不太有經驗...
本質上,我將運行三個獨立的遊戲伺服器實例,它們各自在不同的連接埠上運行。
- 伺服器A需要32000 TCP + UDP和32005 TCP
- 伺服器B需要33000 TCP + UDP和33005 TCP
- 伺服器C需要34000 TCP + UDP和34005 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 連接埠打開,但其餘連接埠關閉。我現在非常非常困惑:)請看截圖。