SameOS ~/tools/minecraft-bedrock-linux-server.md

Minecraft Bedrock Dedicated Server를 Ubuntu Linux에 안전하게 설치하기

작성·공식 문서 확인일 2026-08-29 · SameOS operator

자바 서버 글을 그대로 따라 해서는 Bedrock 서버가 열리지 않습니다. Bedrock Dedicated Server는 별도 바이너리와 설정 파일을 사용하고 기본 게임 포트도 UDP 19132입니다. 이 글은 공식 Linux 배포판이 지원하는 Ubuntu 22.04 이상을 기준으로, 압축 파일을 받은 뒤 전용 계정으로 실행하고 재부팅·백업·업데이트까지 이어지는 최소 운영 구성을 정리합니다.

Java 서버와 먼저 구분하기

Java Edition의 server.jar, Java 런타임, TCP 25565는 이 서버에 쓰이지 않습니다. Bedrock 전용 서버는 Windows, 모바일과 콘솔 계열의 Bedrock 클라이언트를 위한 공식 프로그램이며 Linux 패키지는 64비트 Ubuntu를 지원합니다. 공식 요구사항은 Ubuntu 22.04 LTS 이상, 광대역 연결, 소규모 기준 최소 1GB 이상의 여유 메모리이며 실제 월드와 인원에 따라 더 잡아야 합니다.

설치 파일은 Minecraft 공식 Bedrock 서버 다운로드 페이지에서 이용약관에 동의하고 받습니다. 제3자 미러의 오래된 ZIP 주소를 스크립트에 고정하면 업데이트 누락과 공급망 위험이 생기므로 공식 페이지에서 현재 Linux 파일을 내려받아 서버로 옮기는 방식을 권합니다.

전용 사용자와 설치 디렉터리 만들기

게임 서버를 root로 실행하지 않습니다. 전용 시스템 계정과 /srv 아래 작업 디렉터리를 만들고, 공식 페이지에서 받은 ZIP만 그 디렉터리에 풉니다. 아래 파일명은 예시이므로 실제 다운로드 이름에 맞춰 바꾸세요.

압축을 푼 직후에는 bedrock_server 실행 파일, server.properties, allowlist.json, permissions.json과 worlds 디렉터리가 같은 작업 디렉터리 안에 있게 됩니다. 설정과 월드가 실행 파일 옆에 생기므로 서비스의 WorkingDirectory가 중요합니다.

sudo apt update
sudo apt install -y unzip
sudo useradd --system --create-home --home-dir /srv/minecraft-bedrock \
  --shell /usr/sbin/nologin bedrock

# 공식 페이지에서 받은 Linux ZIP을 /tmp에 둔 뒤 실행
sudo -u bedrock unzip /tmp/bedrock-server-LINUX.zip -d /srv/minecraft-bedrock
sudo chmod 750 /srv/minecraft-bedrock/bedrock_server
sudo chown -R bedrock:bedrock /srv/minecraft-bedrock

server.properties의 최소 운영 설정

처음에는 공개 목록보다 허용 목록을 우선합니다. online-mode를 끄면 플레이어 신원을 검증하지 못하므로 인터넷 서버에서 false로 바꾸지 않습니다. allow-list를 켜고 allowlist.json에 실제 Xbox 사용자 이름을 추가한 뒤 시작하세요.

level-name은 worlds 아래 디렉터리 이름과 연결되므로 운영 후 함부로 바꾸면 새 월드가 생긴 것처럼 보일 수 있습니다. 포트도 라우터와 방화벽 양쪽에서 같은 값을 사용합니다.

# /srv/minecraft-bedrock/server.properties 중 핵심 항목
server-name=SameOS Bedrock
gamemode=survival
difficulty=normal
allow-cheats=false
max-players=8
online-mode=true
allow-list=true
server-port=19132
server-portv6=19133
level-name=Bedrock level

# 최소 허용 목록 예시: 실제 XUID를 모르면 이름만 넣고 서버가 확인하도록 시작
# /srv/minecraft-bedrock/allowlist.json
[
  {"name":"PLAYER_GAMERTAG","ignoresPlayerLimit":false}
]

systemd 등록과 UDP 포트 확인

