나는 iptables를 사용하여 Debian 서버에서 원하는 대로 포트를 빠르게 열고 닫는 bash 스크립트를 작성하려고 노력해 왔습니다. 게임 서버를 운영할 예정이므로 스크립트를 사용하여 "유지 관리 모드"와 "서버 - 게임 플레이 모드" 사이를 빠르게 전환하고 싶습니다. 나는 Linux에 대한 경험이 많지 않기 때문에 이것에 대한 나의 멍청함을 용서하십시오 ...
기본적으로 저는 서로 다른 포트에서 자체적으로 실행되는 세 개의 별도 게임 서버 인스턴스를 실행하게 됩니다.
- 서버 A에는 32000 TCP + UDP가 필요합니다.그리고32005 TCP
- 서버 B에는 33000 TCP + UDP가 필요합니다.그리고33005 TCP
- 서버 C에는 34000 TCP + UDP가 필요합니다.그리고34005 TCP
- 또한 기본적으로 웹 작업에 포트 80 및 443 TCP를 허용합니다(어떤 이유에서인지 계속 비활성화됩니다. 아직 작업 중입니다).
스크립트를 실행한 후 포트 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는 열려 있지만 나머지 포트는 닫혀 있습니다. 저는 지금 매우 혼란스럽습니다. :) 스크린샷을 참조하세요.