네이버 클라우드/Ubuntu 18.04 : 마인크래프트 JE 24시간 서버 열기

개요

외부에서 받은 네이버 클라우드 크레딧이 남아있어, 이를 사용해볼 겸 네이버 클라우드24시간 돌아가는 마인크래프트 JE(자바 에디션) 서버를 만들어보았다.

서버 환경 설정

VM 서버 생성

네이버 클라우드 플랫폼 사이트에서 오른쪽 상단에 있는 콘솔 페이지로 접속해 왼쪽 메뉴 리스트에 Server 메뉴Server로 들어가 서버 생성을 클릭한다.
네이버 클라우드 플랫폼 네이버 클라우드 콘솔

서버 OS 이미지의 경우 ubuntu-18.04를 이용하였다. 서버 타입의 경우 다음에도 설정할 수 있기 때문에 서버 이미지 설정하고 '다음'을 눌러도 문제 없다.

서버 설정에서는 서버 세대서버 타입, 서버 타입 세부 성능 등의 정보를 설정해주면 된다.
내 경우는 Classic 1세대(서버 세대 : g1)Standard를 이용하였다.
해당 서버 타입의 경우 최소 vCPU 2개, 메모리 4GB, SSD 50GB를 가지고 있다.
보통 마인크래프트 서버 메모리는 1GB 이상이 필요하기 때문에, g1Compact(메모리 2GB)로 생성해도 괜찮다고 생각한다. 실제 소수 인원으로 돌아가는 서버를 이러한 방식으로 생성해 열었을 때도 크게 문제가 없었다.

서버 서비스에 대한 자세한 설명은 네이버 클라우드 플랫폼에도 잘 정리되어 있다.
네이버 클라우드 플랫폼 서버 서비스 소개

인증키 설정에서 새로운 인증키를 생성한다. 관리자로 SSH 접속할 때 비밀번호로 사용하기 때문에 안전한 곳에 저장하는 것이 좋다.

네트워크 접근 설정에서 신규 ACG를 생성한다. ACG 생성 버튼을 클릭하면 ACG 정보 설정 창이 뜨는데, 아래와 같이 추가한다.

프로토콜 : TCP, 접근 소스 : 0.0.0.0/0, 허용 포트 : 22(SSH 접속을 위한 포트)
프로토콜 : TCP, 접근 소스 : 0.0.0.0/0, 허용 포트 : 25565(마인크래프트 기본 포트)

서버 생성 후 상태가 운영중으로 되면, 다음 과정을 진행한다.

서버 열기

공인 IP 신청

왼쪽 메뉴 리스트에 Server 메뉴Public IP에서 공인 IP 신청해 생성한 서버에 적용한다. 추가 비용이 들어가기 때문에 상단의 네이버 클라우드 플랫폼 서버 서비스 소개 링크를 참고하길 바란다.

SSH 연결

SSH 연결은 PuTTY 프로그램을 이용한다. PuTTY는 아래 사이트에서 다운 받으면 된다.
PuTTY 다운로드 사이트

Package files에서 PuTTY 패키지를 받을 수 있고, Alternative binary files에서 PuTTY만 따로 받을 수 있다.

PuTTY를 실행하면 위와 같은 화면이 나오는데 적용한 공인 IP 주소를 입력해 Open 버튼을 클릭한다.


콘솔 창이 열리면 계정과 비밀번호는 아래와 같이 입력한다.

login as: root
root@IP's password: (서버 생성 때 받은 인증키 관리자 비밀번호)

관리자 비밀번호는 Server 메뉴Server에서 생성한 서버를 클릭하고 관리자 비밀번호 확인을 클릭해 서버 생성 때 받은 인증키 파일을 올리면 비밀번호를 확인할 수 있다.


SSH 접속에 성공하면 다음과 같이 출력되는 것을 확인할 수 있다.
서버 생성 시 wget, screen이 기본적으로 설치되어 있지만 안될 경우를 대비해 다음과 같은 명령어를 입력한다.