BDS는 실행 디렉터리의 공유 라이브러리를 찾도록 LD_LIBRARY_PATH가 필요합니다. systemd의 WorkingDirectory와 환경 값을 명시하면 셸에서만 되고 서비스에서는 실패하는 문제를 줄일 수 있습니다. SIGINT로 종료 시간을 주고, 비정상 종료 때만 재시작하도록 설정합니다.

같은 집 안에서는 내부 IP로 먼저 접속을 확인한 뒤 외부 연결을 엽니다. Ubuntu 방화벽과 라우터에는 기본 IPv4 게임 포트인 UDP 19132를 전달합니다. TCP 규칙만 추가하는 실수가 가장 흔합니다.

# /etc/systemd/system/minecraft-bedrock.service
[Unit]
Description=Minecraft Bedrock Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=bedrock
Group=bedrock
WorkingDirectory=/srv/minecraft-bedrock
Environment=LD_LIBRARY_PATH=.
ExecStart=/srv/minecraft-bedrock/bedrock_server
KillSignal=SIGINT
TimeoutStopSec=60
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

# 적용
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft-bedrock
sudo journalctl -u minecraft-bedrock -n 80 --no-pager
sudo ss -lunp | grep ':19132'
sudo ufw allow 19132/udp

월드 백업과 안전한 업데이트

가장 단순하고 검증하기 쉬운 백업은 서비스를 정상 종료한 뒤 worlds, 설정, 허용 목록과 권한 파일을 함께 묶는 것입니다. 실행 중 파일 복사보다 다운타임이 조금 생기지만 쓰는 도중의 월드 파일을 섞을 위험이 작습니다. 백업 파일을 같은 디스크에만 두면 디스크 고장에는 도움이 되지 않으므로 복사본 하나는 다른 저장장치에 둡니다.

업데이트 때 새 ZIP을 기존 디렉터리 위에 바로 풀면 기본 설정 파일이 운영 파일을 덮을 수 있습니다. 별도 staging 디렉터리에 푼 뒤 서버 버전을 확인하고, 기존 worlds와 세 설정 파일을 복사한 후 전환하세요. 첫 접속과 월드 확인이 끝날 때까지 이전 디렉터리와 백업을 지우지 않습니다.

sudo systemctl stop minecraft-bedrock
sudo -u bedrock tar -C /srv/minecraft-bedrock -czf \
  /srv/minecraft-bedrock/bedrock-backup-$(date +%F-%H%M).tar.gz \
  worlds server.properties allowlist.json permissions.json
sudo systemctl start minecraft-bedrock

# 복구 훈련은 운영 폴더가 아닌 빈 임시 폴더에서 먼저 확인
mkdir /tmp/bedrock-restore-check
tar -xzf /srv/minecraft-bedrock/bedrock-backup-YYYY-MM-DD-HHMM.tar.gz \
  -C /tmp/bedrock-restore-check
find /tmp/bedrock-restore-check -maxdepth 2 -type f | head

예제의 백업 파일명은 실제 생성된 이름으로 교체하세요. 복구 확인이 끝난 임시 폴더만 삭제하고 운영 worlds 디렉터리에는 검증 전 덮어쓰지 마세요.

접속 실패를 좁히는 순서

서버가 뜨지 않았는데 포트포워딩부터 계속 바꾸면 원인을 찾기 어렵습니다. 프로세스, 로컬 포트, LAN 접속, 외부 접속 순서로 한 단계씩 확인하세요. 실제 공인 IP, 게이머태그, permissions.json의 XUID는 질문 글이나 스크린샷에 그대로 올리지 않는 편이 안전합니다.

검증 범위와 공식 참고자료

Minecraft 공식 Bedrock 다운로드 페이지의 2026년 Linux 요구사항과 설치 흐름을 확인했습니다. ZIP 직접 주소는 버전마다 바뀔 수 있어 고정하지 않았고, 실제 이용약관 동의와 다운로드는 공식 페이지에서 진행하도록 했습니다. 운영 월드에 대한 복구 실행은 하지 않았습니다.

SameOS 작성·번역·검수 원칙 보기

Java Edition 리눅스 서버와 비교 Java 서버 관리 프로토콜 월드 백업 복구 훈련