콘텐츠로 이동

서버 접속

서버 루트 디렉터리의 server.properties를 열고

다음 항목을 찾는다.

server-port=25565

25565는 Minecraft 서버의 기본 포트다. 기본 포트를 바꾸지 않았다면 보통 주소에 포트를 적지 않아도 된다.

내 컴퓨터를 가리키는 주소는 보통 다음과 같다.

  • localhost
  • 127.0.0.1
  • 0.0.0.0

서버 포트를 바꾸지 않았다면 Minecraft 클라이언트에서:

  1. 멀티플레이를 누른다
  2. 서버 추가를 누른다
  3. 위의 로컬 주소 중 아무거나 입력한다
  4. 완료를 누른다
  5. 서버에 접속한다

서버 포트를 바꿨다면 루프백 주소 뒤에 콜론과 바꾼 포트를 붙이면 된다.

서버 포트가 12345라면 위의 로컬 주소를 이렇게 바꿔 입력한다.

  • localhost:12345
  • 127.0.0.1:12345
  • 0.0.0.0:12345

플레이어가 원격으로 접속하게 하려면 먼저 공인 IP가 있는지 확인하자.

공인 IP가 114.51.14.191이라면 114.51.14.191:25565로 접속하면 된다.

콜론 뒤의 포트 번호는 설정한 **server-port**와 똑같아야 한다. 그렇지 않으면 플레이어가 접속할 수 없다.

예를 들어 **server-port**를 **9180**으로 바꿨다면 114.51.14.191:9180으로 접속해야 한다.

114.51.14.191에 8aka.org 도메인을 연결했다면 8aka.org:9180으로도 접속할 수 있다.

플레이어가 접속하지 못한다면 다음 순서로 확인하자.

  • 로컬 접속을 해 본다. 로컬 접속도 안 된다면 서버 자체에 문제가 있다
  • 로컬 접속은 된다면 방화벽에서 포트를 열어 본다
  • 공유기에서 이 포트를 외부로 포트 포워딩했는지 확인한다
  • 자주 발생하는 오류를 보며 원인을 찾는다

터널링 부분을 보고, 거기 나온 튜토리얼대로 포트를 외부로 매핑하자.

Minecraft 서버에 접속할 때 자주 만나는 문제들이다.

Unknown host / 未知的主机 / Can't resolve hostname / 无法解析主机名

섹션 제목: “Unknown host / 未知的主机 / Can't resolve hostname / 无法解析主机名”
  1. 도메인을 잘못 입력하지 않았는지 확인한다
  2. DNS 레코드를 방금 바꿨다면:
    • 잠시 기다렸다가 다시 시도한다
    • Windows에서는 CMD에서 ipconfig /flushdns를 실행한다
    • Linux에서는 터미널에서 sudo systemd-resolve --flush-caches를 실행한다
  3. DNS 응답이 변조되었을 수도 있다. 조회된 IP가 설정과 같은지 확인하자. 임시로는 DNS 서버를 바꾸고, 장기적으로는 DNSSEC를 켜는 것을 추천한다

요즘은 보기 드문 오류다. 보통 통신사 때문에 생긴다.

  1. 도메인을 잘못 입력하지 않았는지 확인한다
  2. 네트워크 상태를 확인한다(서버에 ping을 보내 보고, 시간 초과라면 네트워크 문제다)
  3. frp를 쓴다면 frp 설정 파일이 올바른지 확인한다

Invalid characters in username / 用户名包含无效字符

섹션 제목: “Invalid characters in username / 用户名包含无效字符”

바닐라 Minecraft가 허용하지 않는 사용자 이름으로 서버에 접속한 경우다. CnUsername을 설치하면 해결할 수 있다.

Flying is not enabled on this server / 此服务器未启用飞行

섹션 제목: “Flying is not enabled on this server / 此服务器未启用飞行”

server.properties 파일을 열어 allow-flight를 true로 바꾸고 서버를 재시작한다.

You are sending too many packets!/ 由于超出数据包速率限制而被踢出游戏

섹션 제목: “You are sending too many packets!/ 由于超出数据包速率限制而被踢出游戏”

보통 오토클릭 때문에 생긴다. paper-global.yml의 packet-limiter에서 max-packet-rate를 높이면 된다. ViaVersion을 쓴다면 설정 파일의 max-pps와 tracking-warning-pps 값도 높여야 한다.

겪어 본 적이 없는 문제다.

java.io.IOException: Connection reset by peer

섹션 제목: “java.io.IOException: Connection reset by peer”

네트워크가 너무 불안정하다.

정품 계정으로 로그인하지 않고 정품 인증 서버에 접속한 경우다. online-mode를 false로 바꿔도 해결된다.

身份验证服务器目前处于宕机状态。请稍后再试,抱歉

섹션 제목: “身份验证服务器目前处于宕机状态。请稍后再试,抱歉”

Mojang이나 Microsoft 계정 서버 상태를 확인하자(Mojang Status에서 볼 수 있다). Mojang 인증 서버 점검이 아니라면 네트워크가 나빠서 인증 서버에 닿지 못하는 것일 수도 있다. AlwaysOnline 플러그인을 설치하면 해결할 수 있다.

클라이언트와 서버 버전이 다를 때 나타난다.

  1. 클라이언트 런처에서 고른 게임 버전이 서버와 같은지 확인한다
  2. 서버가 다중 버전을 지원한다면(ViaVersion 설치 등) 클라이언트 버전이 플러그인 지원 범위 안에 있는지 확인한다
  3. 바닐라 서버라면 클라이언트 버전을 서버에 맞춰 내리거나 올린다

io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused

섹션 제목: “io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused”
  1. 서버가 켜지지 않았거나 크래시했다. 서버 콘솔이 정상적으로 돌아가는지 확인한다
  2. 서버 IP와 포트를 올바르게 입력했는지 확인한다(기본 포트는 25565)
  3. 터널링(frp/Ngrok 등)을 쓴다면 터널 설정이 올바른지 확인한다

Internal Exception: java.io.IOException: 远程主机强迫关闭了一个现有的连接

섹션 제목: “Internal Exception: java.io.IOException: 远程主机强迫关闭了一个现有的连接”
  1. 서버나 클라이언트의 네트워크가 불안정하다
  2. 서버 플러그인 충돌(안티치트 오탐 등. 플러그인을 빼 가며 원인을 찾자)
  3. 서버 방화벽이 연결을 강제로 끊었다

server.properties의 max-players 값을 조정하고 재시작한다.

java.net.SocketException: Connection reset

섹션 제목: “java.net.SocketException: Connection reset”

로컬이나 서버의 방화벽이 연결을 강제로 끊었다.

  1. 같은 이름의 플레이어가 서버에 있다
  2. 네트워크가 너무 나빠서 서버가 아직 접속 중인 것으로 여기고 있다