25565
내 라우터 (Minecraft 서버 포트라고도 함) 에서 포트를 열었습니다 . 이미 이 서버에서 호스팅되는 웹사이트가 있습니다.
togtja@togtja_server:/$ sudo iptables -nL | grep 80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 /* 'dapp_Apache%20Full' */
서버를 실행할 때 포트가 수신 대기 중인지 다시 확인합니다.
/**Some other ports as well such as 22 from ssh**/
apache2 1926 root 4u IPv6 29136 0t0 TCP *:80 (LISTEN)
apache2 1926 root 6u IPv6 29140 0t0 TCP *:443 (LISTEN)
apache2 1927 www-data 4u IPv6 29136 0t0 TCP *:80 (LISTEN)
apache2 1927 www-data 6u IPv6 29140 0t0 TCP *:443 (LISTEN)
apache2 1928 www-data 4u IPv6 29136 0t0 TCP *:80 (LISTEN)
apache2 1928 www-data 6u IPv6 29140 0t0 TCP *:443 (LISTEN)
java 3159 togtja 52u IPv6 41266 0t0 TCP *:25565 (LISTEN)
그러나 포트에서 telnet
또는 실행 시:nc
togtja@togtja_server:/$ nc -z -v -w5 my_ip 25565
nc: connect to my_ip port 25565 (tcp) timed out: Operation now in progress
닫아야 할 다른 포트를 시도하면 바로 거부됩니다.
togtja@togtja_server:/$ nc -z -v -w5 my_ip 1337
nc: connect to my_ip port 1337 (tcp) failed: Connection refused
그러나 localhost를 시도하면 통과할 수 있습니다.
togtja@togtja_server:/$ nc -z -v -w5 localhost 25565
Connection to localhost 25565 port [tcp/*] succeeded!
예상대로 로컬로 열려 있지 않은 포트는 거부됩니다.
togtja@togtja_server:/$ nc -z -v -w5 localhost 1337
nc: connect to localhost port 1337 (tcp) failed: Connection refused
나는 나를 믿는다가능한웹 서버를 설정할 때 명시적으로 허용된 포트를 제외한 모든 포트가 잠겨 있었지만 해당 설정이 어디에 있는지 또는 그것이 문제인지 확실하지 않습니다. 참고: 저는 우분투 18.04 서버(GUI 없음)를 실행하고 있습니다.
편집하다:
이를 명확히 하기 위해 nc my_ip
다른 네트워크에 있는 PC에서도 명령을 실행하여 로컬 서버에서만 작동하는 것이 아닌지 확인했습니다.
답변1
문제는 IP 테이블의 기본 정책을 로 설정했다는 것입니다 DROP
. 따라서 호출이 이루어지면 다음과 같은 sudo iptables -L
결과가 나타납니다.
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
그래서 내 포트가 실행할 예외를 추가했습니다. 이는 규칙을 만들고자 하는 대상에 따라 달라질 수 sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
INPUT
있습니다 .FORWARD
OUTPUT
전체 테이블 체인을 하나의 정책으로 변경하려면 다음을 수행하면 됩니다.
sudo iptables -P INPUT ACCEPT
그러면 INPUT에 대한 기본 정책이 허용됩니다.