GAME/7DaysToDie(셉투데)

남는 pc로 멀티 서버(Dedicated Server) 구축하기

사당동씩씩이 2024. 7. 18. 19:19
320x100

서버가 필요해졌습니다.

친구들과 7days To Die(셉투데)를 플레이 하는 분들은 커뮤니티에서 일행을 구해 개인방에 입장하여 게임을 진행하는 경우가 많습니다. 그런데 하다보면 다양한 이유로 서버가 있었으면 하는 생각이 듭니다.

특히 방장인 친구가 로그온이 아니라면 서버가 닫혀 있는 경우도 있기 때문에 개인서버를 갖고 싶은 생각이 들때 사용되는 것이 Dedicated Server입니다.

해당글은 cui환경이 익숙하지 않은 window유저를 대상으로 작성됩니다.
좀더 익숙하신 분은 아래 구조와 링크를 보고 쉽게 해결가능합니다.

steamCMD 설치, 셉투데 설치

  1. c:\ 드라이브에 steamCMD 파일을 생성하세요.
  2. 링크 압축파일을 다운로드해서 C:\steamcmd에 압축풀기를 실행하세요
    다운로드 링크 : steamCMD 윈도우버전 다운로드
  3. steamCMD 설치
  • 압축해제한 폴더에서 터미널에서 실행
  • steamcmd.exe를 실행하여 설치
  • 그냥 더블클릭 실행해도 됩니다.
  1. 셉투데 설치
  • steamcmd가 정상적으로 설치되었다면 steamcmd.exe를 실행했을 때 대기화면입니다.
  • Loading steam API...OK라는 문구가 되고, Steam>상태에서 입력이 가능해야 합니다.
  • 아래 3개의 명령어를 한줄 씩 순서대로 입력합니다.
force_install_dir c:\steamcmd\games\7days
app_update 294420
exit
  • force_install_dir c:\steamcmd\games\7days : 설치 경로를 지정하는 과정입니다.
  • app_update 294420 : 앱을 설치하는 과정입니다. 덮어씌우기 됨
  • 설치가 완료되면 exit입력해서 steamcmd를 종료합니다.

간략하게 설명하면 force_install_dir 설치경로를 지정합니다. 이때, 폴더가 없다면 폴더가 생성되니 반복적인 명령어를 입력할 때 오타가 없도록 주의합니다. app_update 294420에서 app_update는 app을 최신버전으로 다운하게됩니다. 294420 이 셉투데 app의 번호입니다. 서버를 실행하기 전 최신버전을 유지하기 위해서는 이과정을 서버 실행전 매전 진행해 주면 됩니다.

  • 7days to die 서버 실행

네트워크 포트포워딩

내 네트워크 상태 확인하기

첫번째, 내부 IP를 알아야합니다.
아래 그림과 같이 cmd창에서 ipconfig를 입력하여 내부 ip를 확인합니다.

두번째, 공인 IP를 알아야합니다.
네이버에 내 공인 ip를 검색하면 확인할 수 있습니다.

왜 필요한지 아시는분들에겐 쉽지만,
잘 모르시는 분의 이해를 돕기위해 간략하게 설명해보면.
공인IP가 아파트단지 주소, 내부IP(가상, IPv4주소)가 동호수가 됩니다.
포트는 이해를 위해 "이름"정도로 생각하겠습니다.
해당 네트워크의 계층별 설명으로 보면 모순이 있을 수 있으나, 대략적으로 아래그림으로 이해하시면 됩니다.

여기서 완전 외부에서 접근한다면 보안을 위해 공인IP주소+포트로 접근해야하고,
같은 망 내 그러니까 같은동에 있다면 내부IP+포트로 접근해야합니다.
즉, 친구들은 공인IP와 포트를 한집에서 2대의 pc로 한다는 서버를 한대는 게임을 구동한다면 내부IP+포트를 사용합니다.

포트 열어주기 Port Fowording

IP주소 + 포트로 신호를 보낼때, 내 서버가 받겠다는 약속을 해줘야합니다.
그것을 포트포워딩이라 합니다.

아까 ipconfig로 확인한 주소에서 "기본 게이트웨이"로 접속하면 설정이 가능합니다.

보통은 wifi 비밀번호 옆에 관리자 비밀번호로 접속할 수 있습니다.

다음으로 2가지를 해줘야합니다.

  1. DHCP 고정 설정
  • 맥주소 검색을 누르면 현재 할당된 내부IP주소와 MAC주소가 여러개 나옵니다.
  • 내가 ipconfig로 확인한 내부ip와 내 MAC주소가 일치하는지 확인한 다음 추가버튼을 눌러줍니다.

이 과정은 내부IP는 가상이기 때문에 관리와 보안을 위해 주기적으로 변동되는 것을 방지합니다.
특히 NAT설정이 끝나면 인터넷 기기를 재시작하게 되는데, 이 때 내부IP주소가 기본설정이라면 변경됩니다.

  1. NAT 설정
    이제 원래 해주려 했던, 포트포워딩을 하겠습니다.

    이 부분은 추가버튼을 눌러 그림과 같이 설정되도록 하시면 됩니다.
    설정적용을 누르면 인터넷을 재시작할 것 입니다.

실행

serverconfig

자 설치가 끝낫다면 지정한 파일 경로 c:\steamcmd\games\7days로 가보면 serverconfig.xml이 있습니다.
바로 수정이 어렵다면 vscode를 설치하셔서 수정하시는걸 권장드립니다. (초보자에게도 가독성이 좋음)

내용이 어렵다면 번역된 설명서를 참고하세요 : serverconfig.xml 설명서

startdedicated.bat

serverconfig의 설정이 끝난 다음 startdedicated.bat을 실행하면 됩니다.
내부적으로 들여다 보면, 서버를 키고 끌수 있도록 스크립트가 작성된 파일입니다.
잘모르겠다면 서버 시작파일로 이해해도 됩니다.

만약 클릭에서 새로 창이 나오지 않는다면, Microsoft Visual C Redistributables 2022의 설치가 되지 않아서 입니다. 설치 후 다시 더블클릭으로 켜주시면 됩니다.

자주발생하는 문제 발생시 대응

  1. 방화벽 문제
    기본적으로 window는 다수의 사용자가 보다 쉽게 컴퓨터를 사용하는데 초점이 맞춰져 있습니다.
    결국 일반 pc에 외부신호가 온다면.. 비정상으로 감지되는게 기본 설정이라는 뜻입니다.

다음 실행파트에서 게임실행시 자동으로 추가되지만,
만약 방화벽 문제가 있다면,
방화벽 > 고급설정 > 인바운드 규칙을 확인하고, 없다면 만들어줘야합니다.

  1. 포트포워딩 문제
    많은 사용자 분들께서 포트포워딩에 어려움이 발생하곤 합니다.
    이때 DMZ 서버를 지정하면 모든 포트가 다 특정 IP로 들어간다 생각하면 됩니다.

방화벽문제에도 DMZ를 해재해서 해결되는 경우도 있습니다.
다만, 해당 설정은 보안에 매우 취약해진다는점을 이해하셔야합니다.

 

이 외 궁금하신거나 보충할 내용이 필요해 보이면 댓글 남겨주세요 :)

728x90

'GAME > 7DaysToDie(셉투데)' 카테고리의 다른 글

Dedicated ServerConfig 요약 설명서  (1) 2024.07.17