[Daily Poll] 작업일지(1-a) - 마인크래프트 서버 설치

이번에도 역시 의식의 흐름대로...
전문가들이 본다면 뭘 당연한 걸 적어놨나 싶겠지만, 그냥 공부한 걸 복습할 겸 기록하고 있다.

이전 글의 마지막에 말했듯이 성능이 좋은 서버가 생기니 다른 걸 하고 싶은 욕구가 생겼다.
집에 있던 N100 미니PC를 아이들과 함께 노는 마인크래프트 서버로 사용하고 있었는데, 이 서버를 오라클 클라우드의 인스턴스에 설치해 보았다.

심플하게 바닐라 서버만 실행하면 되기에 openjdk21 설치 후, minecraft 서버를 간단하게 실행하면 끝이다.

하지만 이걸로 외부에서 접속할 수는 없다. 이 인스턴스는 VCN과 Subnet 안에 위치하고 있기에, 외부의 접속 요청이 이 서버까지 도달할 수가 없기 때문이다.

간단하게 표현을 해 보자면

(내 PC의 마인크래프트) - (VCN) - (Subnet) - (Instance)

이렇게 구성되어 있을 때 마인크래스트 접속 요청이 25565번으로 가게 되는데, (내 PC) - (VCN) 사이에서 VCN 가 이걸 통과시켜 주지 않기 때문이다.

이전 글대로 서버 인프라를 구축했다면, VCN 과 Subnet 이 동일한 보안 규칙을 사용하게 된다. 그래서 VCN 혹은 Subnet 둘 중 아무데서나 보안 탭 > 보안 규칙으로 들어간 다음 25565 포트를 열어주면 된다.


자, 그럼 이제 될까? 여전히 안된다. Instance 자체에도 방화벽이 있기 때문이다.
인터넷을 찾아보면 다양한 솔루션들이 나오는데, 무작정 따라하면 안되고...
내가 확인한 바로는 ubuntu 계열이라면 iptables 를 직접 사용하거나 ufw 추가로 설치해서 사용하면 되는 것 같다. Redhat 계열은 firewalld 를 사용하는 솔루션을 찾으면 된다.

ufw 가 좀 더 편리하다고 하는데, 그냥 포트 하나 추가하는데 굳이... iptables 사용하는 명령어도 찾으면 다 나오는 걸...

한국에 있는 춘천 리전이라 느리지도 않고, N100 보다도 더 성능이 좋은 거 같다.

그런데 게임을 하고 있으니 갑자기 누군가 접속해서 뭐라하고 바로 나간다.
'뭐지?' 하고 봤더니... 

--------------
[16:02:16] [Server thread/INFO]: matscan joined the game
[16:02:16] [Server thread/INFO]: <matscan> Hello. I'm a friendly bot that scans the internet for Minecraft servers.
[16:02:17] [Server thread/INFO]: <matscan> This server isn't whitelisted, which means griefers can and probably will join it. To avoid this you must whitelist the server with the commands '/whitelist on' and '/whitelist add <player>'.
[16:02:17] [Server thread/INFO]: <matscan> If it was meant to be public, please ensure that the server is taking frequent backups to prevent permanent damage in the event that it is targeted.
[16:02:17] [Server thread/INFO]: <matscan> - mat | FAQ: https://matdoes.dev/matscan
[16:02:19] [Server thread/INFO]: matscan lost connection: Disconnected
--------------

whitelist 설정하라고 하고 나갔다. 착한 친구네. 다행히 내가 접속해 있는 동안 왔다 가서 볼 수 있었지, 그게 아니었다면 굳이 마크 서버 로그를 볼 일이 없었을텐데.
어쨌거나 마크 기본 포트를 쓰는데다 보안 규칙에 소스를 0.0.0.0/0 했더니 어디서나 접속이 되기에 문제가 있긴 하다. 바로 whitelist on 하고 나와 아이들 계정만 허용해 주었다.

아차 마지막으로 서버를 실행할 때 ssh 접속해서 실행했는데, 그냥 터미널에서 실행하면 터미널 종료되면 마크 서버도 종료된다. nohup 을 써야 하나 했는데, 누군가 screen 을 추천해줘서 보니 이게 훨씬 낫다.

오늘은 여기까지. 끝.

댓글

이 블로그의 인기 게시물

[게임개발 스토리] 장르/타입/조합 정보와 몇 가지 팁

[윈도우] 실행 중인 프로그램의 타이틀을 변경하는 유틸리티

Synergy 한글키 패치 공식 버전 적용 및 최종 정리