게임 서버 구축 (6)

jw·2023년 11월 22일
0

게임 서버 구축

목록 보기
7/19

서버 구축

OS 재설치 (CentOs 7) & 관리자 설정

OS 설치

이전 서버 설치 글을 보면, 우분투를 설치하여 서버 운영체제를 구축하였다. 하지만, 다양한 마인크래프트 커뮤니티를 찾아보며, 우분투 os는 마인크래프트 서비스를 운영하기에는 다소 무겁다는 의견이 많았다.

그래서 CentOs7 os를 사용하기로 하였고, minimal로 설치하였다.

파티션은 나누지 않았고, 전부 default setting으로 설치하였다.
os 설치 과정은 앞서 우분투를 설치하면서도 다루었고, 특히나 centos 설치는 매우 간단하기 때문에 따로 기록하지 않았다.

관리자 설정

현재 우리 프로젝트 인원 3명 모두 서버에 관리자로 등록을 하였다.
sudo 그룹 및 권한 설정을 진행했다.

DDNS 재설정 (NO-ip)

DDNS 서비스도 변경하였다.
이전에는 무료 도메인 서비스인 Duckdns를 사용하였는데, 회의 이후 더 괜찮은 DDNS 서비스 제공 업체가 있는지 알아보다가 NO-ip로 변경하기로 했다.

No-ip

https://www.noip.com/

선정 이유

  1. 더 나은 서비스 기능들을 제공한다

    • Two-Factor Authentication Status
    • Last Login & Last Login IP Logs
    • Send system updates via my Email
  2. 보안 면에서 더 좋은 성능을 낸다고 함

단점이 한가지 있다면... 30일 무료이고, 지나면 돈을 지불해야 한다.
일단 사용해보고, 돈을 지불한다고 해도 가장 basic type이 한달에 2달러 정도 이기 때문에 괜찮다면 계속 사용하지 않을까 싶다

공유기 포트포워딩 & 서버 방화벽 설정

os가 UBUNTU -> Centos7 으로 바뀐 것 외에는, 동일한 부분이 많기 때문에 그 과정은 따로 다루지 않겠다.

SSH & SFTP 환경 구축

SSH와 SFTP 환경 구축 역시 도메인 주소와 포트 정도만 바꾸었기 때문에,
앞서 다루었던 부분과 다소 겹치므로 다루지 않겠다.

IPTIME WOL (Wake On Lan)

이전 글에서 포트포워딩 과정을 설명하면서, 원격관리 포트가 열려있는 부분에 대해 WOL을 위해 열어둔 포트이고 이후에 다룰 예정이라고 언급한 적이 있다. 바로 그 WOL을 드디어 적용했다.

WOL 이란?

패킷을 이용해 원격으로 컴퓨터를 부팅하는 기술

목적 & 이유

프로젝트를 진행하면서 장소에 크게 구애받고 싶지 않았다.
그리고 서버 컴퓨터가 본인 집에 있기 때문에, 다른 팀원들이 서버에 접근하려 할 때 컴퓨터가 꺼져있다면 본인에게 서버를 켜달라고 해야했기 때문에, 이 부분을 개선하고 싶었다.
뭔가 번거롭기도 하고, 굳이 꼭 그래야하나? 원격으로 컴퓨터를 제어할 수 있는 기능같은건 없나? 이런 생각들을 하며 웹서칭을 하다가 WOL 기능을 알게되었고, 서버에 적용해보기로 했다.

과정

1) 서버 컴퓨터가 wol 지원하는지 확인

WOL 환경을 맞춰주려면 다음 2가지가 필요하다.

  1. 서버 pc가 유선랜에 연결되어 있어야함
  2. 서버 pc의 메인보드 및 네트워크 카드가 WOL을 지원해야함

1번은 맞춰주었고, 2번은 다음 과정을 통해 만족함을 확인 할 수 있었다.

$ sudo ethtool 인터페이스명 | grep Wake-on

wake-on 옵션이 존재한다면, WOL을 지원한다고 할 수 있다.
원래는 d로 되어있지만, 이미 설정을 바꿔둔 상태라 g로 되어있는 것을 볼 수 있다.

그렇다면 그 설정은 어떻게 바꾼 것 인가?

sudo vi /etc/sysconfig/network-scripts/ifcfg-인터페이스명


vi 편집기를 사용하여 다음 옵션을 추가해주었다.
이렇게 하면, 재부팅 하더라도 옵션이 적용된다.

2) 바이오스 세팅

여기까지 진행했다면, 다음으로는 서버 pc의 UEFI / BIOS 에서 전원 관련 설정을 바꿔주어야 한다.
(캡쳐가 불가능해 사진은 직접 촬영하였다)


우선 부팅시에 BIOS 모드 진입 키를 눌러 모드로 진입해준다.


Settings > Advanced 로 들어간다


Make Up Event Setup 을 클릭


Resume By PCI-E Device 설정을 [Enabled] 로 수정해준다.

