내 아들이 플레이할 수 있는 서버를 설정하려고 합니다 Pocketmine
. PHP
포트 19132에서 실행되는 서버 입니다 . 내 라우터에 이 포트가 열려 있고 다른 서버(예: Rails 서버)를 실행하면 모든 것이 정상입니다. 실행하려고 하면 Pocketmine
포트가 열리지 않습니다. 내 서버가 지금 실행 중입니다. 이것이 내 netstat
결과입니다.
서버를 볼 수 있습니다 . 첫 번째 줄에는 udp port
. LISTEN
이것은 내 서버의 출력입니다.
무엇이 문제일까요? udp
서버가 이 상태가 아닌 이유는 무엇 입니까 LISTEN
? 어떤 상태에 있어야 합니까 LISTEN
? 포트가 열리지 않는 원인이 될 수 있는 다른 문제가 있습니까? 이 문제를 해결하려면 어떻게 해야 합니까?
답변1
Minecraft 서버 포트가 표시되지 않는 이유는 LISTEN
UDP 프로토콜이 작동하는 방식 때문입니다.
TCP 프로토콜을 사용하는 서버는 클라이언트가 연결을 시도할 때 세션을 시작하고 TCP/IP 프로토콜을 사용하여 데이터를 전송하도록 연결을 "수신"합니다. TCP 연결을 위한 포트에 "수신 중인" 항목이 없으면 프로토콜 자체에서 포트에서 수신 중인 서버에 연결할 수 없다는 오류가 발생할 수 있습니다.
UDP 연결에는 세션이 없으므로 연결을 "수신"하지 않습니다. 실제로 일어나는 일은 UDP 패킷이 해당 포트로 전송되고 해당 포트에 패킷을 수신할 서버가 있으면 데이터가 처리된다는 것입니다. 그렇지 않고 패킷을 수신하는 사람이 없으면 패킷은 공백으로 사라지고 프로토콜 수준에서는 오류가 생성되지 않습니다.
netstat에서 포트 19132를 볼 수 있다는 사실은 UDP 세계에서 서버가 해당 포트의 데이터를 "수신"하고 있음을 의미하며, 이는 포트가 실제로 열려 있음을 의미합니다.
답변2
아이디어 #1 - UDP 포트 포워딩?
라우터에서 이 포트를 열 때 TCP/UDP 또는 UDP를 지정했는지 확인하십시오. 이러한 포트 유형은 중요하며 방화벽/라우터에서 포트를 열 때 간과되는 경우가 많습니다.
아이디어 #2 - Pocketmine 도메인 문제 포팅?
나는 당신이 겪고 있는 문제와 정확히 일치하는 이 포럼 게시물을 찾았습니다. 이 특정 사용자가 자신의 라우터에서 UDP 포트를 여는 데 사용하는 스크린샷도 표시되지만 여전히 작동하지 않습니다.