까먹기전에 먹어버리자

NAS로 팩토리오 서버를 구축해보자 본문

NAS

NAS로 팩토리오 서버를 구축해보자

자꾸까먹는사람 2020. 7. 19. 13:14

안녕하세요 오늘은 집에 있는 NAS로 팩토리오(Factorio) 서버를 구축해보겠습니다.

시놀로지 혹은 헤놀로지 NAS만 설치되어있다면 문제없이 구축 할 수 있도록 자세히 설명해 놓았습니다.

차근차근 따라 해보세요!

 

NAS로 서버를 구축할 시 좋은 점

1. 저전력 PC인 NAS를 통해 보다 적은 전기세로 서버를 운영할 수 있습니다.

2. 데스크톱에 파일을 저장할 필요가 없어 PC가 지저분해지지 않습니다.

3. 인터넷이 연결되는 곳이라면 어디서든 원격을 제어할 수 있습니다.

 

준비물

1. Synology(시놀로지) 혹은 Xpenology(헤놀로지)가 설치된 NAS

2. Docker

3. Putty

 

NAS에 Docker를 설치

헤놀로지 메인 화면(DSM)으로 들어와 패키지센터에서 Docker를 검색, 다운해줍니다.

 

데스크톱에 Putty를 설치

Docker를 사용하기 위해 Putty를 깔아줍니다.

 

공식홈페이지 주소 : https://www.chiark.greenend.org.uk/~sgtatham/putty/

 

SSH 활성화

데스크톱에 있는 Putty가 NAS에 접근하려면 SSH(Secure Shell)라는 기능을 활성화 해야합니다.

제어판 > 터미널 및 SNMP > SSH 서비스 활성화 > 포트 값 입력 > 적용

 

저는 기본값인 22를 사용하겠습니다.

 

SSH를 사용하기 위해선 입력된 포트값을 포트포워딩을 해줘야합니다.

이것은 공유기별로 다르므로 구글에 자신의 공유기 회사명으로 검색하면 잘 나오니 참고바랍니다.

 

Tip) 터미널 및 SNMP가 뜨지 않을 시

터미널 및 SNMP가 뜨지 않을 시 DSM의 제어판 우측 상단에 있는 고급모드를 눌러주세요.

 

Putty 실행

SSH를 활성화 해주었으니 Putty로 서버에 필요한 파일들을 설치할 차례입니다.

Putty란 윈도우의 명령 프롬포트로 이해하시면 됩니다.

 

자신의 NAS IP주소를 입력 후 터미널 및 SNMP에서 설정한 SSH의 포트 값을 넣어줬다면 Open을 눌러 실행합니다.

NAS IP의 경우 공인IP, 사설IP, DDNS와 같은 IP를 입력하시면 됩니다.

 

Putty에서의 로그인 및 관리자 권한 획득 방법

처음에 실행하면 위와 같은 창이 뜰 수도 있습니다. 예를 눌러서 진행합니다.

 

정상적으로 Putty가 실행된 모습입니다

 

login as에 NAS DSM 아이디를 입력하시고 엔터

그 이후 뜨는 password에서 비밀번호를 입력하시면 로그인이 됩니다.

 

참고로 비밀번호는 가려져있어서 안보이는게 정상입니다.

 

제 서버 정보는 가렸습니다.

이렇게 뜨면 성공.

 

여기서 sudo -i 를 입력해 패스워드를 한번 더 입력하시면 관리자 권한까지 얻으신 겁니다.

관리자 권한을 얻었을 시 root@헤놀로지서버이름 으로 뜨게 됩니다.

 

서버가 만들어질 폴더 생성

지금도 Putty에서 만들 순 있으나, 서버 파일에 접근도 하지 못할 뿐더러 NAS가 꺼질 때 정보가 다 없어집니다.

그래서 서버를 만들기 전에 서버의 보금자리를 만들어 그곳에 파일들이 저장될 수 있도록 해보겠습니다.

 

FIle Station에 들어가 docker 공유 폴더가 있는지 확인합니다. 없다면 새 공유 폴더 생성을 통해 만듭니다.

 

 

이때 docker 공유 폴더를 우클릭 하여 몇번째 볼륨에 있는지 반드시 확인합니다.

docker 공유 폴더를 우클릭하여 속성에 접근
현재 volume2에 docker 공유 폴더가 생성되었다.

 

docker 공유 폴더 안에 Opt라는 폴더를 생성, Opt안에 factorio라는 폴더를 생성해줍니다.

저는 /volume2/docker/Opt/factorio라는 경로에 서버를 설치해줄 예정입니다.

 

Putty에서의 서버 설치