3) IPTIME 설정(원격 포트, IPTIME DDNS, WOL)

(이 과정은 서버 정보도 포함되기 때문에 다른 블로그에서 모자이크를 해둔 사진으로 대체한다)

  • 공유기 WOL 설정
  1. 현재 접속된 pc의 주소로 MAC 주소를 설정한다. 이 경우, 본인은 현재 공유기에 2개의 컴퓨터가 연결되어 있기 때문에, 서버 컴퓨터의 MAC 주소로 넣어주었다.
  2. pc 설명을 넣고 싶다면 간단하게 넣는다
  3. 추가
  4. 추가가 잘 된 것을 볼 수 있다. 옆의 pc 켜기 체크박스를 누르면 켜지기는 하는데, 웹으로 접속해서 눌러줘야하는 번거로움이 있다.
  • 원격 관리 포트

사진의 예시는 8080으로 되어있지만, 개인적으로 1만대 이상의 큰 숫자를 추천한다.
원격 관리를 위한 포트를 추가해준다

  • 공유기 DDNS 설정

호스트 이름과 사용자 ID를 입력하면 .iptime.org 로 끝나는 DDNS를 얻을 수 있다.
1개만 설정 가능하며, 사용자 ID는 이메일 형태로 등록해야 한다.
이제 외부 네트워크에서 공유기 관리에 접근 할 수 있다.

4) IPTIME WOL 앱 설치 & 공유기 연동

사실 이 WOL 기능을 사용하려한 가장 큰 이유다.
스마트폰에서! 그것도 외부 네트워크를 사용하며! 컴퓨터를 켤 수 있다.

  1. 앱스토어 or 플레이스토어 에서 해당 앱을 설치한다.

  2. 앱 설치 후, 공유기 추가에서 외부 네트워크 공유기 추가를 해준다

추가가 잘 되었다.

  1. PC는 MAC 주소를 활용하여 추가해준다. 추가 후 해당 pc를 클릭하면 다음과 같은 문구가 출력된다.

5) 작동 확인

나름 결과를 기록으로 남겨보고 싶어서 찍어봤다. (gif라 화질이 좋지 않다)

다른 팀원들에게도 디스코드를 통해 설치 및 사용법을 공유했다.
이제 집 밖에서 회의해도 될 듯 하다!

모바일 환경 SSH

사실 WOL의 문제점이 하나 있다.
바로 컴퓨터를 켜는 것만 가능하다는 사실.. 끄는건 불가능하다.
그래서 추가로 스마트폰에서 사용할 수 있는 SSH를 설치했다.

1) termius 앱 설치 및 회원가입

  1. 앱 설치 후, 서버 정보 및 관리자 정보들을 입력하면 SSH를 사용 할 수 있다.
    간단하게 poweroff 명령을 넣어보았다. poweroff 위의 로드는 현재 마인크래프트 서버 상태를 출력해보았던 로그이다. Active 상태로 서버가 잘 켜져있다.

이제 외부 네트워크에서 pc on/off와 서버 on/off
둘 다 가능하다!

게임 os 설치

이전과 크게 달라진 부분이 없다. 한 가지 다른 점이 있다면,
서버 디렉토리를 2개로 나누어 테스트 서버와, 본 서버로 나누었고, systemd는 부팅 시 우선 테스트 서버만 자동으로 켜지도록 현재 설정해두었다.

게임 내부 명령 콘솔

rcon이란?

콘솔을 통해 서버관리자가 마인크래프트 명령어를 원격으로 실행할 수 있게하는 프로토콜

과정

매우 간단하다. 우선 이전 글에서 복돌 유저를 허용하기 위해 건드렸던
server.properties 파일에 다시 들어간다.

해당 옵션들 중 2가지를 수정할 것 이다.
rcon-enable: true로 설정할 경우 rcon 기능을 허용
rcon.password: rcon의 비밀번호를 설정

이외에 rcon.port 옵션도 있다. 기본 rcon 포트인 25575포트를 사용할 것 이기에 따로 수정하지 않았다.

실행1


Logged in 이라고 문구가 뜨며, 명령어를 입력할 수 있는 상태가 되었다.

rcon 접속을 성공했다는 메시지가 뜬다.

실행2


유저 중 한명에게 관리자 권한을 주었다.

로그에도 잘 나타나는 것을 확인할 수 있다.

실행3

이번에는 서버 내의 유저에게 메시지를 보내보았다.
(놀랍게도 닉네임이 beoreogee.. 어떻게 유저 이름이..)

인게임 내부 캡쳐 화면을 보면 다음과 같이 rcon에서 전송한 메시지라고 잘 뜨는 것을 볼 수 있다.

이외에도 인게임 내부에서 사용할 수 있는 다양한 명령어들이 있다.
다음은 명령어 중 일부

앞으로 서버 운영 및 개발 하면서 다양하게 사용될 듯 하다.

profile
『Infra Engineering』

0개의 댓글

관련 채용 정보