반응형
다음은 게임개발사에서 공식적으로 발표한, 리눅스에서 돌리는 지상 및 동굴 서버에 대한 내용입니다.
http://cafe.naver.com/babmukda/76525 에 원본 내용이 있으며, 이를 실제에 맞게 수정하였습니다.
정상적으로 실행됨을 확인한 리눅스 배포판
- 우분투 서버 12.04 32/64비트 (Ubuntu Server 12.04 32/64bit)
- 우분투 서버 14.04 32/64비트 (Ubuntu Server 14.04 32/64bit)
다음의 과정은 모두 우분투 서버 (Ubuntu Server)에 맞추어져 있습니다.
다른 리눅스 배포판의 경우에는 정상적인 실행을 보장할 수 없습니다.
1. 데디케이티드 서버를 설치하기 전에 준비물(?)이 있습니다.
http://cafe.naver.com/babmukda/76525 에 원본 내용이 있으며, 이를 실제에 맞게 수정하였습니다.
정상적으로 실행됨을 확인한 리눅스 배포판
- 우분투 서버 12.04 32/64비트 (Ubuntu Server 12.04 32/64bit)
- 우분투 서버 14.04 32/64비트 (Ubuntu Server 14.04 32/64bit)
다음의 과정은 모두 우분투 서버 (Ubuntu Server)에 맞추어져 있습니다.
다른 리눅스 배포판의 경우에는 정상적인 실행을 보장할 수 없습니다.
1. 데디케이티드 서버를 설치하기 전에 준비물(?)이 있습니다.
32비트 리눅스인 경우에는 다음의 패키지를 설치합니다.
$ sudo apt-get update
$ sudo apt-get dist-upgrade && sudo apt-get upgrade && sudo apt-get autoremove
$ 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
$ 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 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
$ sudo reboot
2. 스팀을 위한 사용자 계정(관리자 계정으로)을 작성하고, 그곳에 스팀CMD 폴더를 만듭니다.
$ sudo adduser steam
$ sudo adduser steam sudo
$ 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 -beta cavesbeta 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 -beta
cavesbeta validate +quit
6. update_dst.sh 에 권한을 부여하고, update_dst.sh 를 실행합니다.
$ chmod 700 update_dst.sh
$ sh update_dst.sh
7. dst_overworld.sh 와 dst_cave 를 작성하여 이후에 손쉽게 데디케이티드 서버를 실행할 수 있도록 합니다.
$ vi dst_overworld.sh
#!/bin/sh
cd /home/steam/steamapps/DST/bin
/usr/bin/screen
-S "DST_Overworld" /bin/sh -c
'./dontstarve_dedicated_server_nullrenderer -console -backup_logs
-conf_dir DST_Overworld'
$ vi dst_cave.sh
#!/bin/sh
cd /home/steam/steamapps/DST/bin
/usr/bin/screen -S "DST_Cave" /bin/sh -c './dontstarve_dedicated_server_nullrenderer -console -backup_logs -conf_dir DST_Cave'
동굴 서버를 실행한 다음, c_shutdown() 를 입력하여 데디케이티드 서버를 정상적으로 종료합니다.
오픈 SSH 서버를 위해 22번 TCP 포트를
$ sudo apt-get install ufw
$ sudo iptables -F
$ sudo ufw enable
10. 오픈 SSH 서버를 설치합니다.
(주의) settings.ini와 worldgenoverride.lua를 DST_Cave에는 보내지 않습니다.
$ chmod 666 /home/steam/.klei/DST_Overworld/save/blocklist.txt
$ chmod 666 /home/steam/.klei/DST_Cave/save/blocklist.txt
14. 동굴을 만들기 위한 worldgenoverride.lua 를 작성합니다.
$ vi /home/steam/.klei/DST_Cave/worldgenoverride.lua
return {
override_enabled = true,
preset = "DST_Cave"
}
15. DST_Overworld 에 있는 settings.ini 파일 끝에 다음의 내용을 추가합니다.
$ vi /home/steam/.klei/DST_Overworld/settings.ini
[shard]
shard_enable = true
is_master = true
master_port = 11200
cluster_key = secretkeysaresecret
16. 15번의 파일을 DST_Cave 로 복사하여 해당하는 부분만 다음의 내용으로 수정합니다.
$ cp /home/steam/.klei/DST_Overworld/settings.ini /home/steam/.klei/DST_Cave/settings.ini
$ vi /home/steam/.klei/DST_Cave/settings.ini
[network]
server_port = 11001
steam_authentication_port = 12348
steam_master_server_port = 12349
[shard]
shard_enable = true
is_master = false
master_ip = 127.0.0.1
master_port = 11200
shard_name = caves
cluster_key = secretkeysaresecret
$ cd /home/steam
$ sudo chown -R steam:steam /home/steam
8. dst_overworld.sh 와 dst_cave.sh 에 권한을 부여하고, start_dst.sh 를 실행하여 데디케이티드 서버를 실행합니다.
$ chmod 700 dst_overworld.sh
$ ./dst_overworld.sh
지상 서버를 실행한 다음, c_shutdown() 를 입력하여 데디케이티드 서버를 정상적으로 종료합니다.
$ chmod 700 dst_cave.sh
$ ./dst_cave.sh
지상 서버를 실행한 다음, c_shutdown() 를 입력하여 데디케이티드 서버를 정상적으로 종료합니다.
$ chmod 700 dst_cave.sh
$ ./dst_cave.sh
9. 방화벽을 열어야 합니다.
방화벽에서 개방합니다.
$ sudo apt-get install ufw
$ sudo iptables -F
$ sudo ufw enable
$ sudo ufw allow 22/tcp
$ sudo ufw default deny
$ sudo ufw logging on
$ sudo service ufw restart
방화벽과 포트에 대한 내용은 기본으로 설정되어 있는 부분이므로,
보안을 위해 다른 포트로 변경할 수 있습니다.
22번 TCP 포트는 오픈 SSH 서버의 설정 파일에서 수정 가능합니다.
만약, 리눅스를 사용하는 서버가 공유기를 사용하는 경우에는
22번 TCP 포트에 대하여 포트 포워딩이 필요합니다.
10. 오픈 SSH 서버를 설치합니다.
윈도에서 리눅스로 접속하기 쉽게,
그리고 윈도에서 리눅스로 파일을 전송하기 위하여
오픈 SSH 서버를 설치합니다.
$ sudo apt-get install openssh-server openssh-sftp-server
11. 윈도용 클라이언트로 리눅스로 접속합니다.
저는 윈도용 클라이언트로 PuTTY 를 사용합니다.
리눅스의 IP를 확인하여 22번 포트로 접속합니다.
IP는 다음의 명령어로 확인 가능합니다.
$ ifconfig
12. 윈도용 FTP 프로그램으로 리눅스로 파일을 보냅니다. (1)
저는 윈도용 FTP 프로그램으로 FileZilla 를 사용합니다.
FileZilla : https://filezilla-project.org/
리눅스의 IP를 확인하여,
오픈 SSH 서버를 사용하는 SFTP 방식의 프로토콜로 연결합니다.
이때의 포트는 22번 포트입니다.
리눅스로 보내야 하는 파일은 미리 윈도에서 작성하는 것이 편합니다.
13. 윈도용 FTP 프로그램으로 리눅스로 파일을 보냅니다. (1)
보내야 할 파일과 그 경로는 다음과 같습니다.
/home/steam/steamapps/DST/mods/dedicated_server_mods_setup.lua
/home/steam/.klei/DST_Overworld/save/adminlist.txt
/home/steam/.klei/DST_Cave/save/adminlist.txt
/home/steam/.klei/DST_Cave/save/adminlist.txt
/home/steam/.klei/DST_Overworld/save/blocklist.txt
/home/steam/.klei/DST_Cave/save/blocklist.txt
/home/steam/.klei/DST_Cave/save/blocklist.txt
/home/steam/.klei/DST_Overworld/server_token.txt
/home/steam/.klei/DST_Cave/modoverrides.lua
/home/steam/.klei/DST_Overworld/settings.ini
/home/steam/.klei/DST_Cave/server_token.txt
/home/steam/.klei/DST_Overworld/modoverrides.lua/home/steam/.klei/DST_Cave/modoverrides.lua
/home/steam/.klei/DST_Overworld/settings.ini
/home/steam/.klei/DST_Overworld/worldgenoverride.lua
(주의) settings.ini와 worldgenoverride.lua를 DST_Cave에는 보내지 않습니다.
blocklist.txt 파일에 대해서는 쓰기 권한을 부여해야 합니다.
$ chmod 666 /home/steam/.klei/DST_Cave/save/blocklist.txt
14. 동굴을 만들기 위한 worldgenoverride.lua 를 작성합니다.
$ vi /home/steam/.klei/DST_Cave/worldgenoverride.lua
return {
override_enabled = true,
preset = "DST_Cave"
}
15. DST_Overworld 에 있는 settings.ini 파일 끝에 다음의 내용을 추가합니다.
$ vi /home/steam/.klei/DST_Overworld/settings.ini
[shard]
shard_enable = true
is_master = true
master_port = 11200
cluster_key = secretkeysaresecret
16. 15번의 파일을 DST_Cave 로 복사하여 해당하는 부분만 다음의 내용으로 수정합니다.
$ cp /home/steam/.klei/DST_Overworld/settings.ini /home/steam/.klei/DST_Cave/settings.ini
$ vi /home/steam/.klei/DST_Cave/settings.ini
[network]
server_port = 11001
steam_authentication_port = 12348
steam_master_server_port = 12349
[shard]
shard_enable = true
is_master = false
master_ip = 127.0.0.1
master_port = 11200
shard_name = caves
cluster_key = secretkeysaresecret
17. 데디케이티드 서버를 실행합니다.
$ cd /home/steam
$ sudo chown -R steam:steam /home/steam
$ ./dst_overworld.sh
Ctrl 키 + a + d
$ ./dst_cave.sh
Ctrl 키 + a + d
첨부파일에 위 명령어를 메모장으로 적어서 올렸습니다. 참고하세요.
Ctrl 키 + a + d
$ ./dst_cave.sh
Ctrl 키 + a + d
18. 그 외
Ctrl 키 + a + d 를 누르면, 데이케이티드 서버가 실행되고 있는 스크린은 그대로 두고
다시 리눅스의 명령어가 입력 가능한 터미널로 돌아오게 됩니다.
만약, 다시 데디케이티드 서버가 실행되고 있는 스크린으로 돌아가고 싶다면
터미널에 다음과 같이 입력합니다.
$ screen -r
첨부파일에 위 명령어를 메모장으로 적어서 올렸습니다. 참고하세요.
반응형
'Games > 돈스타브 투게더' 카테고리의 다른 글
[구버전] 데디케이티드 서버(Dedicated Server) 만들기 - 중급자 버전 (0) | 2017.07.03 |
---|---|
[구버전] 데디케이티드 서버(Dedicated Server) 만들기 - 초급자 버전 (0) | 2017.07.03 |
[구버전] 신 버전 - 동굴 베타 2개의 데디케이티드 서버 (윈도 기반) (0) | 2017.07.03 |
[구버전] 구 버전 - 동굴 베타 2개의 데디케이티드 서버 (윈도 기반) (0) | 2017.07.03 |
[구버전] 윈도의 SteamCMD에서 데디케이티드 서버 만들기 (0) | 2017.07.03 |