자 이제 본격적으로 Putty를 이용해 서버를 만들 차례입니다. (출처 : https://github.com/factoriotools/factorio-docker)

 

Putty에서 다음과 같은 명령어를 복사해 붙여넣어줍니다. 복사는 Ctrl + V, 붙여넣기는 Shift + Insert 입니다.

 

sudo mkdir -p /opt/factorio 
sudo chown 845:845 /opt/factorio 
sudo docker run -d \ 
  -p 34197:34197/udp \ 
  -p 27015:27015/tcp \ 
  -v /volume2/opt/factorio:/factorio \ 
  --name factorio \ 
  --restart=always \ 
  factoriotools/factorio

 

명령어가 정상적으로 실행되면 서버 설치는 완료된 것입니다.

 

명령어 설명

sudo mkdir -p /opt/factorio 
sudo chown 845:845 /opt/factorio                    ;서버에 필요한 이미지를 설치
sudo docker run -d \                                          ;설치한 이미지로 컨테이너를 설치
  -p 34197:34197/udp \                                    ;34197 포트를 개방
  -p 27015:27015/tcp \                                     ;27015 포트를 개방
  -v /volume2/opt/factorio:/factorio \               ;서버 파일을 해당 경로에 설치 volume2를 환경에 맞게 바꿔주세요!
  --name factorio \                                             ;컨테이너 이름을 factorio로 설정
  --restart=always \ 
  factoriotools/factorio

 

서버 켜고 끄기

docker - 컨테이너로 오시면 factorio 서버가 잘 구동되고 있음이 보입니다. 오른쪽의 스위치를 누르면 켜고 끌 수 있습니다.

 

저희는 서버 설정을 할 것이기 때문에 잠시 꺼둡니다.

 

서버 설정

정상적으로 설치가 되었다면 /docker/opt/factorio/config 경로에 server-settings.json 이라는 파일이 생성되었을 것입니다. 이 파일을 다운받아 메모장으로 실행하면 설정값이 나오는데 수정할 것이 있습니다.

 

우선 설정값의 설명은 다음과 같습니다.

 

{

 "name": "게임목록에 보이는 게임의 이름", 

 "description": "게임목록에 보이는 게임 설명", 

 "tags": ["game", "tags"], 게임 태그(무시)

"max_players": 최대 허용 사용자 수, 관리자는 최대서버에도 접속할수 있으며, 0을 넣으면 무제한,

 "visibility":

 {

   "public": (true : 공개서버, false = 비공개서버)

   "lan": (true : 랜온, false = 랜오프)

 },

 "username": "",   서버사용자아이디 (퍼블릭 아니면 안쓰셔도 됩니다)

 "password": "",   서버사용자비번 (퍼블릭 아니면 안쓰셔도 됩니다)

 "token": "승인토큰, 위에 패스워드 대신 쓰일수 있음 (무시)",

 "game_password": "게임 비밀번호",

 "require_user_verification": (true = 정품유저만, false = 아무나),

 "max_upload_in_kilobytes_per_second": (최대업로드 kB, 0 = 무제한),

 "ignore_player_limit_for_returning_players": (튕긴사람이 최대허용인원이 넘어도 다시 들어올수 있게 함),

 "allow_commands": "커맨드 - admins-only (어드민만), true, false",

 "autosave_interval": (자동저장 주기-분단위),

 "autosave_slots": (자동저장파일수),

 "afk_autokick_interval": (아무것도 안하는사람 짜르는 시간, 분단위),

 "auto_pause": (자동정지, true/false),

 "only_admins_can_pause_the_game": (true = 관리자만 일시정지가능, false = 아무나 가능),

 "autosave_only_on_server": (true : 서버에만 자동저장됨 false : 접속중인 모든사람 자동저장됨),

}

 

이 중 볼드체로 강조된 것만 보시면 되는데

public의 경우 반드시 false로 해주시고

게임 비밀번호와 정품유저 인증은 원하시는대로 해주시면 됩니다.

 

서버 접속하기

Docker - 컨테이너에서 factorio 컨테이너를 더블클릭 해 줍니다.

 

이제 하이라이트된 로컬 포트로 서버에 접속 할 수 있습니다.

공인 IP:로컬포트가 이제 저희만의 서버주소인 것입니다.

ddns가 있으신 분들은 ddns주소를 사용해도 좋고, 없으신 분들은 공인 IP 주소를 입력하시면 됩니다.

 

예) 123.456.789.012:34197

예) nopaynogain.ddns.net:34197

 

팩토리오에서 접속

자 이제 팩토리오에 접속 후 멀티플레이어 - 주소로 접속을 눌러줍니다.

 

IP 주소 및 포트에 방금 설명했던 서버 주소를 입력하여 연결하면 끝!

 

 

Q. 서버 버전과 플레이 하는 버전이 달라서 접속하지 못한대요

스팀 - 라이브러리 - Factorio 우클릭 - 속성 - 베타 로 접속하셔서 버전을 바꿔 주시면 됩니다.

 

Q. 제가 원하는 맵 파일은 못 넣나요?

팩토리오 서버를 끈 후 NAS에서 /docker/opt/factorio/saves 경로로 들어가 맵 파일을 전부 삭제 후 원하는 맵 파일을 넣으시면 됩니다. 

이때 파일명은 반드시 _autosave1.zip으로 설정해주세요

 

 

 

 

 

 

 

궁금한 점 있으시면 댓글남겨주세요