내가 세팅한 방법 정리해서 올려봅니다.
팩토리오 기본 설치한 폴더 기준으로 설명함
위키
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 팩토리오계정이름
이라고 입력하면 됨. 한번하면 설정폴더에 기록되서 다음에 안해도 됩니다.
그럼 삽질 화이팅입니다.
아니 원마크 역슬래시 문자 다 어디감???
두개씩 넣어야 하나 표시되네. 심지어 편집모드 돌아가면 다시 한개되서 저장다시하면 다 사라지네요. 디씨 뭐이래 ㅋㅋ
추가정보, 각종 설정파일에, 한글이나 특문 들어가면 UTF-8로 저장해야함. ANSI 로캘 그대로면 JSON 파싱 에러납니다.
파일 경로는 설치버전 기준인데, 전용 서버를 굴리려면 zip package버전으로 다운받아서 돌리는게 낫다. 같은 컴터에서 서버 여러개 돌리려면 zip 패키지 여러 폴더로 나눠서 포트만 다르게 하면 됨. 공유기 설정 안적어둔거. UDP 포트를 포워딩 해줘야함. 위키 읽어보면 나오긴 하는데, 안읽어볼 놈들이 있을 거라는걸 깜빡하고 전혀 적질 않았네. 위키 영어지만 한번 쭉 읽어보자. 리눅스
쓰면 더더욱.
너무 쉽게 정리해줘서 ㄳ
덕분에 서버 만듬