내가 세팅한 방법 정리해서 올려봅니다.



팩토리오 기본 설치한 폴더 기준으로 설명함


위키

https://wiki.factorio.com/Multiplayer#Dedicated.2FHeadless_server

참고하면서 하세요.


전용서버를 굴릴 생각을 할 정도면 컴터고수겠지요.

따라서 스샷은 안찍음. 귀찮아서.



-- server-settings.json 설정 ---------------


C:\\Program Files\\Factorio\\data\\ 폴더에 가보면 server-settings.example.json 파일 있음.

복사해서 server-settings.json 으로 바꾸고 내용을 편집해야됨.


  "visibility":

  {

    "public": true,

    "lan": true

  },


퍼블릭 트루 해야 매칭서버 리스트에 노출됨.

혼자 테스트해보는 거면 퍼블릭만 폴스로 바꾸면 될듯.


  "username": "팩토리오계정이름",

  "password": "",

  "token": "",


저기 계정이름 꼭 써야됨.

패스워드나 토큰 둘중 하나만 써 넣어야하는데, 패스워드 플레인텍스트로 넣어도 되고

플레인텍스트가 맘에안들면, 싱글에서 멀티접속한적 있으면 다음 경로에서 토큰 확인 가능함


%AppData%\\Factorio\\player-data.json

( %AppData%는 C:\\Users\\윈도우계정이름\\AppData\\Roaming과 동등 )


위 파일 안에 token으로 검색하면 해시문자열 찾을 수 있을거임. 그거 복붙하면됨.


  "game_password": "접속할 사람들이 입력해야하는 비번",


""으로 비워두면 암호없이 접속되고, 뭔가 넣으면 암호가 걸림


그리고 기타 server-settings.json 파일의 기타 옵션은 취향껏



-- 방화벽 설정 ---------------


윈도우10 기준, 기본 방화벽 쓰고있으면,

"고급 보안이 포함된 Windows Defender 방화벽"

을 찾아서 열어야됨.

윈도우 검색으로 방화벽 입력해도 되고,

설정 - 네트워크 및 인터넷 - 상태 - Windows 방화벽 - 고급 설정

으로 열어도 됨.

아웃바운드 규칙을 새로 추가해서 Factorio.exe을 TCP, UDP포트에 대해서 허용을 추가함.

인바운드는 게임설치하면 자동으로 생겨서 아마 있을거 같은데 찾아보고 없으면 추가함.



-- 포트 및 프록시 설정 (옵션) ---------------


%AppData%\\Factorio\\config\\config.ini


열어보면 앞에 각 라인 앞에 코멘트 문자 "; "를 지워서 해당 옵션을 활성화할 수 있음.

기본 포트는 34197


서버운용하는데 프록시 세팅할 사람은 없겠지만 프록시 설정도 여기있음.



-- 공유기 설정 ---------------


포트포워딩 해줘야함.

공유기마다 모양새는 다르지만 대충 다음처럼 세팅함.


소스IP주소 : 비워둠 (의도한 의미 : 모든 범위 허용)

소스포트 : 49152-65535 (의도한 의미 : 윈도우7이상의 PC에서 접속하는 것을 허용. 윈도우7이상의 소스포트 랜더마이징 고려.)

외부(destination)포트 : 내가 config.ini에서 설정한 포트 (기본 34197)

내부IP주소 : 서버로 사용할 컴퓨터의 내부IP주소 (공인IP주소 아님)

내부(local)포트 : 내가 config.ini에서 설정한 포트 (기본 34197)


내 경우, 소스포트를 비워두면 다른사람이 접속을 못했었음.

팩토리오 측의 pingpong테스트는 34197포트에서 날라오는데 얘네는 통과되는데, 정작 랜덤소스포트 쓰는 이용자가 접속을 못했음.



-- 실행 명령 ---------------


cmd확장자 파일 하나 만들고 내용을 대충


start "" /wait "C:\\Program Files\\Factorio\\bin\\x64\\factorio.exe" --start-server "C:\\Users\\사용자이름\\AppData\\Roaming\\Factorio\\saves\\세이브파일이름.zip" --server-settings "C:\\Program Files\\Factorio\\data\\server-settings.json"


이러면 저장된 세이브파일을 서버가 돌림.

그리고 저장이 필요할 때마다 세이브파일 덮어쓰기 하는거까지 확인함.


--start-server 등등 factorio.exe용 아규먼트는 종류가 더 많으니 위키를 참고하거나 검색해서 알아보길 바람.



-- 서버 콘솔 커맨드 ---------------


서버의 cmd창에 콘솔커맨드를 그대로 입력할 수 있는데,

/help 치면 /save, /quit만 알려줌. 나머지 안알랴주던데... -_-;


https://wiki.factorio.com/Console

가보면 Multiplayer commands에 정리되있는거 서버 콘솔에서도 다 쓸 수 있음.


일단 서버열고 해야할 일 중 하나는, 자기 팩토리오계정을 어드민에 추가하는거임.

/promote 팩토리오계정이름

이라고 입력하면 됨. 한번하면 설정폴더에 기록되서 다음에 안해도 됩니다.



그럼 삽질 화이팅입니다.