(도커 이미지 출처:https://hub.docker.com/r/factoriotools/factorio/)




팩토리오 입문한지 일주일 된 뉴비인데 찾아보니 팩토리오 도커 서버 이미지가 있어서 도커로 서버 여는 법 공략을 써보려 함


공략 전에 내 서버 os는 Ubuntu 22.04.3 LTS 이니깐 참고 사실 도커라 무슨 os 이든 상관 없긴 함



1.서버 파일 저장 폴더 생성


도커는 기본적으로 컨테이너의 포트를 바꾸거나 팩토리오 서버의 버전을 바꾸는 등의 행동을 컨테이너를 삭제한 뒤 재생성 하는 방식으로 진행하기 때문에 서버 파일을 미리 저장해놓지 않으면 너가 만들어 놓은 서버가 한순간에 사라질 수 있음. 때문에 저장 폴더를 미리 니 컴퓨터에다 만들어 놔야 한다.



일단 너가 폴더를 저장하길 원하는 위치에 들어가서 (나는 이후에 원도우에서도 접근하기 쉽게 하기 위해 공유 폴더에다 저장함)


sudo mkdir -p 너가_원하는_폴더_이름

cd 너가_원하는_폴더_이름


을 순서대로 쳐서 폴더를 만든 뒤 폴더 내부로 이동하자



2. docker-compose 파일 생성

폴더 속에서


sudo nano docker-compose.yml


을 쳐서


version: '2'
services:
factorio:
image: factoriotools/factorio:(너가 원하는 팩토리오 버전)
ports:
- "34197:34197/udp"
- "27015:27015/tcp"
volumes:
- 너가_원하는_폴더_이름:/factorio
container_name: factorio-server


라는 내용의 파일을 작성한 뒤 ctrl+o , ctrl+x 를 쳐서 저장하고 나와준다


나온 뒤


sudo docker-compose up -d


를 쳐주면 서버가 만들어진다


3.포트포워딩


이제 너가 만든 서버를 다른 사람들이 들어올 수 있게 포트포워딩 이라는 것을 해줘야 함



먼저 주소창에 192.168.0.1 을 입력해서 공유기 설정 페이지로 접속한 뒤 로그인 한 뒤

(iptime 공유기라면 192.168.0.1 을 주소창에 입력하면 되고 다른 회사 공유기라면 검색해서 찾아보셈)




고급설정-NAT/라우터 관리-포트포워드 설정 순서로 들어가면



대충 이런 화면이 보일건데


여기에 규칙을 만들어 줘야함

이름은 너 원하는 걸로 하고 프로토콜은 udp 외부포트 내부포트에 모두 34197 친 뒤 저장

내부 ip 주소는 너가 서버를 돌릴 컴퓨터 내부 ip 주소로 하면 된다(내부 ip 보는 법은 os마다 다르므로 검색해서 찾아봐)


4. 서버 설정

사실 3까지만 해도 서버 자체는 열리지만 당연하게도 서버 이름이나 필요에 따라 비밀번호,모드 등을 추가 해 줘야겠지?


아까 만들었던 팩토리오 서버 폴더 내부에 들어가면 뭐가 이것저것 생겨있을 거임


(갑자기 윈도우인 이유는 위에서 설명했듯 서버 공유폴더에 파일을 저장해서 윈도우에서도 네트워크 드라이브를 통해 접속할 수 있게 한 것)


mods 파일에 모드를 추가하면 모드 사용 가능


쨋든 config 파일에 들어가면



이런 파일들이 보이는데 여기서 파일을 수정하여 서버 이름이나 공해 설정들을 할 수 있다



당장 server-settings.json 파일에서 수정해야 할 것은 2가지임



첫번째 밑줄은 서버 이름을 설정하는 부분이고 동그라미는 저기에 니 계정 아이디,비번을 써야 팩토리오 공개서버 리스트에 니 서버가 검색이 됨

(저기다가 스팀 아디 비번 넣으면 오류나니깐 factorio.com 에 들어가서 스팀 계정이랑 연동한 뒤 프로필에 보이는 username 이랑 password 집어넣어)


설정이 완료된 뒤에는 서버 컴퓨터에서


sudo docker restart factorio-server


를 입력해 서버를 재시작 해주는 것을 잊지 말자


5. 서버 접속


이제 팩토리오에서 공개게임 찾아보기에 들어가서 너가 아까 설정한 이름을 검색하면 서버가 보인다 들어가면 끝