우분투로 마인크래프트 서버 돌리기
-글 작성에 사용된 버전-
OS 버전: Ubuntu 22.04.1 LTS
마인크래프트 버전 1.12 이상 일 때 java 버전 8 요구
마인크래프트 버전 1.17 이상 일 때 java 버전 16 요구
마인크래프트 버전 1.18 이상 일 때 java 버전 17 요구
1. java 설치
APT(패키지 매니저)의 설치 가능 패키지 목록을 업데이트를 해주자
1 | $ sudo apt update | cs |
서버를 열기 위해 자바를 설치 해주자
자신이 열 서버 버전에 맞는 자바 버전을 설치해주자
1.12.2 버전을 돌릴거니까 8 버전을 설치해주자
1 | $ sudo apt install openjdk-8-jdk | cs |
설치가 끝나면 제대로 설치됬는지 자바 버전을 확인해보자
1 2 3 4 | user@server:~$ java -version openjdk version "1.8.0_352" OpenJDK Runtime Environment (build 1.8.0_352-8u352-ga-1~22.04-b08) OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode) | cs |
잘 설치되었다
지금 내가 설치한 버전 외에도 다른 버전이 설치되어 있으면 다른 버전이 표시되고 나중에 버킷 실행시 에러가 발생할 수도 있다.
설치되어 있는 자바들을 확인해보자
1 2 3 4 5 6 | user@server:~$ apt list --installed | grep openjdk openjdk-17-jre-headless/jammy-updates,jammy-security,now 17.0.5+8-2ubuntu1~22.04 amd64 [installed,automatic] openjdk-17-jre/jammy-updates,jammy-security,now 17.0.5+8-2ubuntu1~22.04 amd64 [installed] openjdk-8-jre-headless/jammy-updates,jammy-security,now 8u352-ga-1~22.04 amd64 [installed,automatic] openjdk-8-jre/jammy-updates,jammy-security,now 8u352-ga-1~22.04 amd64 [installed] | cs |
17 버전과 8 버전이 함께 설치 되어있다.
버킷 실행할때 에러가 생기면 안되니까 사용할 버전을 지정해주자
1 2 3 4 5 6 7 8 9 10 | user@server:~$ sudo update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode 1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode Press <enter> to keep the current choice[*], or type selection number: | cs |
2번에 8 버전이 있으니 2를 누르고 엔터를 눌러주면 된다
2. screen 설치
접속한 터미널의 접속을 끊으면 해당 터미널에서 돌아가던 프로그램도 종료된다
서버는 접속을 끊어도 계속 돌아가야 하니 그를 위한 프로그램을 설치하자
1 | $ sudo apt install screen | cs |
3. 서버 실행 프로그램 다운로드
서버를 돌려야하니 우분투 컴퓨터에 서버 프로그램(버킷)을 다운 받아야한다
일단 윈도우에서 다운로드를 받자
바닐라 서버는 여기서 다운로드하고 https://www.minecraft.net/en-us/download/server
Forge 서버는 여기서 다운로드하자 https://files.minecraftforge.net/net/minecraftforge/forge/
다운받은 프로그램을 C 드라이브 밑에 폴더를 폴더명 "file"로 만들고 여기로 옮기자
그리고 Win + R 키를 눌러서 cmd를 열고 밑의 명령어를 입력하자
단! 같은 네트워크 안에 있어야한다!
1 2 3 | SCP C:\file\파일명 계정@서버주소:~/Downloads SCP C:\file\forge-1.12.2-14.23.5.2859-installer.jar user@server:~/Downloads | cs |
다시 터미널로 돌아와서 확인해보자
1 2 3 | user@server:~$ ls -l ~/Downloads/ total 4492 -rw-rw-r-- 1 user group 4598797 12월 28 04:53 forge-1.12.2-14.23.5.2859-installer.jar | cs |
윈도우에서 우분투로 파일이 잘 옮겨졌다
server 디렉토리를 만들고
파일을 server 디렉토리로 옮겨주자
1 2 | $ mkdir ~/server $ mv ~/Downloads/forge-1.12.2-14.23.5.2859-installer.jar ~/server | cs |
4. 서버 실행 프로그램 만들고 실행하기
서버를 실행하기 위해 실행파일을 만들어 주도록 하자
1 2 3 4 5 6 7 8 | $ vim ~/run_server.sh -----vim----- cd ~/server java -Xmx 8G -Xms512M -jar forge-1.12.2-14.23.5.2859-installer.jar nogui ------------- esc :wq | cs |
그냥 실행하면 권한이 없어 실행이 되지 않으니 실행권한을 수정하고 실행하자
1 2 3 | $ chmod +x ~/run_server.sh $ cd $ ./run_server.sh | cs |
최초 실행시 EULA 약관이 false로 되어있을테니 true로 수정하고 다시 실행하면 정상적으로 실행된다.
1 2 3 4 5 6 7 8 9 | $ vim ~/server/eula.txt -----vim----- #By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Wed Dec 21 13:27:35 KST 2022 eula=true ------------- esc :wq | cs |
서버가 정상적으로 실행됬으면 stop으로 종료하자
지금의 상태로 터미널을 종료하면 서버도 같이 종료되니 서버로서의 역할을 못하기 때문에 다른 방법으로 서버를 열어야한다.
아까 설치했던 screen을 사용하여 하나의 가상터미널을 열어 그 위에서 프로그램을 돌리면 현재 접속중인 터미널을 종료해도 가상 터미널은 살아서 서버를 가동한다.
1 2 3 4 | $ screen -R // 가상 터미널 열기 $ ./run_server.sh [ctrl + a + d] 로 가상 터미널 빠져 나오기 | cs |
ctrl + a + d 단축키로 가상 터미널을 빠져 나올수 있다. 종료가 아닌 빠져나오기 이기 때문에 서버는 계속 돌아간다.
다시 가상 터미널에 접속하기 위해서는 아래의 명령어로 접속하면 된다.
1 | $ screen -r | cs |
가상 터미널을 종료하고 싶으면 실행 중이던 서버를 stop으로 종료하고 exit로 종료하면 된다.