Ubuntu 24.04 VPS에 Paper Minecraft 서버 구축하기
Ubuntu 24.04 VPS에서 Java 21과 Paper를 사용하여 Minecraft 서버를 구축합니다. RAM 용량 결정법부터 systemd 설정, 25565 포트 개방, 안전한 월드 백업 방법까지 상세히 다룹니다. 서버 구동 시 발생하는 오류 해결법도 포함되어 있습니다.
구축 목표
안정적으로 운영되는 Minecraft Java Edition 서버를 구축합니다. Ubuntu 24.04 환경에서 Paper를 사용하며, systemd를 통해 Restart=on-failure 권한을 가진 전용 minecraft 사용자로 실행합니다. 화이트리스트를 활성화하고, 플레이어와 JVM 사이의 두 방화벽 모두에서 25565 포트를 개방합니다. 또한, 보호 대상인 월드 데이터가 손상되지 않도록 백업을 수행합니다. 서버 자체는 하나의 jar 파일과 하나의 java 명령어로 구성됩니다. 친구들이 1년 동안 플레이할 수 있는 서버와 첫 주말에 중단될 서버를 결정짓는 요소는 바로 그 명령어이며, 본 가이드는 이 부분을 다룹니다.
비용을 지불하기 전 두 가지 주의 사항이 있습니다. 첫째, Minecraft는 메모리 소모가 크고 주로 싱글 스레드로 동작합니다. 1 GB VPS로는 원활한 플레이가 불가능하며, 느린 코어 4개보다 빠른 코어 1개가 더 효율적입니다. 둘째, 이 가이드는 Java Edition 기준입니다. 콘솔, 스마트폰, Windows Bedrock 앱을 사용하는 Bedrock 플레이어는 Java 서버에 접속할 수 없습니다. Bedrock 사용자가 접속하려면 UDP 19132 포트에서 작동하는 다른 서버 소프트웨어나 Geyser 플러그인이 필요하며, 이는 본 가이드의 범위를 벗어납니다.
root 또는 sudo 권한이 있는 신규 Ubuntu 24.04 KVM VPS와 약 30분의 시간이 필요합니다.
Sizing: 친구용 서버에 실제로 필요한 사양
가장 중요한 수치는 RAM 용량입니다. 실제 권장 사양은 모드팩 포럼의 수치보다 낮습니다.
- 2 GB: 적절한 view distance 설정 시 2~5명의 플레이어가 vanilla 서버를 플레이할 수 있습니다. 플레이는 가능하지만 여유 공간은 없습니다.
- 4 GB: 친구용 서버로 적합한 크기입니다. Paper 서버에서 몇 개의 plugin을 사용하며 10명 정도의 동시 접속자를 수용할 수 있고, OS를 위한 여유 메모리도 남습니다.
- 8 GB 이상: 모드팩 또는 20명 이상의 플레이어를 위한 사양입니다. 게임의 메인 루프가 단일 스레드에서 실행되므로 single-core CPU 속도도 중요합니다.
플레이어가 탐험을 진행함에 따라 디스크 용량도 증가합니다. 탐험이 많이 이루어진 survival 월드는 수 GB에 달할 수 있습니다. 월드 데이터와 백업을 위한 여유 공간을 확보하십시오.
Vanilla or Paper? Paper는 official jar을 대체할 수 있는 소프트웨어입니다. 동일한 월드와 client를 사용하며, client-side mod가 필요하지 않습니다. Paper는 chunk loading, entity ticking, hoppers와 같이 가장 느린 서버 경로를 재작성하며 plugin API를 추가합니다. Vanilla를 사용해야 하는 유일한 경우는 Paper의 최적화가 기술적인 redstone farm의 메커니즘을 변경할 수 있기 때문입니다. 그 외의 경우에는 Paper가 GB당 더 많은 플레이어를 수용할 수 있습니다. 아래의 모든 설정은 두 환경 모두에서 작동합니다.
Step 1: Java 21 설치
Minecraft 1.20.5 및 이후 모든 릴리스(1.21.x 전체)는 Java 21을 필요로 합니다. Ubuntu 24.04는 기본 저장소에서 이를 제공합니다. headless 빌드는 서버에서 사용하지 않는 데스크톱 라이브러리를 제외합니다.
sudo apt update && sudo apt install -y openjdk-21-jre-headless
java -version올바른 결과: 첫 번째 줄에 openjdk version "21.0.x"가 표시되어야 합니다. 만약 17 또는 11이 표시된다면, 다른 JRE가 설치되어 우선순위를 점유하고 있는 상태입니다. sudo update-alternatives --config java을 사용하여 이를 수정하고 java-21이 포함된 항목을 선택하십시오.
이 확인 단계를 건너뛰면 나중에 Minecraft 서버에서 가장 빈번하게 발생하는 오류를 마주하게 됩니다. Java 17을 사용하는 경우, 서버 jar는 즉시 다음 오류와 함께 종료됩니다.
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been
compiled by a more recent version of the Java Runtime (class file version 65.0),
this version of the Java Runtime only recognizes class file versions up to 61.0숫자는 버전 불일치를 나타냅니다. class file version 65.0은 Java 21이며, 61.0은 Java 17, 60.0은 Java 16입니다. 어떤 숫자가 표시되든 해결 방법은 동일합니다. 최신 JRE를 설치한 후 update-alternatives를 다시 실행하십시오.
Step 2: 전용 사용자 사용, root 사용 금지
서버는 포트에 접속 가능한 모든 사용자의 플러그인 코드를 실행하고 네트워크 입력을 분석합니다. 보안 사고 발생 시, root 권한으로 실행 중이면 VPS 전체가 탈취됩니다. 반면 minecraft 권한으로 실행 중이면 게임 월드만 탈취됩니다.
sudo adduser --system --group --home /opt/minecraft minecraft--system를 사용하여 SSH 로그인이 불가능하고 /opt/minecraft를 홈 디렉토리 및 작업 디렉토리로 사용하는 비밀번호 없는 계정을 생성합니다. 이후 서버에서 실행되는 모든 명령은 이 사용자의 권한으로 실행됩니다.
Step 3: 공식 소스에서 server jar 다운로드
server jar를 제공하는 곳은 다음 두 곳뿐이어야 합니다. Vanilla 버전은 minecraft.net의 공식 server download 페이지를, Paper 버전은 papermc.io의 downloads 페이지를 이용하십시오. server jar를 재포장하여 배포하는 제3자 "download hubs"는 지속적인 malware 유포 경로입니다. server jar는 인터넷에 연결된 서버에서 24시간 내내 실행될 임의의 코드이기 때문입니다.
공식 페이지에서 현재 build의 download link를 복사하십시오. (URL은 버전과 build마다 변경되므로, 여기에 고정된 URL을 적어둘 수 없습니다.) 그 다음 다음을 수행하십시오:
cd /opt/minecraft
sudo -u minecraft wget -O server.jar 'PASTE-THE-COPIED-URL-HERE'정상 결과: ls -lh /opt/minecraft/server.jar으로 확인된, minecraft 소유의 약 50 MB 크기 server.jar.
Step 4: 첫 실행, EULA 동의, 그리고 관리자 권한 획득
systemd를 설정하기 전에 먼저 대화형 모드로 서버를 한 번 실행하십시오. 첫 실행 시에는 라이브 콘솔에서만 가능한 두 가지 작업이 필요합니다.
cd /opt/minecraft
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar nogui서버는 몇 초 내에 종료됩니다. Paper가 패치를 적용하는 데 약간의 시간이 추가로 소요될 수 있습니다. 로그는 모든 사용자가 마주하게 되는 다음 줄과 함께 종료됩니다:
[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.이것은 에러가 아니라 라이선스 확인 단계입니다. 실행 과정에서 jar 파일 옆에 eula.txt 파일이 생성되었습니다. 아직 읽지 않았다면 링크된 EULA를 읽으십시오. 그 다음 다음 플래그를 설정하십시오:
sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txt동일한 java 명령어를 다시 실행하십시오. 이번에는 월드 데이터를 생성하며, 첫 부팅 시 1~2분 정도 소요됩니다. 이후 다음 상태로 대기합니다:
[Server thread/INFO]: Done (9.204s)! For help, type "help"이제 라이브 콘솔을 사용할 수 있습니다. 두 번째 작업을 수행하십시오. op YourMinecraftName(게임 내 사용자 이름)을 입력하면 서버가 해당 사용자를 ops.json에 등록합니다. 이렇게 하면 나중에 콘솔이 연결되지 않은 상태에서도 게임 내부에서 모든 관리자 명령어를 실행할 수 있습니다. 작업이 끝나면 stop을 입력하여 데이터를 저장하고 정상적으로 종료하십시오.
Step 5: server.properties, and why online-mode stays true
첫 실행 시 server.properties 파일도 생성됩니다. 대부분의 기본 설정은 적절합니다. 다음 항목들은 신중하게 결정해야 합니다:
online-mode=true
white-list=true
enforce-whitelist=true
view-distance=8
max-players=10
motd=A private server for people I actually knowonline-mode=true 설정은 서버가 접속하는 모든 사용자 이름을 Mojang의 session servers와 대조하여, 플레이어가 해당 계정의 소유자임을 확인하도록 합니다. 이를 false으로 설정하면(일명 "cracked server" 모드) 서버는 클라이언트가 주장하는 사용자 이름을 그대로 신뢰합니다. 즉, 타인이 귀하의 계정 이름을 사용하여 접속할 수 있습니다. op 권한과 whitelist는 사용자 이름을 기준으로 작동하므로, 사칭 사용자가 귀하의 권한을 가질 수 있습니다. 이 설정을 false로 설정하는 유일한 정당한 경우는 Velocity와 같이 플레이어를 직접 검증하는 인증 프록시를 사용하는 경우뿐입니다. 일반적인 서버에서는 반드시 true로 유지해야 합니다.
view-distance은 이 파일에서 성능에 가장 큰 영향을 미치는 설정입니다. CPU와 RAM 사용량은 이 값의 제곱에 비례하여 증가합니다. VPS 환경에서는 8이 적절한 기본값이며, vanilla 기본값인 10은 부하가 눈에 띄게 큽니다.
white-list=true과 enforce-whitelist=true을 설정하면 외부인의 접속을 차단합니다. 아래 보안 섹션에서 설명하듯, 이는 필수 사항입니다. op 권한을 가진 상태에서 게임 내 /whitelist add TheirName 명령어를 사용하여 플레이어를 추가하십시오.
Step 6: memory flags — 왜 -Xms와 -Xmx를 동일하게 설정해야 하는가
JVM은 -Xms(시작 크기)와 -Xmx(최대 크기) 사이의 범위 내에서 heap을 할당합니다. 전용 게임 서버를 운영한다면 두 값을 동일하게 설정하십시오. heap은 어차피 최대 크기에 도달하며, 단계적으로 크기를 늘리면 플레이 중에 garbage-collector의 부하를 가중시킵니다. 4 GB VPS를 사용하는 경우 권장 설정은 다음과 같습니다:
/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui-Xmx은 프로세스가 사용하는 전체 메모리가 아닙니다. JVM은 thread stacks, JIT caches, direct buffers와 같은 off-heap 오버헤드로 약 0.5 GB 이상의 메모리를 추가로 사용하며, Ubuntu 운영체제 자체도 여유 공간이 필요합니다. 권장 규칙은 다음과 같습니다: -Xmx은 VPS RAM에서 1 GB를 뺀 값 이하로 설정하십시오. 이 값을 초과하면 다음 두 가지 오류 중 하나가 발생합니다. 초기 할당에 실패하면 서버는 다음 메시지와 함께 시작되지 않습니다:
Error: Could not reserve enough space for object heap이 오류는 즉각적으로 나타납니다. 더 심각한 경우는 서버가 정상적으로 시작된 후, 부하가 걸려 heap이 가득 찼을 때 발생합니다. 이때 커널의 OOM killer가 시스템에서 가장 많은 메모리를 사용하는 프로세스인 JVM을 종료합니다. 이 경우 서버 로그에는 아무것도 남지 않습니다. 증거는 sudo dmesg | grep -i oom에서 확인할 수 있으며, Out of memory: Killed process 1234 (java)과 같은 라인이 기록됩니다. 서비스가 "무작위로" 재시작된다면, 해당 로그를 먼저 확인하고 -Xmx 값을 낮추십시오.
Paper 프로젝트는 Aikar's flags를 권장합니다. 이는 대용량 heap에서 garbage-collection 일시 정지 현상을 완화하도록 최적화된 G1GC 설정(-XX:+UseG1GC -XX:MaxGCPauseMillis=200 및 기타 옵션들)입니다. Paper 공식 문서를 참조하여 전체 명령어를 생성하십시오. 2–4 GB heap 환경에서 성능 향상은 미미할 수 있으나, 해당 flag를 사용해도 시스템에 무리가 가지는 않습니다.
Step 7: Restart=on-failure 설정이 포함된 systemd unit
수동으로 실행한 서버는 SSH 세션이 종료되면 함께 종료되며, 재부팅 후에도 실행되지 않습니다. /etc/systemd/system/minecraft.service를 다음과 같이 작성하십시오.
[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now minecraft
systemctl status minecraft
journalctl -u minecraft -f정상 결과: status에 active (running)이 표시되어야 하며, 서버 콘솔 출력을 포함하는 journal은 다시 Done 라인에서 종료되어야 합니다.
해당 unit에는 의도적인 설정이 두 가지 포함되어 있습니다. Restart=on-failure은 충돌 발생 시 서버를 재시작하지만, 정상적인 stop 시에는 재시작하지 않으므로 유지보수가 가능합니다. 또한 TimeoutStopSec=120은 중요합니다. systemctl stop은 SIGTERM을 전송하며, Minecraft 서버는 이를 수신하여 종료 전 모든 월드를 저장합니다. 대규모 월드의 경우 저장에 시간이 소요됩니다. systemd의 기본 타임아웃은 저장 중인 JVM에 SIGKILL을 보낼 수 있으며, 이것이 region 파일이 손상되는 직접적인 원인입니다. 시간을 2분으로 설정하십시오.
서비스가 반복적으로 재시작(flapping)되고 journal에 다음 내용이 표시되는 경우:
[Server thread/WARN]: **** FAILED TO BIND TO PORT!
[Server thread/WARN]: The exception was: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
[Server thread/WARN]: Perhaps a server is already running on that port?25565 포트를 이미 다른 프로세스가 사용 중인 것입니다. 대부분의 경우 다른 SSH 세션에서 이전 포그라운드 실행 프로세스가 여전히 살아있는 상태입니다. sudo ss -tlnp | grep 25565으로 해당 프로세스를 찾아 종료하십시오. 하나의 포트에서 두 개의 서버를 동시에 실행해서는 안 됩니다.
Step 8: 양쪽 방화벽에서 25565 포트 개방
Minecraft Java는 TCP 25565 포트만 사용합니다 (UDP는 선택 사항인 query protocol이며 기본적으로 비활성화되어 있습니다). VPS에서는 다음을 수행하십시오:
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enable이것이 첫 번째 방화벽 설정입니다. 대부분의 VPS 제공업체는 제어판에서 네트워크 레벨의 두 번째 방화벽을 운영하며, 사용자들이 이를 자주 누락합니다. 해당 방화벽에서도 TCP 25565를 개방하십시오. 두 방화벽 중 하나만 개방했을 때 발생하는 증상은 매우 불분명합니다. 클라이언트가 "Connecting to the server..." 상태에서 멈추며 Connection timed out: no further information 오류를 발생시킵니다. 패킷이 서버에 도달하지 않으므로 거부(refusal)나 서버 오류, journal 로그 기록이 전혀 나타나지 않습니다. VPS 외부의 기기에서 nc -vz your.server.ip 25565를 사용하여 확인하십시오. succeeded 결과가 나오면 양쪽 방화벽이 모두 개방된 것이며, 연결이 멈추면 최소 하나가 닫혀 있는 것입니다.
ufw를 설정하는 동안 동일한 서버가 공용 IP로 SSH를 실행하게 되며, 몇 시간 이내에 brute-force 로그가 발생하기 시작합니다. 잊기 전에 Ubuntu 24.04에서 SSH용 Fail2ban 설정하기를 완료하십시오.
이제 연결을 시도하십시오: Multiplayer, Direct Connection, 서버 IP를 입력합니다. Step 4에서 관리자 권한을 획득했으므로 게임 내 명령어를 즉시 사용할 수 있습니다. 각 플레이어에게는 /whitelist add FriendName을, 계획에 따라 /gamemode creative을 적용하십시오.
Step 9: whitelist, because the internet finds port 25565
Minecraft server를 인터넷에 공개하는 것은 이론적인 위험이 아닙니다. 대규모 스캐너가 IPv4 공간 전체에서 port 25565를 지속적으로 검색합니다. 취미 수준의 괴롭힘 프로젝트들은 이 방식으로 수십만 개의 공개 서버를 찾아냈습니다. whitelist가 설정되지 않은 서버에는 며칠, 때로는 몇 시간 내에 원치 않는 방문자가 나타납니다. Step 5에서 다룬 whitelist가 해결책입니다. online-mode=true은 신원을 증명하며, whitelist는 사용자가 선택한 신원만 접속을 허용합니다. 이 두 가지 조합이 전체 보안 모델이며, 친구들과 함께하는 서버에는 충분합니다.
게임을 실행하지 않고 콘솔에 접속하는 방법(스크립트 백업, cron job 등)을 위해 server.properties(enable-rcon=true, 강력한 rcon.password, port 25575)에서 RCON을 활성화하십시오. 그 다음 VPS 자체에서 GitHub 소스를 사용하여 작은 mcrcon 클라이언트를 빌드하십시오. 이 클라이언트는 Ubuntu의 repos에 포함되어 있지 않습니다. 방화벽에서 25575 port를 절대 개방하지 마십시오. RCON은 비밀번호를 평문으로 전송하므로 loopback 전용으로 유지해야 합니다.
Step 10: 데이터 손상을 방지하는 백업 방법
가장 중요한 규칙은 서버가 데이터를 쓰는 동안 world 디렉토리를 복사하지 않는 것입니다. 플레이 중에는 region 파일이 지속적으로 다시 작성됩니다. tar가 쓰기 작업과 동시에 실행되면 데이터가 절반만 작성된 chunk가 포함된 아카이브가 생성됩니다. 백업을 복구하는 시점에 로그에는 chunk 로딩 오류가 발생하며 지형에 구멍이 생깁니다. 이를 방지하는 두 가지 방법이 있습니다.
Stop-copy-start 방식은 간단하지만 약 1분간의 다운타임이 발생합니다:
sudo systemctl stop minecraft
sudo mkdir -p /opt/backups
sudo tar czf /opt/backups/world-$(date +%F-%H%M).tgz \
-C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraft(Paper는 차원을 world, world_nether, world_the_end로 분리합니다. vanilla 서버는 모든 데이터를 world에 저장하므로, 나머지 두 디렉토리도 해당 위치에 저장하십시오.)
Save-off 방식은 실행 중인 상태에서 백업합니다. RCON을 통해 save-off(autosaver 중지)를 실행한 후, save-all flush(모든 데이터를 디스크에 강제 저장 후 대기)를 실행합니다. 그 다음 tar 파일을 생성하고 save-on를 실행하십시오. 이 방식은 새벽 5시에 cron에 등록하여 사용하기 적합합니다.
어떤 방식을 사용하든 서버와 동일한 VPS에 저장된 백업은 진정한 백업이 아닙니다. scp 또는 rclone을 사용하여 아카이브를 외부로 전송하고, 최소 두 개 이상의 백업본을 유지하십시오. 또한 장애 발생 시 콘솔을 계속 지켜볼 수 없으므로, 포트에 대한 외부 체크를 설정하십시오. 다른 서버의 Uptime Kuma에서 25565 포트로 TCP 체크를 수행하면 플레이어보다 먼저 서버 다운 여부를 알 수 있습니다.
Plugins and upgrades
Paper에서 plugin 설치는 /opt/minecraft/plugins/ 폴더에 jar 파일을 넣고 서버를 재시작하는 것으로 완료됩니다. plugin은 반드시 공식 프로젝트 페이지(Hangar, Modrinth, SpigotMC)에서만 다운로드하십시오. 서버 jar 파일과 마찬가지로, 모든 plugin은 minecraft 사용자로 실행되는 임의의 코드이기 때문입니다.
서버 업그레이드 절차는 다음과 같습니다: 서버 중지, 백업 수행, server.jar 파일을 새 Minecraft 버전용 빌드로 교체, 서버 시작. 주의사항이 두 가지 있습니다. 월드 업그레이드는 단방향입니다. 최신 버전에서 연 월드는 이전 버전에서 열 수 없으므로, 백업이 필수적입니다. 또한 plugin은 Minecraft 새 버전 출시 후 며칠 또는 몇 주 뒤에 업데이트되는 경우가 많습니다. 출시 당일에 바로 업데이트를 시도하기 전에 호환성을 확인하십시오.
버전 고정(version pinning), EULA 동의, memory flags를 환경 변수로 관리하는 container 방식을 선호한다면, 널리 사용되는 itzg/minecraft-server 이미지를 사용하십시오. 이 이미지는 VPS에서 Docker Compose를 사용하여 동일한 방화벽 및 백업 규칙을 적용한 Paper 서버를 실행합니다.
FAQ
Minecraft server에 필요한 RAM 용량은 얼마인가요?
2 GB는 2–5명의 플레이어를 위한 vanilla 서버에 적합합니다. 플러그인을 몇 개 사용하는 10명 규모의 Paper 서버에는 4 GB가 적당합니다. 모드팩을 사용하거나 20명 이상의 플레이어가 접속하는 경우에는 8 GB 이상이 필요합니다. VPS 사양과 관계없이 -Xmx는 전체 RAM에서 1 GB를 뺀 값으로 설정하십시오. JVM은 heap 이외의 메모리도 사용하므로, 설정을 초과하면 Error: Could not reserve enough space for object heap 또는 조용한 OOM kill이 발생합니다.
친구들이 Minecraft 서버에 접속할 수 없습니다.
클라이언트가 Connection timed out: no further information 상태로 멈추는 현상은 대부분 방화벽 문제입니다. VPS의 ufw와 제공업체 제어판의 네트워크 방화벽 두 곳을 확인해야 합니다. 두 곳 모두 TCP 25565 포트가 열려 있어야 합니다. 서버 내부에서 sudo ss -tlnp | grep 25565 명령어로 서버가 대기 중인지 확인한 후, 외부에서 nc -vz your.server.ip 25565로 테스트하십시오.
server.properties에서 online-mode=false로 설정해야 하나요?
아니요. online-mode=false 설정 시 서버가 Mojang 인증을 완전히 건너뜁니다. 이로 인해 누구나 임의의 사용자 이름으로 접속할 수 있으며, 관리자(op)의 이름을 사용하여 권한을 탈취할 수 있습니다. 또한 스킨과 고유 UUID가 손상됩니다. 유일하게 허용되는 경우는 Velocity와 같이 플레이어를 직접 검증하는 인증 프록시를 사용하는 경우뿐입니다. 일반적인 서버라면 true 상태를 유지하십시오.
Paper가 vanilla Minecraft 서버보다 더 나은가요?
대부분의 사용자에게 그렇습니다. Paper는 vanilla 월드를 그대로 불러오고, 수정되지 않은 클라이언트의 접속을 허용하며, 엔티티 틱과 청크 로딩 효율이 훨씬 뛰어난 jar 파일입니다. 또한 플러그인 생태계를 지원합니다. 예외는 vanilla와 완전히 동일한 동작이 필요한 기술적 레드스톤 커뮤니티입니다. 일부 Paper 최적화는 vanilla의 동작을 변경할 수 있습니다. 소규모 VPS를 사용한다면 Paper의 효율성은 추가 RAM을 확보하는 것과 같습니다.
월드 데이터 손상 없이 Minecraft 월드를 백업하는 방법은 무엇인가요?
서버가 데이터를 기록하는 동안 월드 디렉토리를 압축하지 마십시오. region-file 쓰기 작업과 압축 작업이 동시에 진행되면 복구 시점에 청크가 손상된 것을 발견하게 됩니다. 서버를 중지한 후 월드 디렉토리를 tar로 압축하고 다시 시작하거나, save-off, save-all flush, tar, save-on를 사용하여 서버를 가동 중인 상태로 백업하십시오. 그 다음 압축 파일을 VPS 외부로 이동시키십시오.