−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS
시작하기

VPS에 Minecraft 서버 세우기

2026년 7월 27일 · 3 분 읽기 · EQVPS Team

이것은 우리 게임 서버용 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에는 알맞은 설정입니다. 큰 커뮤니티용 무거운 모드팩은 다른 하드웨어가 필요하고, 그것은 우리에게서 먼저 듣는 편이 낫습니다.

FAQ

어떤 Java 버전이 필요한가요?

최근 Minecraft 버전은 Java 17 이상을 원하고; 최신은 Java 21을 원합니다. 당신의 Minecraft 버전이 요구하는 OpenJDK 빌드를 설치하세요 — 서버를 한 번 돌리면 Java 버전이 틀렸는지 명확히 알려줍니다. 결코 쓰지 않을 데스크톱 스택을 끌어오지 않도록 headless JRE/JDK를 쓰세요.

로그아웃한 뒤 서버를 어떻게 계속 돌리나요?

systemd 서비스로 돌리세요. start/stop/status 명령, journalctl을 통한 로그, JVM이 크래시할 때 자동 재시작, 부팅 시 시작을 줍니다 — 다시 붙기를 기억해야 하는 screen 세션보다 훨씬 낫습니다. 서비스 파일은 가이드에 있습니다.

JVM에 RAM을 얼마나 줘야 하나요?

-Xmx를 요금제 총 RAM보다 조금 아래로 설정해 OS가 얼마간 갖게 하세요 — 4 GB Small 요금제에서는 JVM에 약 3 GB가 합리적입니다. -Xmx를 전체 RAM과 같게 설정하지 마세요; OS와 JVM 자신의 오버헤드에 여유가 필요하고, 아니면 OOM 리퍼에 죽습니다.

월드를 어떻게 백업하나요?

서버를 멈추고(또는 먼저 save-off/save-all 실행), 월드 폴더를 tar하고, 아카이브를 박스 밖으로 복사하세요 — 오브젝트 스토리지나 다른 서버로. cron에 올리세요. 월드와 같은 디스크에 있는 백업은 백업이 아닙니다; 디스크와 함께 죽습니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.