SameOS ~/tools/terraria-linux-dedicated-server.md

Terraria 1.4.5.8 Linux 전용 서버 구축과 월드 운영

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

Terraria 전용 서버는 가볍지만 월드 경로를 상대경로로 두어 업데이트 폴더 안에 묻어 버리거나, TCP 포트 대신 UDP만 열거나, 콘솔을 닫으며 저장 기회를 주지 않는 실수가 자주 생깁니다. 이 글은 공식 1.4.5.8 Linux 서버를 기준으로 바이너리와 월드를 분리하고 설정 파일 하나로 반복 기동하는 방법을 설명합니다.

공식 ZIP과 전용 계정 준비

2026-08-29 공식 위키가 안내하는 서버 ZIP은 1.4.5.8 빌드 1458입니다. 버전 번호가 바뀌면 URL과 압축 내부 디렉터리도 바뀌므로 설치 전 공식 Terraria 위키의 Downloads 항목을 다시 확인합니다. 프로그램은 root가 아닌 terraria 계정으로 실행합니다.

sudo apt update
sudo apt install -y wget unzip
sudo useradd --system --create-home --home-dir /srv/terraria \
  --shell /usr/sbin/nologin terraria
sudo install -d -o terraria -g terraria \
  /srv/terraria/releases /srv/terraria/worlds /srv/terraria/backups

wget -O /tmp/terraria-server-1458.zip \
  'https://terraria.org/api/download/pc-dedicated-server/terraria-server-1458.zip'
sudo -u terraria unzip /tmp/terraria-server-1458.zip \
  -d /srv/terraria/releases
sudo chmod 750 /srv/terraria/releases/1458/Linux/TerrariaServer.bin.x86_64

serverconfig.txt로 월드와 포트 고정

대화형 마법사로도 시작할 수 있지만 재부팅 때 같은 월드와 설정을 보장하려면 config 파일을 사용합니다. world를 릴리스 폴더 밖의 절대경로로 지정하면 새 서버 ZIP을 풀어도 저장 데이터가 함께 덮이지 않습니다.

autocreate는 world 파일이 없을 때만 새 월드를 만듭니다. 기존 월드 경로의 오타가 있으면 빈 월드가 생성돼 데이터가 사라진 것처럼 보일 수 있으므로 처음 만든 뒤 world 파일 이름을 다시 확인하세요. 참여 암호는 공개 예시와 다르게 바꿉니다.

# /srv/terraria/serverconfig.txt
world=/srv/terraria/worlds/friends.wld
autocreate=2
worldname=Friends World
difficulty=1
maxplayers=8
port=7777
password=CHANGE_THIS_PASSWORD
motd=Welcome. Ask before changing shared builds.
secure=1
upnp=0
language=en-US
priority=1

한 번 직접 기동해 월드 확인

systemd에 넣기 전 terraria 사용자로 한 번 실행해 설정 파싱, 월드 생성과 포트를 확인합니다. 콘솔에서 save를 입력하면 저장하고 exit는 저장 후 종료합니다. exit-nosave는 마지막 변경을 버리므로 운영 종료 명령으로 사용하지 않습니다.

cd /srv/terraria/releases/1458/Linux
sudo -u terraria ./TerrariaServer.bin.x86_64 \
  -config /srv/terraria/serverconfig.txt

# Terraria 콘솔에서
save
exit

ls -lh /srv/terraria/worlds/friends.wld

systemd와 TCP 7777

Terraria 기본 포트는 TCP 7777입니다. LAN에서 먼저 접속하고 외부 친구가 필요할 때만 라우터와 호스트 방화벽에 같은 TCP 포트를 엽니다. UPnP 자동 개방은 끄고 운영자가 규칙을 명시하는 편이 문제를 추적하기 쉽습니다.

SIGINT 종료가 현재 빌드에서 월드를 정상 저장하는지 테스트 월드로 확인한 뒤 서비스를 믿어야 합니다. journalctl에 저장 완료가 보이지 않거나 월드 수정 시간이 바뀌지 않으면 자동 중지 뒤 백업을 진행하지 말고 콘솔의 save와 exit 흐름을 사용하세요.

# /etc/systemd/system/terraria.service
[Unit]
Description=Terraria Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=terraria
Group=terraria
WorkingDirectory=/srv/terraria/releases/1458/Linux
ExecStart=/srv/terraria/releases/1458/Linux/TerrariaServer.bin.x86_64 \
  -config /srv/terraria/serverconfig.txt
KillSignal=SIGINT
TimeoutStopSec=90
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable --now terraria
sudo journalctl -u terraria -n 100 --no-pager
sudo ss -ltnp | grep ':7777'
sudo ufw allow 7777/tcp

월드 백업은 서비스 정지 후

월드는 /srv/terraria/worlds에 따로 있으므로 정상 종료가 확인된 뒤 이 디렉터리와 serverconfig.txt를 묶습니다. .wld.bak 파일 하나에만 의존하지 말고 날짜가 다른 압축본과 다른 저장장치 복사본을 둡니다. 참여 암호가 포함된 config 백업은 공개 다운로드 폴더에 두지 않습니다.

sudo systemctl stop terraria
sudo -u terraria tar -C /srv/terraria -czf \
  /srv/terraria/backups/terraria-$(date +%F-%H%M).tar.gz \
  worlds serverconfig.txt
sudo systemctl start terraria

gzip -t /srv/terraria/backups/terraria-YYYY-MM-DD-HHMM.tar.gz
tar -tzf /srv/terraria/backups/terraria-YYYY-MM-DD-HHMM.tar.gz

새 버전으로 옮기는 순서

검증 범위와 공식 참고자료

공식 Terraria 위키에서 1.4.5.8 서버 다운로드, Linux x86_64 실행 파일, 기본 TCP 7777, world 경로와 콘솔 저장 명령을 확인했습니다. 빌드가 바뀌면 공식 링크를 재확인해야 하며 운영 월드는 사용하지 않았습니다.

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

게임 서버 백업 복구 훈련 Valheim 리눅스 서버 Minecraft Bedrock 리눅스 서버