# apt update
# apt upgrade
# apt install wget screen

server.jar 다운로드


마인크래프트 서버를 저장할 폴더를 만들고 해당 폴더로 이동한다.

# mkdir server-je
# cd server-je

마인크래프트 홈페이지로 가서 서버를 server.jar 링크를 복사한다.
위 이미지의 경우 minecraft_server..jar를 오른쪽 마우스 클릭한 뒤 링크 복사 한다.

그리고 wget로 server.jar 파일을 다운로드 한다. 아래 링크는 마인크래프트 1.20 버전 기준이다.

# wget https://piston-data.mojang.com/v1/objects/15c777e2cfe0556eef19aab534b186c0c6f277e1/server.jar

Java JRE 설치 및 server.jar 실행

설치 가능한 OpenJDK 17을 확인하고, 그 중 OpenJDK 17 JRE를 설치한다.

# apt-cache search openjdk | grep openjdk-17
# apt install openjdk-17-jre

OpenJDK 버전이 낮으면 마인크래프트 서버가 아래와 같은 오류가 뜨면서 실행이 안될 수 있기 때문에 여유있게 OpenJDK 17을 설치해주었다.

...
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0
...

그리고 server.jar을 한 번 실행해준다.

# java -jar server.jar

정상적으로 실행되면 ls를 통해 아래와 같은 파일들이 생성된 것을 확인할 수 있다.

서버를 열기 전 vi편집기로 eula.txt 파일을 아래와 같이 편집한다.

# vi eula.txt
insert키를 누르고 eula=false로 되어있다면 eula=true로 변경
esc키를 누르고 :wq 입력 후 enter키 누름

screen을 통한 서버 백그라운드 실행

위 과정까지 거쳤다면 screen을 통해 백그라운드 실행하는 과정을 진행해 서버를 24시간 열 수 있다. 콘솔에서도 서버를 실행할 수 있지만, 콘솔을 끄면 서버도 종료되기 때문에 백그라운드로 실행해주는 과정이 필요하다. screen 생성과 마인크래프트 서버를 여는 법은 아래와 같다.

# screen -S (screen 이름)
# java -Xms(최소 사용 메모리, 단위 MB)M -Xmx(최대 사용 메모리, 단위 MB)M -jar server.jar nogui
예시) java -Xms1024M -Xmx2048M -jar server.jar nogui

위와 같은 화면이 나오면 마인크래프트 서버를 여는데 성공한 것으로 백그라운드를 빠져나가고 콘솔을 종료해도 계속 서버가 실행된다.

ctrl+a d키 : 백그라운드를 종료시키지 않으면서 screen에 빠져나간다.

나중에 다시 콘솔로 들어가 마인크래프트 서버를 종료하거나 서버 설정하고 싶은 경우 해당 명령어로 다시 screen 백그라운드에 접근할 수 있다.

# screen -r (screen 이름)

server.properties 화이트리스트 설정

이제 시간 제약없이 외부에 있는 모든 사람들이 마인크래프트 서버를 이용할 수 있기 때문에, 내가 초대하지 않은 손놈(?)들이 와서 서버를 테러하고 갈 수 있다.

나의 경우도 실제로 마인크래프트에 모르는 사람들이 와서 당황한 경험이 있다.

마인크래프트 서버 폴더에 server.properties를 편집해 화이트리스트를 활성화 시킬 수 있고, 마인크래프트 서버 콘솔에서 화이트리스트를 추가할 수 있다.
이미 위 과정을 진행해서 서버를 열였다면 서버를 닫고(ctrl + c키 또는 /stop 입력) 해당 설정을 해준 다음 다시 여는 것을 권장한다.

# vi server.properties
insert키를 누르고 white-list=false로 되어있다면 white-list=true로 설정
esc키를 누르고 :wq 입력 후 enter키 누름 마인크래프트 서버를 실행해 /whitelist add <닉네임>으로 화이트리스트 추가, /whitelist remove <닉네임>으로 화이트리스트에서 제외 가능

참고

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.