예초기는 구축법이 있는데 3.2 도커로 풀린건 구축법이 없어서 글 써봄

나도 리눅스 잘 몰라서 구축하는데 20시간 넘게 걸렸기 때문에 이대로 했는데 오류가 뜨면 난 모름. 고수들 있으면 알려주셈


원래는 윈도우 WLS써서 구축하는 방식인데 윈도우에 뭐 깔기 싫기 때문에 이 가이드에서는 VirtualBox를 써서 가상 서버 - 클라이언트 방식으로 구축할거임. 그리고 어느정도 가상 머신을 다룰줄은 알아야 함.


준비물 : VirtualBox, 우분투 서버 설치 이미지, 3.2 hk4e, Fiddler, 3.2 클라이언트

이 파일들은 인터넷에 검색하면 나오거나 이미 챈에 올라와 있기 때문에 자세한 설명은 생략함


1. VirtualBox 설정


VirtualBox에서 가상 머신을 생성하고 설정은 이렇게 해줌

여기서 메모리 크기가 중요한데, 최소 14GB는 설정해야 나중에 문제가 없으니 주의



넘어가면 저장소 생성 창이 나오는데 이것도 넉넉하게 용량을 잡는걸 추천함. 어차피 동적 할당이라 쓴 만큼 용량 참

서버 파일이 압축을 풀면 25GB 정도 하니까 참조



코어는 적당히 주고



중요한 우분투 설치 이미지를 설정해줌

IDE 세컨더리 마스터 옆에 아이콘을 누르면 iso 파일을 지정 할 수 있음. 다운받은 우분투 서버 iso 파일로 설정



그리고 네트워크를 설정해줄 텐데, 우분투에서 도커 설치하고 하려면 인터넷이 필요하기 때문에 어댑터를 2개를 줄거임.

어댑터 1번은 그냥 NAT로 설정하고 어댑터 2번을 사용에 체크하고 호스트 전용 어댑터를 설정해줌. 이 어댑터로 클라이언트와 통신함.


이렇게 하면 리눅스 설정은 끝났고 이제 리눅스를 설치하면 됨

설치과정은 인터넷에 잘 나와있어서 생략





2. 리눅스 설정


root권한이 있는게 편하기 때문에 sudo su를 쳐서 root로 로그인

그리고 apt update도 한번 해줌



ip를 확인하기 위해서 net tools를 설치해줌. apt install net-tools


이제 docker를 설치할 건데 docker를 설치하는 방법은 많지만 이 방법이 제일 오류도 적고 편함.

curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

한줄 치면 알아서 docker랑 compose도 같이 설치됨



설치후에 docker 또는 docker compose를 치면 docker가 설치된걸 확인 할 수 있음. 만약 명령어가 없다고 나오면 다시 설치

정상적인걸 확인했으면 poweroff를 입력해서 리눅스 전원을 꺼줌



3. 서버 설정


이제 서버 파일을 리눅스에 옮겨줘야 하는데 FTP를 써도 좋고 뭐 다른 방법을 써도 좋음. 난 공유 폴더로 옮기는게 가장 쉬워서 그걸로 함.



우분투 가상 머신 설정에 가서 공유 폴더 항목에 서버 파일이 있는 폴더를 설정해줌. 압축은 리눅스 안에서 푸는게 빠르기 때문에 그냥 압축파일이 있는 폴더를 그대로 설정. 설정하고 다시 리눅스를 부팅하면 됨



부팅하고 나서 다시 루트 권한 주고 폴더를 아무거나 하나 만들어 줌. 난 box라는 폴더를 생성함. mkdir box

그리고 box 폴더에 아까 설정한 공유 폴더(폴더 이름 1)를 마운트 해줌. mount -t vboxsf 1 /home/vm/box



box 폴더를 확인해 보면 정상적으로 마운트가 된 걸 확인할 수 있음.



서버 파일 압축을 풀기 위해서 unrar을 설치해줌. apt install unrar



mkdir hk4e로 폴더를 하나 만들고 거기에 압축을 풀어줄 거임.

unrar x docker-hk4e.rar /home/vm/hk4e



압축이 다 풀리면 hk4e 폴더로 가서 잘 풀렸는지 확인해봄


자 이제 로컬일 경우 이대로 구동해도 상관이 없는데 우리는 가상 머신에 올렸기 때문에 IP를 안 바꿔주면 이런 오류가 뜸



오류를 해결하려면 서버 파일에서 xml을 수정해줘야 함.



아까 압축을 풀었던 서버 파일에 config 폴더로 들어가면 xml 파일들이 여러개 있을거임.

