SW/리눅스

Linux : Raspberry Pi : Minecraft Server 설치 방법, 예제, 명령어

얇은생각 2022. 3. 1. 07:30
반응형

라즈베리 파이는 다양한 프로젝트에 사용될 수 있습니다. 라즈베리 파이의 가장 인기 있는 사용 사례 중 하나는 라즈베리 파이를 게임 서버로 바꾸는 것입니다.

라즈베리 파이 3 또는 4에 마인크래프트 서버를 설치하고 구성하는 과정을 안내합니다. 

마인크래프트는 역사상 가장 인기 있는 게임 중 하나입니다. 이 게임은 샌드박스 비디오 게임으로, 플레이어들이 무한한 세계를 탐험하고 간단한 집부터 거대한 고층 빌딩에 이르기까지 모든 것을 지을 수 있게 해줍니다.

 

 

Linux : Raspberry Pi : Minecraft Server 설치 방법, 예제, 명령어

 

 

필수 조건

Rasbribian이 Rasberry Pi에 설치되어 있다고 가정합니다. Plex Media Server는 그래픽 인터페이스가 필요하지 않으므로 Rasbian Stretch Lite 이미지를 사용하고 SSH를 활성화하는 것이 좋습니다. 이렇게 하면 Rasbri Pi는 Plex 미디어 서버를 실행할 수 있는 훨씬 더 많은 처리 능력과 메모리를 확보할 수 있습니다.

mcrcon 유틸리티를 사용하여 마인크래프트 서버에 연결합니다. MCrcon 도구를 만드는 데 필요한 패키지를 설치합니다.

sudo apt update
sudo apt install git build-essential

 

 

라스피 구성 도구를 사용하여 GL 드라이버를 활성화합니다.

raspi-config

 

 

위로 또는 아래로 키를 사용하여 "고급 옵션"으로 이동한 후 Enter 키를 누릅니다.

GL 드라이버를 선택하고 Enter 키를 누릅니다.

GL(Fake KMS)을 선택하고 Enter 키를 누릅니다.

완료 버튼을 선택하고 Enter 키를 누릅니다. "지금 재부팅하시겠습니까?"라는 메시지가 나타나면 "예"를 선택하고 Enter 키를 누릅니다.

파이가 다시 온라인 상태가 되면 다음 단계를 계속합니다.

 

 

 

Java Runtime Environment

시스템에 마인크래프트를 설치하려면 Java 8 이상이 필요합니다.

JRE의 헤드리스 버전을 설치합니다. 이 버전은 종속성이 적고 시스템 리소스를 덜 사용하기 때문에 서버 애플리케이션에 더 적합합니다.

헤드리스 OpenJRE 8 유형을 설치하려면 다음을 수행합니다.

Java 버전을 출력하여 설치를 확인합니다.

sudo apt install openjdk-8-jre-headless
java -version

# openjdk version "1.8.0_212"
# OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1+rpi1-b01)
# OpenJDK Client VM (build 25.212-b01, mixed mode)

 

 

 

마인크래프트 사용자 생성

보안을 위해 루트 사용자로 마인크래프트를 실행해서는 안 됩니다. 새로운 시스템 사용자와 홈 디렉토리 /opt/minecraft로 그룹을 만들어 마인크래프트 서버를 실행합니다.

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

 

 

이 사용자에 대한 암호를 설정하지 않습니다. 이 방법은 SSH를 통해 로그인할 수 없기 때문에 보안에 적합합니다.

 

 

 

라즈베리 파이에 마인크래프트를 설치

설치 프로세스를 시작하기 전에 사용자 "minecraft"로 전환해야 합니다.

sudo su - minecraft

 

 

사용자 홈 디렉토리 내에 두 개의 디렉토리를 작성합니다.

mkdir -p ~/{tools,server}

 

 

도구 디렉터리에 mcrcon 클라이언트와 백업 스크립트가 저장됩니다.

서버 디렉토리에는 실제 마인크래프트 서버와 해당 데이터가 포함됩니다.

 

 

 

mcrcon을 다운로드하고 컴파일

