마인크래프트는 역사상 가장 인기 있는 게임 중 하나입니다. 그것은 플레이어들이 무한한 세계를 탐험하고 단순한 집에서부터 우뚝 솟은 고층 건물까지 다양한 구조물을 만드는 샌드박스 비디오 게임입니다.
이 튜토리얼에서는 Ubuntu 20.04에서 Minecraft Server를 만드는 방법을 설명합니다. Systemd를 사용하여 마인크래프트 서버를 실행하고 실행 중인 인스턴스에 연결하기 위해 mcrcon 유틸리티를 사용할 것입니다. 또한 정기적인 서버 백업을 수행하는 cronjob을 생성하는 방법도 보여드리겠습니다.
필수 구성 요소
공식 마인크래프트 사이트에 따르면 일반적인 설정을 위해 최소 4GB의 RAM이 권장됩니다.
mcrcon 도구를 구축하는 데 필요한 패키지를 설치합니다.
sudo apt update
sudo apt install git build-essential
Java Runtime Environment를 설치
마인크래프트는 Java 8 이상이 필요합니다. 마인크래프트 서버는 그래픽 사용자 인터페이스가 필요하지 않으므로 헤드리스 버전의 Java를 설치하겠습니다. 이 버전은 종속성이 적고 시스템 리소스를 덜 사용하기 때문에 서버 애플리케이션에 더 적합합니다.
다음 명령을 실행하여 헤드리스 OpenJRE 11 패키지를 설치합니다.
sudo apt install openjdk-11-jre-headless
Java 버전을 인쇄하여 설치를 확인합니다.
java -version
# openjdk version "11.0.7" 2020-04-14
# OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
# OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
마인크래프트 사용자 생성
보안상의 이유로 마인크래프트는 루트 사용자로 실행되어서는 안 됩니다. 홈 디렉토리 /opt/minecraft를 사용하여 새로운 시스템 사용자와 그룹을 만들 것입니다. 사용자는 마인크래프트 서버를 실행하는 데 필요한 최소한의 권한을 가집니다.
sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
이 사용자의 암호는 설정하지 않습니다. 이렇게 하면 사용자가 SSHand를 통해 로그인할 수 없으며 손상될 수 없습니다. 마인크래프트 사용자로 변경하려면 서버에 루트 또는 sudo 권한이 있는 사용자로 로그인해야 합니다.
Ubuntu에 Minecraft를 설치
설치 프로세스를 시작하기 전에 마인크래프트 사용자로 전환하십시오.
sudo su - minecraft
다음 명령을 실행하여 사용자 홈 디렉토리 내에 세 개의 새 디렉토리를 작성합니다.
mkdir -p ~/{backups,tools,server}
백업 디렉터리에 마인크래프트 서버 백업이 저장됩니다. 이 디렉터리를 원격 백업 서버와 동기화할 수 있습니다.
도구 디렉토리는 mcrcon 클라이언트와 백업 스크립트를 보관합니다.
서버 디렉토리에는 실제 마인크래프트 서버와 해당 데이터가 포함됩니다.
mcrcon을 다운로드하고 컴파일
RCON은 마인크래프트 서버에 연결하여 명령을 실행할 수 있는 프로토콜입니다. mcron은 C로 작성된 RCON 클라이언트입니다.
GitHub에서 소스 코드를 다운받아 mcrcon 바이너리를 구축하겠습니다.
Tiiffi/mcrcon 저장소를 GitHub에서 ~/tools/mcron 디렉토리로 복제합니다.
git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon
완료되면 mcron 디렉토리로 전환하고 유틸리티를 빌드합니다.
cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c
완료되면 다음 버전을 인쇄하여 mcrcon이 성공적으로 컴파일되었는지 확인합니다.
출력은 다음과 같습니다.
./mcrcon -v
# mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
# Bug reports:
# tiiffi+mcrcon at gmail
# https://github.com/Tiiffi/mcrcon/issues/
마인크래프트 서버를 다운로드
Craftbukkit 또는 Spigot과 같은 여러 Minecraft 서버 모드가 있어 서버에 기능(플러그인)을 추가하고 서버 설정을 사용자 정의하고 조정할 수 있습니다.
이 가이드에서는 최신 Mojang의 공식 바닐라 마인크래프트 서버를 설치할 것입니다. 다른 서버 모드 설치에도 동일한 지시사항이 적용됩니다.
마인크래프트 다운로드 페이지로 이동하여 최신 마인크래프트 서버의 Java 아카이브 파일(JAR) 다운로드 링크를 확인하십시오. 작성 당시 최신 버전은 1.16입니다.
wget을 사용하여 ~/server 디렉토리에 jar 파일을 다운로드합니다.
wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server
Minecraft Server를 구성
다운로드가 완료되면 ~/server 디렉토리로 전환하고 마인크래프트 서버를 시작합니다.
cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui
# [17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
# [17:35:15] [main/WARN]: Failed to load eula.txt
# [17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
처음 시작할 때 서버는 일부 작업을 실행하고 server.properties 및 eula.txt 파일과 중지됩니다.
서버를 실행하려면 위의 출력과 같이 마인크래프트 EULA에 동의해야 합니다. EULA를 엽니다.txt 파일을 입력하고 ela=false를 ela=true로 변경합니다.
# ~/server/eula.txt
eula=true
그런 다음, server.properties 파일을 열고 rcon 프로토콜을 사용 가능으로 설정한 후 rcon 비밀번호를 설정합니다.
아래 그림과 같이 다음 선을 찾아 값을 업데이트합니다.
# ~/server/server.properties
rcon.port=25575
rcon.password=strong-password
enable-rcon=true
강력한 암호를 더 안전한 암호로 변경하는 것을 잊지 마십시오. 원격지에서 마인크래프트 서버에 연결하지 않으려면 방화벽에 의해 rcon 포트가 차단되었는지 확인하십시오.
여기서 서버의 기본 등록 정보를 조정할 수도 있습니다. 서버 설정에 대한 자세한 내용은 server.properties 페이지를 참조하십시오.
Systemd 단위 파일 생성
수동으로 마인크래프트 서버를 시작하는 대신 Systemd 유닛 파일을 생성하고 서비스로 마인크래프트를 실행할 것입니다.
exit를 입력하여 sudo 사용자로 다시 전환합니다.
텍스트 편집기를 열고 /etc/systemd/system/ 디렉토리에 minecraft.service라는 파일을 만듭니다.
다음 구성을 붙여넣습니다.
# /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop
[Install]
WantedBy=multi-user.target
서버 리소스에 따라 Xmx 및 Xms 플래그를 수정합니다. Xmx 플래그는 Java 가상 시스템(JVM)의 최대 메모리 할당 풀을 정의하는 반면, Xms는 초기 메모리 할당 풀을 정의합니다. 또한 올바른 rcon 포트와 암호를 사용하고 있는지 확인합니다.
파일을 저장하고 systemd 관리자 구성을 다시 로드합니다.
sudo systemctl daemon-reload
이제 다음을 입력하여 마인크래프트 서버를 시작할 수 있습니다.
sudo systemctl start minecraft
서비스를 처음 시작하면 마인크래프트 월드를 포함한 여러 구성 파일과 디렉터리가 생성됩니다.
다음 명령을 사용하여 서비스 상태를 확인합니다.
sudo systemctl status minecraft
# ● minecraft.service - Minecraft Server
# Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
# Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
# Main PID: 1338035 (java)
# Tasks: 15 (limit: 1074)
# Memory: 465.3M
# CGroup: /system.slice/minecraft.service
# └─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
마지막으로, 부팅 시 마인크래프트 서비스가 자동으로 시작되도록 합니다.
sudo systemctl enable minecraft
방화벽을 조정
우분투에는 UFW라는 방화벽 구성 도구가 함께 제공됩니다. 방화벽이 시스템에서 활성화되어 있고 로컬 네트워크 외부에서 Minecraft 서버에 액세스하려면 포트 25565를 열어야 합니다.
sudo ufw allow 25565/tcp
백업을 구성
이 섹션에서는 마인크래프트 서버를 자동으로 백업하는 백업 셸 스크립트 및 크론잡에 대해 설명합니다.
마인크래프트로 전환합니다.
sudo su - minecraft
텍스트 편집기를 열고 다음 파일을 만듭니다.
nano /opt/minecraft/tools/backup.sh
다음 구성을 붙여넣습니다.
# /opt/minecraft/tools/backup.sh
#!/bin/bash
function rcon {
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}
rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"
## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete
파일을 저장하고 스크립트를 실행 파일로 만듭니다.
chmod +x /opt/minecraft/tools/backup.sh
그런 다음 하루에 한 번 지정된 시간에 자동으로 실행되는 크론 작업을 만듭니다.
다음을 입력하여 crontab 파일을 엽니다.
crontab -e
매일 23:00에 백업 스크립트를 실행하려면 다음 줄을 붙여넣으십시오.
0 23 * * * /opt/minecraft/tools/backup.sh
Minecraft 콘솔에 액세스
마인크래프트 콘솔에 액세스하려면 mcrcon 유틸리티를 사용하십시오. 호스트, rcon 포트, rcon 암호를 지정하고 mcrcon 터미널 모드를 활성화하는 -t 스위치를 사용해야 합니다.
/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
# Logged in. Type "Q" to quit!
# >
원격지에서 마인크래프트 콘솔에 액세스할 때 rcon 포트가 차단되지 않았는지 확인하십시오.
마인크래프트 콘솔에 정기적으로 연결하는 경우 이 긴 명령을 입력하는 대신 bash 별칭을 작성합니다.
우분투 20.04에서 마인크래프트 서버를 만들고 일일 백업을 설정하는 방법을 보여드렸습니다.
이제 마인크래프트 클라이언트를 시작하고 서버에 연결하여 마인크래프트 모험을 시작할 수 있습니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Vim / Vi : 검색 방법, 예제, 명령어 (0) | 2022.10.23 |
---|---|
Ubuntu 20.04 : Apache Virtual Hosts 설정 방법, 예제, 명령어 (0) | 2022.10.22 |
Linux : Ubuntu 20.04 : Apache Maven 설치 방법, 예제, 명령어 (0) | 2022.10.19 |
Linux : Ubuntu 20.04 : Hostname 변경 방법, 예제, 명령어 (0) | 2022.10.18 |
Linux : Ubuntu 20.04 : Anaconda 설치 방법, 예제, 명령어 (0) | 2022.10.17 |