그걸 연 다음 아래로 쭉 내려보면 outer_ip 라는게 보일거임. 저거를 서버 IP로 수정해 주면 됨.

파일 당 저거 하나씩만 있으니까 딴건 수정하지 마셈



다시 리눅스에서 ifconfig를 입력하면 서버 IP들이 보일거임.

이 중에서 위에 10.0.2.15는 외부 통신용, NAT 어댑터 IP고 밑에 192.168.100.7 저게 처음에 설정했던 호스트 전용 어댑터 IP임. 저 IP로 위에 xml 파일의 ip를 수정 해 주면 됨. xml 여러개 있는거 전부 다 수정해 줘야 함. 뭐 nano를 쓰던 vi를 쓰던 외부에서 수정해서 옮기던 맘대로



그리고 GM명령어도 쓰려면 loginserver쪽 IP도 수정해 줘야 함. 서버 폴더\bin\loginserver\src\config\index.js 파일임

대충 nano로 열고 저기 http쪽 IP를 서버 IP로 수정해 줌.


다 했으면 서버 설정은 끝



4. 서버 구동


이제 hk4e 폴더로 와서 서버를 빌드해줌. 난 램이 딸려서 minimal로 구동하는데 램 많으면 hk4e를 쓰셈.

참고로 minimal이 램 최소 14GB고 풀 버전은 최소 24GB 필요함 ㅋㅋㅋㅋ

docker compose -f hk4e-minimal.yml up -d --build

그러면 위처럼 빌드가 되기 시작함



만약 빌드 중에 이런 오류 뜨면 권한문제임.

chmod -R +x /home/vm/hk4e 로 서버폴더에 권한을 주고 다시 빌드해 보면 잘 될거임. 이거때문에 몇시간을 날림 ㅅㅂ

이거 말고도 mysql 쪽에서 에러 뜰때 있는데 그거 docker 제대로 설치 안된거임. 인터넷에서 가이드 보고 설치하지 말고 위에 방법대로 설치하셈.



정상적으로 구동하면 이렇게 보임.



5. 서버 접속



실행 방법은 다른 가이드랑 비슷함

Fiddler를 실행하고 FiddlerScript탭을 보면 뭐가 막 적혀있는데 다 지우고 다운받은 서버 파일을 보면 readme 폴더가 있을거임. 거기에 있는 fiddler-script.js 내용을 복사해서 붙여넣기 해줌

그리고 밑에 host IP를 서버 IP로 바꿔주고 Save Script를 눌러줌.



Tool - Options 가서 Decrypt HTTPS traffic 옵션을 켜줌. 뭐 인증서 설치하라고 뜰텐데 설치 해주면 됨



좌측 하단을 봤을때 Capturing 마크가 떠 있어야 정상적으로 작동중인거임. 없으면 저 부분을 한번 클릭하셈


이제 아까 readme 폳더에 있던 UserAssembly.dll 파일을 3.2 클라이언트\GenshinImpact_Data\Native에 복사



브라우저에 서버IP:8080 치고 들어가면 아이디 만드는 화면이 나오는데 아이디 만들어줌



그리고 게임 켠 다음에 아이디 아까 만들었던거 입력하고 비밀번호는 대충 암거나 치면 접속 완료




구동 끝


6. 기타 오류 및 질문


Q. 아이디 입력 창이 안 뜨는데?

A. 서버 제대로 안켜짐


Q. 접속은 되는데 흰 화면만 나옴

A. RAM 부족. 가상 머신에 램 더 할당 해야 함. 말했듯이 minimal 구동이 최소 14GB 필요


Q. 흰 화면에서 네트워크 에러 뜸

A. 서버 부팅중. 이렇게 램이 안정화가 되야 서버 부팅이 끝난거임. 10분이상 걸리니까 좀 기다리셈


Q. GM명령어 어캐 씀?

A. 브라우저로 씀. 양식[ http://<서버 IP>:10106/api?region=dev_docker&ticket=GM&cmd=1116&uid=<UID>&msg=<COMMAND> ] 자세한건 서버 배포 페이지로


Q. 서버 어떻게 끔?

A. docker compose -f hk4e-minimal.yml stop 참고로 처음 이후 서버 킬때 build로 켜지 말고 docker compose -f hk4e-minimal.yml start로 켜셈.



일단 이정도로 구동은 끝나는데 나머지 수정 방법이라던가 그런거 알고있으면 정보 공유 부탁

3.2이후 버전도 좀 풀렸으면 좋겠다...