Games/돈스타브 투게더

[구버전] Linux(리눅스)에서 데디케이티드 서버 만들기 - 2015.08.29 수정

la Nube 2017. 7. 3. 11:23
반응형
운영체제가 윈도 또는 윈도 서버가 아닌 리눅스에서
데디케이티드 서버를 돌리는 경우에는
윈도/윈도 서버보다 쾌적한 환경에서 돌릴 수 있습니다.

다만, 리눅스라는 운영체제는 우리에게 익숙하지 않기 때문에,
다음의 내용은 리눅스에 익숙한 분들을 대상으로 합니다.

돈스타브 위키에서 참고하였으며, 실제 설치 과정에서 필요한 부분이 가감되어 있습니다.
http://dont-starve-game.wikia.com/wiki/Don%E2%80%99t_Starve_Together_Dedicated_Servers


------------------------------------------------------------------------------------------
 
정상적으로 실행됨을 확인한 리눅스 배포판
 - 우분투 서버 12.04 32/64비트 (Ubuntu Server 12.04 32/64bit)
 - 우분투 서버 14.04 32/64비트 (Ubuntu Server 14.04 32/64bit)

libcurl4-gnutls.so.4가 없어서 실행되지 않음을 확인한 리눅스 배포판
 - CentOS 5
32/64bit, CentOS 6 32/64bit, CentOS 7 64bit 등 레드햇/페도라 계열 리눅스

돈스타브 위키에 따르면 된다고 하나, 테스트해 본 적이 없는 리눅스 배포판
 - 데비안 7 위지 (Debian 7 Wheezy)
 - 젠투 64비트 (Gentoo 64bit)


서버용 리눅스가 아닌 데스크탑용 리눅스인 경우에는 GUI가 필요하다고 나와 있습니다.
데스크탑용 리눅스에서 GUI를 이용하여 실행되는가는 테스트한 적이 없습니다.

------------------------------------------------------------------------------------------


다음의 과정은 모두 우분투 서버 (Ubuntu Server)에 맞추어져 있습니다.
다른 리눅스 배포판의 경우에는 정상적인 실행을 보장할 수 없습니다.


1. 데디케이티드 서버를 설치하기 전에 준비물(?)이 있습니다.

32비트 리눅스인 경우에는 다음의 패키지를 설치합니다.

$ sudo apt-get update
$
sudo apt-get dist-upgrade && sudo apt-get upgrade && sudo apt-get autoremove
$ sudo apt-get install libgcc1
$ sudo apt-get install libcurl4-gnutls-dev:i386
$ sudo apt-get install wget screen tar
$ sudo reboot

 
64비트 리눅스의 경우에는 다음의 패키지를 설치합니다.

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$
sudo apt-get dist-upgrade && sudo apt-get upgrade && sudo apt-get autoremove
$ sudo apt-get install lib32gcc1
$ sudo apt-get install lib32stdc++6
$ sudo apt-get install libcurl4-gnutls-dev:i386
$ sudo apt-get install wget screen tar
$ sudo reboot


2. 스팀을 위한 사용자 계정(관리자 계정으로)을 작성하고, 그곳에 스팀CMD 폴더를 만듭니다.

$ sudo adduser steam
$ sudo adduser steam sudo

$ sudo su - steam
$ mkdir ~/steamcmd
$ cd ~/steamcmd



3. 스팀CMD를 다운로드 하여 압축을 해제합니다.

$ tar -xvzf steamcmd_linux.tar.gz



4. 스팀CMD를 실행하여 돈스타브 투게더 데디케이티드 서버를 다운로드 합니다.

$ ./steamcmd.sh

login anonymous
force_install_dir /home/steam/steamapps/DST
app_update 343050 validate
quit



5. update_dst.sh 를 작성하여 이후에 손쉽게 업데이트할 수 있도록 합니다.

$ cd /home/steam
$ vi update_dst.sh

#!/bin/sh
/home/steam/steamcmd/steamcmd.sh +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir /home/steam/steamapps/DST +app_update 343050 validate +quit
/home/steam/steamapps/DST/bin/dontstarve_dedicated_server_nullrenderer -only_update_server_mods -backup_logs



참고로 위 스크린샷은 오픈 SSH 서버의 윈도용 클라이언트 PuTTY 를 통하여 리눅스에 접속하여 찍었습니다.



6. update_dst.sh 에 권한을 부여하고, update_dst.sh 를 실행합니다.

$ chmod 700 update_dst.sh
$ ./update_dst.sh



7. start_dst.sh 를 작성하여 이후에 손쉽게 데디케이티드 서버를 실행할 수 있도록 합니다.

$ vi start_dst.sh

#!/bin/sh
cd /home/steam/steamapps/DST/bin
/usr/bin/screen -S "DST" /bin/sh -c './dontstarve_dedicated_server_nullrenderer -console -backup_logs'

 


참고로 위 스크린샷은 오픈 SSH 서버의 윈도용 클라이언트 PuTTY 를 통하여 리눅스에 접속하여 찍었습니다.