RCON은 마인크래프트 서버에 접속하여 명령을 실행할 수 있는 프로토콜입니다. mcron은 C에 내장된 RCON 클라이언트입니다.

GitHub에서 소스 코드를 다운받아 MCRCon 바이너리를 구축하겠습니다.

~/tools 디렉토리로 이동하고 다음 명령을 실행하는 GitHub에서 Tiffi/mcrcon 저장소를 복제합니다.

cd ~/tools && git clone https://github.com/Tiiffi/mcrcon.git

 

 

그런 다음 리포지토리 디렉토리로 전환합니다.

cd ~/tools/mcrcon

 

 

다음을 입력하여 컴파일을 시작합니다.

gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

 

 

완료되면 다음을 입력하여 테스트할 수 있습니다.

./mcrcon -h

# Usage: mcrcon [OPTIONS]... [COMMANDS]...
# Sends rcon commands to Minecraft server.
# 
# ...
# 
# mcrcon 0.6.1 (built: Sep 19 2019 20:52:13)
# Report bugs to tiiffi_at_gmail_dot_com or https://github.com/Tiiffi/mcrcon/issues/

 

 

 

마인크래프트 서버를 다운로드

Craftbukkit 또는 Spigot과 같은 마인크래프트 서버 모드는 서버에 기능(플러그인)을 추가하고 설정을 추가로 사용자 지정 및 변경할 수 있습니다. 우리는 최신 모장의 공식 바닐라 마인크래프트 서버를 설치할 것입니다.

최신 마인크래프트 서버의 Java 아카이브 파일(JAR) 다운로드 링크를 보려면 마인크래프트 다운로드 페이지로 이동하십시오.

작성 시 최신 버전은 1.14.4입니다. 다음 명령을 실행하기 전에 다운로드 페이지에서 새 버전을 확인해야 합니다.

다음 wget 명령을 실행하여 ~/server 디렉토리에서 Minecraft jar 파일을 다운로드하십시오.

wget https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar -P ~/server

 

 

 

마인크래프트 서버를 구성

다운로드가 완료되면 ~/server 디렉토리로 이동하여 마인크래프트 서버를 시작합니다.

cd ~/server
java -Xms512M -Xmx768M -jar server.jar nogui

# [21:06:23] [main/ERROR]: Failed to load properties from file: server.properties
# [21:06:24] [main/WARN]: Failed to load eula.txt
# [21:06:24] [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 파일과 EULA=false를 EULA=true로 변경합니다.

# ~/server/eula.txt

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Thu Sep 19 21:06:24 BST 2019
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 -Xmx768M -Xms512M -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; enabled; vendor preset: enabled)
#    Active: active (running) since Thu 2019-09-19 21:11:58 BST; 1min 27s ago
#  Main PID: 1992 (java)
#     Tasks: 17 (limit: 1604)
#    Memory: 338.9M
#    CGroup: /system.slice/minecraft.service
#            └─1992 /usr/bin/java -Xmx768M -Xms512M -jar server.jar nogui

 

 

서비스를 처음 시작하면 마인크래프트 세계를 포함한 여러 구성 파일과 디렉토리가 생성됩니다. tail 명령을 사용하여 서버 로그 파일을 모니터링합니다.

마인크래프트 서버가 시작되면 출력은 다음과 같습니다.

tail -f /opt/minecraft/server/logs/latest.log

# [21:19:25] [Server-Worker-3/INFO]: Preparing spawn area: 98%
# [21:19:25] [Server thread/INFO]: Time elapsed: 201586 ms
# [21:19:25] [Server thread/INFO]: Done (418.339s)! For help, type "help"
# [21:19:25] [Server thread/INFO]: Starting remote control listener
# [21:19:25] [RCON Listener #1/INFO]: RCON running on 0.0.0.0:25575

 

 

부팅 시 자동으로 Minecraft 서비스를 시작합니다.

sudo systemctl enable 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 별칭을 만들어야 합니다.

라즈베리 파이에 마인크래프트 서버를 성공적으로 설치했습니다. 리소스가 적은 시스템에서는 마인크래프트가 원활하게 실행되지 않을 수 있습니다.

반응형