Ubuntu Server 20.04에서 실행되는 Minecraft 서버가 있습니다. GeyserMC를 사용하고 있습니다.https://geysermc.org/ 이런 식으로 우리의 Minecraft 서버는 크로스 플랫폼이 될 수 있습니다. Java 버전은 포트 25565를 통해 연결되고 Bedrock 버전은 포트 19132를 통해 연결됩니다. 우리는 라우터의 두 포트를 모두 전달했습니다. 포트 25565를 통해 연결할 수 있지만 19132는 연결할 수 없습니다.
이것을 /etc/netplan/config.yaml에 넣습니다:
network:
version: 2
renderer: networkd
ethernets:
enp3s25:
dhcp4: no
addresses: [192.168.254.25/24]
gateway4: 192.168.254.254
nameservers:
addresses: [8.8.8.8,8.8.4.4]
두 번째 포트가 작동하려면 다른 네트워크 인터페이스를 추가해야 합니까? 저는 네트워킹에 대해 전혀 아는 바가 없습니다...
답변1
오늘날의 인터넷 프로토콜(IP) 네트워크 모델에는 두 호스트 간에 통신하는 두 가지 주요 방법, 즉 TCP(전송 제어 프로토콜)와 UDP(사용자 데이터그램 프로토콜)가 있습니다. 더 많은 것이 있지만 여기서는 기본에 충실하겠습니다.
TCP와 UDP의 가장 간단한 차이점은 TCP가 두 호스트 간에 핸드셰이크를 수행하여 두 호스트가 통신을 설정했고 다른 호스트에서 보낸 네트워크 패킷을 받았는지 확인한다는 것입니다. 이는 수신 호스트가 도중에 패킷이 손실되었는지를 인식하고 송신 호스트에 이러한 패킷을 다시 보내도록 요청할 수 있으므로 오류 검사 및 수정 기능을 제공합니다. 그러나 데이터를 전송하려면 더 많은 계산과 대역폭이 필요하기 때문에 성능이 저하됩니다.
반면 UDP는 패킷이 수신되었는지(또는 순서대로 수신되었는지) 확인하지 않습니다. 이와 대조적으로 UDP는 네트워크 인터페이스의 성능에 중점을 둡니다. UDP를 사용하면 더 적은 계산 노력으로 더 많은 데이터를 받을 수 있습니다.
이것이 마인크래프트와 어떤 관련이 있나요? Minecraft 서버의 Java 버전은 출시 이후 TCP 포트 25565를 통해 통신했습니다. 그러나 Bedrock Edition이 출시되면서 Microsoft는 서버 버전에서 사용할 프로토콜을 변경하기로 결정했습니다.UDP 프로토콜포트 19132, UDP가 제공하는 성능 이점을 활용하고 싶을 가능성이 높습니다. 그러나 소비자 라우터는 기본적으로 라우터를 통해 전달하는 대부분의 응용 프로그램이 사용할 포트인 TCP 포트를 전달하는 경향이 있기 때문에 서버를 공개 연결로 여는 것이 복잡합니다.
따라서 라우터에서 전달 프로토콜을 TCP에서 UDP로 전환하면 클라이언트가 Minecraft 서버의 기반측에 연결할 수 있습니다.