이것은 우리 게임 서버용 VPS 페이지의 실전 동반자입니다. 저쪽은 어떤 요금제가 맞는지에 관한 것; 이쪽은 실제로 서버를 세우는 것에 관한 것입니다 — Paper, 제대로 된 systemd 서비스, RAM을 아껴 주는 설정, 방화벽, 백업. 끝날 무렵엔 크래시를 견디고, 재부팅을 견디고, 조용히 박스 전체를 먹지 않는 Minecraft 서버를 갖게 됩니다.
시작 전 솔직한 메모 하나: 활용 사례 페이지의 CPU와 RAM 한계는 여전히 적용됩니다. Small이나 Medium 요금제의 Paper는 친구 그룹에는 훌륭합니다. 큰 커뮤니티용 150모드 팩은 이 요금제의 용도가 아니며, 어떤 설정도 그것을 고치지 못합니다. 그게 분명해졌으니, 만들어 봅시다.
1. Java 설치
Paper는 Java에서 돕니다. headless JDK를 설치하세요 — 현행 Minecraft 버전이면 Java 21입니다:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
Minecraft 버전이 더 오래됐다면, 그것이 요구하는 Java를 설치하세요(1.18-1.20 시대는 17). 버전이 틀리면 서버 로그가 큰 소리로 불평합니다.
2. 서버 디렉터리와 Paper 준비
서버를 root가 아니라 자신의 사용자로 돌리세요 — 뭔가 잘못되면 폭발 반경을 작게 하고 싶으니까요.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
당신의 Minecraft 버전용 Paper jar를 내려받고(downloads 페이지에서 URL 가져오기), server.jar로 저장하세요:
sudo -u minecraft wget -O server.jar "PASTE_PAPER_DOWNLOAD_URL_HERE"
설정 파일을 생성하려 한 번 돌리고, 그다음 EULA에 동의하세요:
sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# 즉시 멈추며 EULA 동의를 요청합니다
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt
-Xmx3G는 JVM 힙 상한입니다. 4 GB Small 요금제에서 JVM에 ~3 GB면 OS에 숨 쉴 여지를 남깁니다. 전체 RAM으로 설정하지 마세요 — JVM은 힙 너머 오버헤드가 있고, OOM 킬러는 흥정하지 않습니다.
3. RAM을 아끼도록 server.properties 조정
여기서 공짜로 성능을 삽니다. server.properties를 열고 설정하세요:
view-distance=8
simulation-distance=6
max-players=10
view-distance— 각 플레이어 주위에 로드해 두는 청크. 기본 10은 넉넉함; 8(또는 6도)은 RAM과 CPU를 눈에 띄게 줄이고 거의 아무도 차이를 알아채지 못합니다.simulation-distance— 엔티티, 레드스톤, 작물 성장이 실제로 얼마나 멀리 tick하는지. 낮을수록 쌉니다. 6이 온당한 출발점입니다.max-players— 실제 예상하는 수로 설정해, 갑작스러운 군중이 RAM 예산을 날리지 않게.
싱글 스레드 현실을 잊지 마세요: Minecraft의 tick은 하나의 코어에 기댑니다. TPS가 떨어지면 RAM을 늘려도 도움이 안 됩니다 — simulation-distance와 몹 상한을 낮추는 것이 도움이 됩니다.
4. systemd 서비스로 돌리기
이것이 "한 번 돌린 jar"를 "서버"로 바꾸는 부분입니다. /etc/systemd/system/minecraft.service를 만드세요:
[Unit]
Description=Minecraft Paper Server
After=network.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
[Install]
WantedBy=multi-user.target
Restart=on-failure가 중요한 줄 — JVM이 크래시하면 systemd가 10초 안에 되돌립니다. SuccessExitStatus=... 143은 정상 SIGTERM 종료를 실패로 취급하지 않게 합니다. 활성화하고 시작:
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f # 실시간 로그
이제 부팅 시 시작하고, 크래시에 재시작하고, 로그는 journald로 갑니다.
5. 방화벽 포트 열기
Minecraft는 기본으로 TCP 25565에서 대기합니다. 그것만 여세요:
sudo ufw allow 25565/tcp
sudo ufw enable
친구들에게 서버의 IP를 주세요(포트를 바꿨다면 :25565도). 필요 없는 것은 아무것도 열지 마세요 — 자신의 박스를 돌리는 전체 요점은 무엇이 닿을 수 있는지를 당신이 정한다는 것입니다.
6. 월드 백업
그러지 않은 날을 후회하기 전까지 사람들이 건너뛰는 것. 단순한 스크립트:
#!/bin/bash
cd /opt/minecraft/server
TS=$(date +%Y%m%d-%H%M)
tar czf /opt/minecraft/backups/world-$TS.tar.gz world world_nether world_the_end
cron에서 돌리고, 그리고 — 이것이 중요한 절반 — 아카이브를 서버 밖으로 복사하세요, 오브젝트 스토리지나 다른 기기로. 월드와 같은 디스크의 백업은 디스크와 함께 죽습니다. 월드가 중요하면 tar 전에 서버 콘솔에서 save-off와 save-all을 실행해 쓰기 도중 스냅샷을 찍지 않게 하세요.
그게 전부입니다
Java, Paper, 조정한 설정, 자동 재시작하는 systemd 서비스, 방화벽 포트, 그리고 어딘가 다른 곳에 사는 백업. 그것이 그렇게 행동하는 Minecraft 서버입니다.
아직 박스가 없다면: 요금제를 고르세요 — 작은 그룹에는 Small($8), 열 명을 밀어붙인다면 Medium($12) — USDC나 USDT로 결제하고(KYC 없음, 서류 없음), 약 60초 만에 root를 얻습니다. 그다음 이 페이지를 아래로 진행하세요. 그리고 솔직한 알림을 마지막으로 한 번 더: 이것은 친구들과의 vanilla나 Paper에는 알맞은 설정입니다. 큰 커뮤니티용 무거운 모드팩은 다른 하드웨어가 필요하고, 그것은 우리에게서 먼저 듣는 편이 낫습니다.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.