8. start_dst.sh 에 권한을 부여하고, start_dst.sh 를 실행하여 데디케이티드 서버를 실행합니다.

$ chmod 700 start_dst.sh
$ ./start_dst.sh

실행한 다음, c_shutdown() 를 입력하여 데디케이티드 서버를 정상적으로 종료합니다.



9. 방화벽을 열어야 합니다.

오픈 SSH 서버를 위해 22번 TCP 포트를,
데디케이티드 서버를 위해 10999번 UDP 포트를
방화벽에서 개방합니다.
스팀의 백업 포트인 8766 포트와 27016 포트는 필요 없습니다.

$ sudo apt-get install ufw
$ sudo iptables -F
$ sudo ufw enable
$ sudo ufw allow 22/tcp
$ sudo ufw allow 10999/udp
$ sudo ufw default deny
$ sudo ufw logging on
$ sudo service ufw restart

방화벽과 포트에 대한 내용은 기본으로 설정되어 있는 부분이므로,
보안을 위해 다른 포트로 변경할 수 있습니다.
22번 TCP 포트는 오픈 SSH 서버의 설정 파일에서,
10999번 UDP 포트는 아래 13번의 settings.ini 파일에서 수정 가능합니다.

만약, 리눅스를 사용하는 서버가 공유기를 사용하는 경우에는
22번 TCP 포트와 10999번 UDP 포트에 대하여 포트 포워딩이 필요합니다.



10. 오픈 SSH 서버를 설치합니다.

윈도에서 리눅스로 접속하기 쉽게,
그리고 윈도에서 리눅스로 파일을 전송하기 위하여
오픈 SSH 서버를 설치합니다.

$ sudo apt-get install openssh-server openssh-sftp-server



11. 윈도용 클라이언트로 리눅스로 접속합니다.

저는 윈도용 클라이언트로 PuTTY 를 사용합니다.

리눅스의 IP를 확인하여 22번 포트로 접속합니다.
IP는 다음의 명령어로 확인 가능합니다.

$ ifconfig



12. 윈도용 FTP 프로그램으로 리눅스로 파일을 보냅니다. (1)

저는 윈도용 FTP 프로그램으로 FileZilla 를 사용합니다.

리눅스의 IP를 확인하여, 
오픈 SSH 서버를 사용하는 SFTP 방식의 프로토콜로 연결합니다.
이때의 포트는 22번 포트입니다.

리눅스로 보내야 하는 파일은 미리 윈도에서 작성하는 것이 편합니다.



13. 윈도용 FTP 프로그램으로 리눅스로 파일을 보냅니다. (1)

보내야 할 파일과 그 경로는 다음과 같습니다.

/home/steam/steamapps/DST/mods/dedicated_server_mods_setup.lua

/home/steam/.klei/DoNotStarveTogether/save/adminlist.txt
/home/steam/.klei/DoNotStarveTogether/save/blocklist.txt

/home/steam/.klei/DoNotStarveTogether/settings.ini
/home/steam/.klei/DoNotStarveTogether/server_token.txt

/home/steam/.klei/DoNotStarveTogether/modoverrides.lua
/home/steam/.klei/DoNotStarveTogether/worldgenoverride.lua


blocklist.txt 파일에 대해서는 쓰기 권한을 부여해야 합니다.

$ cd /home/steam/.klei/DoNotStarveTogether/save
$ chmod 666 blocklist.txt
$ sudo chown -R steam:steam /home/steam



14. 데디케이티드 서버를 실행합니다.

$ cd /home/steam
$ ./update_dst.sh
$ ./start_dst.sh



참고로 위 스크린샷은 오픈 SSH 서버의 윈도용 클라이언트 PuTTY 를 통하여 리눅스에 접속하여 찍었습니다.



15. 그 외

Ctrl 키 + a + d 를 누르면, 데이케이티드 서버가 실행되고 있는 스크린은 그대로 두고
다시 리눅스의 명령어가 입력 가능한 터미널로 돌아오게 됩니다.

만약, 다시 데디케이티드 서버가 실행되고 있는 스크린으로 돌아가고 싶다면
터미널에 다음과 같이 입력합니다.

$ screen -r


첨부파일에 위 명령어를 메모장으로 적어서 올렸습니다. 참고하세요.

리눅스 명령어.txt




------------------------------------------------------------------------------------------


리눅스에서 설치하여 운영 중인 돈스타브 투게더 데디케이티드 서버입니다.

렌탈 회사 : Digital Ocean
렌탈 비용 : 한달에 5달러씩
서버 위치 : 싱가포르

OS : Ubuntu Server 12.04 32bit
CPU : 1 Core
메모리 : RAM 512MB
디스크 : SSD 20GB
전송량 : 1TB per month

 


서버를 이전하였습니다. 아울러 메모리를 2048 MB 로 업그레이드 하였습니다.

렌탈 회사 : Vultr
렌탈 비용 : 한달에 15달러씩
서버 위치 : 일본 도쿄

OS : Ubuntu Server 14.04 64bit
CPU : 2 Core
메모리 : RAM 2048MB
디스크 : SSD 45GB
전송량 : 600GB per month


반응형