개요
외부에서 받은 네이버 클라우드 크레딧이 남아있어, 이를 사용해볼 겸 네이버 클라우드로 24시간 돌아가는 마인크래프트 JE(자바 에디션) 서버를 만들어보았다.
서버 환경 설정
VM 서버 생성
네이버 클라우드 플랫폼 사이트에서 오른쪽 상단에 있는 콘솔 페이지로 접속해 왼쪽 메뉴 리스트에 Server 메뉴의 Server로 들어가 서버 생성을 클릭한다.
네이버 클라우드 플랫폼
네이버 클라우드 콘솔
서버 OS 이미지의 경우 ubuntu-18.04
를 이용하였다. 서버 타입의 경우 다음에도 설정할 수 있기 때문에 서버 이미지 설정하고 '다음'을 눌러도 문제 없다.
서버 설정에서는 서버 세대와 서버 타입, 서버 타입 세부 성능 등의 정보를 설정해주면 된다.
내 경우는 Classic 1세대(서버 세대 : g1)의 Standard를 이용하였다.
해당 서버 타입의 경우 최소 vCPU 2개
, 메모리 4GB
, SSD 50GB
를 가지고 있다.
보통 마인크래프트 서버 메모리는 1GB 이상이 필요하기 때문에, g1의 Compact(메모리 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 <닉네임>
으로 화이트리스트에서 제외 가능
Ghost