본문 바로가기
서버/리눅스 서버

13. 우분투 프리배틀넷 서버 구축하기 (pvpgn, bnetd)

by ㅋㅋ잠자 2014. 10. 18.
반응형

안녕하세요. 도정진입니다.

   

이번에는 스타1, 워크? 에 사용되는 배틀넷 서버를 구축해 보도록 하겠습니다.

   

실제로 아는 지인들과 게임을 하기 위해서 대부분 UDP 를 사용했었는데 왜 인지는 잘 모르겠지만 방을 만들면 잘 보이지 않아서 피쉬서버를 이용했었습니다.

   

그런데 문제는, 피쉬서버는 사용자가 많아서 약간 딜레이가 생긴다는게.. 정말 문제였습니다.

   

   

그래서 한가지 생각한 것이 어차피 피쉬서버도 프리배틀넷으로 구동 되는 것을 보면 아마도 배틀넷 소스가 있지 않을까 생각하여 찾아본 것입니다.

   

수많은 가이드가 있었지만 대부분 윈도우에 관한 내용들이였고 소스 파일은 다운받을 수가 없게 되어 있었습니다.

   

그래서 이렇게 작성을 합니다.

   

   

   

   

실제로 개인적인 용도로 운영중인데 아주 괜찮습니다 ㅎㅎ 딜레이가 적네요.

   

   

   

   

   

   

1. 소스 다운받기

   

아래의 주소로 이동해 두 파일을 받습니다.

   

http://sourceforge.net/projects/pvpgn.berlios/files/pvpgn-1.8.5.tar.gz/download

   

http://sourceforge.net/projects/pvpgn.berlios/files/Support%20files/pvpgn-support-1.2.tar.gz/download

   

   

두 파일을 다운받고 압축을 푸셔서 WinSCP 로 /usr/src 에 올려줍니다.

   

실제로 터미널에서 받으셔서 압축을 푸셔도 상관 없습니다. ㅎㅎ

   

   

   

   

   

   

   

   

2. 소스 빌드하기

   

Xshell 이나 Putty 를 이용하셔서 터미널 접속을 해 주시고 시작 디렉터리를 cd 를 통해 pvpgn-1.8.5 아래의 src 폴더로 맞춰 줍니다.

   

Cd /usr/src/pvpgn-1.8.5/src

   

그리고 ./configure 를 합니다. 기본적으로 위치를 잡아 주지 않으시면 /usr/local 에 bnetd 로 깔리는 것으로 알고 있습니다. 저는 위치를 약간 바꾸기 위해서 아래와 같이 입력했습니다.

   

./configure --prefix=/usr/local/bnetd

   

그런데 실제로 이 작업을 하게 되면 권한이 없다는 에러가 뜹니다. 이 문제를 해결하기 위해서 아래와 같이 실행 권한을 주고 혹시 없으면 gcc 도 설치해 줍니다.

   

Chmod +x configure

Apt-get install gcc

(아 워드 계속 대문자가 되서 짜증납니다 ㅠ)

   

   

그리고 다시 위의 명령을 실행해 주시면 화면에 뭔가 주르륵 뜨고 빌드하기 위해서 아래의 명령을 입력해 줍니다.

   

make && make install

   

&& 이 의미는 make 를 한 다음 make install 명령을 실행하라는 소리 입니다. !!

   

빌드가 오드로이드U2 기준으로 3분안에 끝나고 설치가 정상적으로 됩니다.

   

   

   

   

   

   

   

3. pvpgn , bnetd 패키지 설정하기

   

딱히 설정할 것이 없습니다. 세부 설정을 하실 분들은 다른 곳을 참고해 주세요 !

   

일단 MySQL 을 사용하지 않고 파일 방식의 DB를 택했기 때문에 거의 설정할 것이 없지만 호스트 네임을 설정해 주지 않으면 흔히 이런 에러 (Latency is too high.) 가 뜹니다.

   

정말 핑이 높아서 접속이 안될 수 있지만 대게 설정이 잘못된 경우입니다.

   

/usr/local/bnetd/etc 로 이동하셔서 bnetd.conf 파일을 엽니다.

   

   

기본적으로 저 부분은 *:6200 으로 되어 있을 껍니다. 이렇게 설정이 되어 있으면 계정 만들기는 정상적으로 되나 방을 만들면 그 방으로 접속을 하지 못합니다.

   

서버가 공인IP가 할당되어 있다면 공인아이피를 할당햏 주시고 , 공유기에 물려있다면 ifconfig 명령어를 통하여 할당된 IP 를 입력해 주시길 바랍니다.

   

그 다음,

   

받은 서포트 파일을 모두 /usr/local/bnetd/var/files 에 넣어줍니다.

   

   

   

그럼 설정은 끝났습니다!

   

   

   

   

   

   

   

   

4. 서버 실행해보기

   

터미널 창에 아래와 같이 입력합니다.

   

/usr/local/bnetd/sbin/bnetd

   

이렇게 입력하면 서버가 실행됩니다.

   

기본적으로 빌드하면 대부분 service ++++ restrart, stop, start 스크립트가 없습니다..

   

물론 만들어서 넣어주면 되지만 귀찮기 때문에 ㅎㅎ

   

   

동작되는지 상황은 아래와 같이 포트를 검색해보시면 됩니다.

   

   

정상적으로 LISTEN 중임을 알 수 있습니다. 이 정보로 공인아이피라면 ufw 나 iptable 설정을 해주셔야 하고

   

공유기에는 6112번은 TCP/UDP, 6200은 TCP만 포트포워딩 해주시면 됩니다.

   

   

   

그리고 부팅시 자동실행은 /etc/rc.local 파일을 수정하여 간단하게 추가했습니다.

   

   

   

   

   

   

   

   

   

5. 서버 접속, 레지스트리 배포하기

   

아래 프로그램을 이용하면 쉽게 배포가 가능합니다.

   

http://www.mediafire.com/download/smwj6a5evb08a9j/BNGatewayEditor.exe

   

   

이름은 아무거나 입력해 주시고 ZONE 은 -9 (한국) , IP는 도메인이나 아이피 적어주시면 됩니다.

   

그리고 레지스트리 파일로 꺼내시면 됩니다.

   

   

제 서버 배틀넷 운영중입니다. 혹시 사용하시려면 아래 레지스트리 등록하시면 됩니다.

   

http://djjproject.com/djjserver.zip

   

   

혹은 w런처를 통해 쉽게 기입이 가능합니다.

   

   

   

   

   

   

   

   

   

6. 실행 스크린샷

   

   

   

   

   

실제로 실행되는 사진은 찍지 못했지만 정상적으로 아주 잘 됩니다 ㅎㅎ

   

   

감사합니다.

반응형

댓글