마인크래프트 서버 설치 스크립트

Minecraft 사이트에서 bedrock server 정식 버전을 내려받아 우분투에 설치하는 방법을 지난 포스트에서 살펴봤는데, 이번에는 설치 스크립트를 이용하여 편하게 설정하는 방법을 알아본다.

Ubuntu 20.04 LTS 버전 기분으로 다음과 같이 실행하면 간단하게 설치할 수 있다. 시작, 종료 스크립트와 재실행 스크립트를 제공해주는데, 재실행하는 경우 worlds를 백업하여 저장해주는 기능도 있다. 기본적으로 contab에 재실행 스크립트가 등록되어 매일 새벽 4시에 재실행하면서 백업을 진행하게 되어있다.

참고한 사이트는 여기다.

위 사이트 내용을 따라가며 설치하면 간단한데, SetupMinecraft.sh을 내려받아 실행하기만 하면 된다.

wget https://raw.githubusercontent.com/TheRemote/MinecraftBedrockServer/master/SetupMinecraft.sh
chmod +x SetupMinecraft.sh
./SetupMinecraft.sh

~/ 디렉토리에서 위의 커맨드를 복사&붙여넣어 실행하면 필요한 패키지들을 설치한 후 몇가지 설정을 묻는다. 적당히 입력을 하면 바로 bedrock 서버가 실행된다. stop 커맨드로 서버를 종료한 후, server.properties 파일을 적당히 변경하고 worlds를 복원해주면, 기존에 탐험하던 worlds가 나타난다.

마인크래프트 실행중인 로그를 보려면 screen -r 커맨드로 attach하면 되고, ctrl + a, d 단축키를 통해 스크린 세션에서 빠져나올 수 있다.

백업본을 한 번 열어봤는데, worlds 디렉토리를 그대로 백업해준다. 매일 백업본이 생기니 안심이 된다. ㅎ

마인크래프트 bedrock 서버 만드는 법

아이들이 마인크래프트를 하게 되어 같이 할 수 있도록 서버를 하나 만들기로 했다. Windows 10, iOS, Android에서 실행되는 마인크래프트 버전은 bedrock 버전이다. 따라서 bedrock 서버를 설치하고 실행하면 함께 접속하여 플레이 할 수 있다.

먼저 서버로 사용할 PC가 필요하다. 마인크래프트 정식 서버는 Windows 10 버전과 Ubuntu 버전 두가지로 배포가 된다. 여기서는 Ubuntu 버전을 설치하는 방법을 설명한다.

오래 된 본체 중 i3 / 4GB Ram을 가진 본체가 하나 있어서 여기에 설치를 했는데, 우분투 최소 설치 후 필요한 패키지들을 하나하나 설치를 했다.

먼저 shell 접속할 수 있도록 openssh-server를 설치해준다. 설치 후 PC에 ssh로 접속해보면 잘 접속이 될 것이다. 최소 설치를 하면 없는 패키지들이 많기 때문에 net-tools 등 설치를 해야 한다.

$ sudo apt install openssh-server
$ sudo apt install net-tools

그리고 네트워크를 공유기에 연결 후 고정 아이피 설정을 해 준다. 내부 IP가 고정이 되어있어야 껐다 켰을 때 동일한 IP를 받아오게 되고 그래야 포트 포워딩을 할 수 있다. PC에서 static IP를 주는 방법 또는 공유기 DHCP 설정에서 동일 IP를 할당하도록 해도 된다.

그리고 마인크래프트 서버가 사용할 포트를 공유기에서 포트 포워딩 해준다. 기본 포트는 19132번이다. 물론 마인크래프트 서버 설정에서 변경할 수 있다. 변경 후에는 당연히 포워딩할 포트를 공유기에서도 바꿔줘야 한다.

여기에 접속해보면 서버를 다운로드하는 링크가 있다. Ubuntu용을 다운로드 한 후 적당한 디렉토리에 압축을 푼다. 나는 ~/bedrock-server/ 에 압축을 풀어놓았다.

그리고 ssh 접속이 끊어져도 서버가 실행될 수 있도록 screen 패키지를 설치해준다.

서버 실행 전에 server.properties를 열어서 적당히 설정 값을 바꿔준다. 서버 이름이라던가 동시에 접속할 수 있는 사용자 수 등 설정 가능하다.

서버 실행은 아래와 같이 screen 실행 후에 하면 된다.

$ screen
(실행하면 엔터를 치라는 화면이 나오고, 엔터를 치면 화면이 지워지고 새로운 shell이 나타난다.)
$ LD_LIBRARY_PATH=. ./bedrock-server
(새로운 shell에서 bedrock-server 실행)

위와 같이 실행을 하면 열려있는 포트 번호와 함께 server started 메시지가 출력된다. 이 상태에서 ssh 접속한 터미널 창을 그냥 종료한다. screen 때문에 bedrock-server가 실행 상태로 쉘을 닫을 수 있다.

NO LOG FILE! - setting up server logging...
[2020-08-28 16:45:35 INFO] Starting Server
[2020-08-28 16:45:35 INFO] Version 1.16.20.3
[2020-08-28 16:45:35 INFO] Session ID 82..........................
[2020-08-28 16:45:35 INFO] Level Name: smct
[2020-08-28 16:45:35 INFO] Game mode: 0 Survival
[2020-08-28 16:45:35 INFO] Difficulty: 1 EASY
[2020-08-28 16:45:35 INFO] opening worlds/smct/db
[2020-08-28 16:45:38 INFO] IPv4 supported, port: 19132
[2020-08-28 16:45:38 INFO] IPv6 supported, port: 19133
[2020-08-28 16:45:38 INFO] IPv4 supported, port: 56403
[2020-08-28 16:45:38 INFO] IPv6 supported, port: 60925
[2020-08-28 16:45:40 INFO] Server started.

추 후 새로 ssh 접속 후에 screen -list 명령을 쳐 보면 screen이 하나 생성되어있는 것을 확인할 수 있다. 그리고 ps a 명령으로 bedrock-server 프로세스가 실행중이라는 것을 확인 가능하다.

cky@cky-ubuntu:~$ ps a
    PID TTY      STAT   TIME COMMAND
    762 tty2     Ssl+   0:00 /usr/lib/gdm3/gdm-x-session
    764 tty2     Sl+    0:00 /usr/lib/xorg/Xorg vt2 -displayfd
    932 tty2     Sl+    0:00 /usr/libexec/gnome-session-binary
   1605 pts/1    Ss     0:00 /bin/bash
   3235 pts/1    S+     0:00 /bin/bash
   3236 pts/1    Sl+    0:08 ./bedrock_server
   3335 pts/0    Ss     0:00 -bash
   3342 pts/0    R+     0:00 ps a

screen -r 커맨드를 실행하면 bedrock-server 실행했던 shell로 복귀하여 서버 로그도 확인 가능하다.

마인크래프트 클라이언트에서는 서버를 추가하여 접속하면 된다. IP에는 외부 IP 주소를, 포트에는 열어둔 포트를 적으면 되고, 이름은 알아보기 편한 아무 이름이나 입력하면 된다. 🙂

위 설명은 기본적은 내용이고, 설치 스크립트를 이용하여 간단하게 설치하는 방법도 있다.

서비스 호스트: dns client CPU 점유율 해결 방법

특정 프로그램을 실행하면 서비스 호스트: dns client의 CPU 점유율이 함께 높아지면서 프로그램을 원활하게 실행하지 못하게 되는 경우가 있다. 이럴 때 dns client를 실행하지 않게 하여 CPU 점유율을 빼앗기지 않는 방법이 있어서 적어둔다.

이 서비스가 실행되는 이유는 dns주소를 자동으로 가져오기 때문이다. 즉 수동으로 dns 서버 주소를 설정해두면 이 서비스가 필요가 없다.

네트워크 어댑터 속성 > 사용하는 어댑터 > 인터넷 프로토콜 버전 4 (TCP/IPv4) 속성에 들어가서 아래와 같이 DNS 서버 주소를 설정해준다.

제일 간단한 것은 1.1.1.1을 사용하는 것이다. 구글 DNS(8.8.8.8)를 사용해도 된다. 원하는대로 적어주고 확인을 눌러 저장해준다.

Public DNS server 설정

그 다음 관리자모드로 터미널을 열어 아래 커맨드를 실행해준 후 재부팅한다. 혹시 다시 enable시켜줄 것이라면 아래 4대신에 2를 넣어주고 재부팅하면 된다.

reg add "HKLM\System\CurrentControlSet\Services\Dnscache" /v "Start" /t REG_DWORD /d "4" /f

Time Locker 중독성 강한 슈팅 게임

Time Locker라는 슈팅 게임을 틈틈이 즐기면서 얻은 팁 몇 개 적어본다. 중독성이 너무 강해서 Clash of Clans 이후로 가장 많이 한 게임인 것 같다. 단순한 게임은 잘 안하는 편인데 이건 뭔가 조금만 더 라는 느낌이 많이 남아 계속 하게 되었다.

NEW TOP 433793 WAVE 203 – MUCUS

조금만 해봐도 알겠지만 이건 신중함이 우선이다. 시간에 쫒겨 어쩔 수 없이 죽는 경우가 발생할 수 있지만 나오는 적들에게 부딪혀 죽는 것 보다 낫다. 갑자기 튀어나온 적에 부딪히면 멘탈이 살살 흔들린다. 옆으로 움직일 때는 더욱 천천히…

코인으로 살 수 있는 캐릭터가 엄청 많은데, 이게 뽑기라서 원하는걸 사기가 어렵다. 한참을 뽑아야 겨우 원하는 캐릭터가 나오는 경우도 종종 있다.

좀 쾌적하게 할 수 있는 캐릭터는 War Frog, Missile Master, Mucus등 유도탄을 많이 쏴대는 애들이다. 어느정도 무기가 갖춰지면 왠간해선 잘 안 죽는다. 단 총알을 쏘는 애들은 조심해야하는데 내 무기에 가려 잘 안보이기 때문..

Big Line Locker도 궁극적으로는 괜찮을 것 같은데 이상하게 점수는 잘 안 나온다. 아이템 나오는 것을 생각하면 War Manmoth도 좋을 것 같은데 크기가 커서그런지 생각만큼 잘 안된다.

특이하게 레이저를 쏘거나 뒤로 쏘거나 하는 애들은 무기가 업그레이드되지 않아 뒤로갈수록 화력이 좀 딸리는 느낌.

그리고 게임 중 얻을 수 있는 무기는 제약이 있는 것 같다.

Guard Bit또는 Supporter는 아무리 진행해도 하나 이상 나오지 않는다. Line과 지뢰, 레이저, 로켓 등도 마찬가지 기껏해야 두개 정도 나온다. 나머지는 죄다 Twin shot, Wide shot, Side shot만 주구장창 나온다.

Side shot등의 아이템을 60개 정도 먹으면 끊이지 않고 나갈 것 같은데, 아직 그렇게까진 못 해봤다.

Hard 모드도 처음 할 때 처럼 생각만큼 어렵진 않다. 10만 점 정도는 도전해봄직 하다. ^^

광고 제거 앱내 구입이 있었으면 벌써 구입했을텐데 없어서 아쉽. 유료 캐릭터는 초반에 무료로 주는 것 말고는 구입해보지 않았다. 뭐가 뭔지도 모르겠고 왠지 아까워서…

코인으로 뽑은 캐릭터들

클래시오브클랜 8홀 마스터리그 찍기 (2017년)

2017년 2월 5일. 드디어 마스터리그 찍고 보석 1000개 받아 5장인 체제를 구축했다.

클래시오브클랜이 대대적으로 업데이트 되면서 타운홀을 빼두는 플레이를 못하게되어 홀이 빠진 마을은 찾아볼 수가 없었다. 그나마 빈집들은 좀 남아있어서 마지막에는 홀만 깨자는 식으로 진입하여 별을 따냈다.

2000대 초반까지는 그럭저럭 버틸만 하다. 클랜전 하는 수준으로 공격을 하면 실패할 일은 거의 없다. 그러나 2400 이후가 되면 빈집이라도 9홀의 막강한 방타들이라서 제대로 배치된 마을은 들어갈 엄두를 못 낸다.

한번 공격 당하면 거의 100% 파괴되어 트로피 20 정도 마이너스. 공격 네번 정도 하면 트로피 60정도 올라가고 보호막 풀린다. 운이 좋아서 방어 성공을 한다면 좀 빨리 올라가겠지만, 자원통 다 빼놔도 초토화시키고 간다.

자원통을 다 빼놔도 자원만 먹고 나가는 사람은 없다.

2400 올라간 후 잠깐 접속 끊은 사이에 복수가 들어왔는데, -39점… 이후 세시간 정도 접속 유지하고 가속 돌려가면서 2600을 찍어냈다.

사용한 병력은 주로 발키리. 자이언트 마법사로 길 정리해주고 월브레이커로 벽좀 뚫어놓은 다음에 바바리안킹과 발키리를 홀쪽으로 밀어넣는 식으로 주로 싸워나갔다. 좀 지겹다 싶으면 클랜전 하듯이 올 드래곤으로도 트로피 점수를 올렸다.

가속을 돌려도 전투 후 6분 정도는 대기해야 했기 때문에 정말 지루했다. 보석이 1200개 넘게 있었는데 몇 번 가속 돌리고 나니 1000개 겨우 남는 수준으로…

돌이켜보면 발키리 2업 된 다음에 시도했다면 조금 더 수월했을 것 같다. 추가로 다크배럭도 발키리 뽑을 수 있게 업을 한 후라면 시간도 단축이 되었을거다.

8홀 올라와서 자이언트, 마법사, 바바리안 킹 정도 업을 한 후 진행을 했다. 아래 그림과 같은 상태로…

8홀 마스터리그 진입 유닛 상태

이제 5장인이 되었으니 적당히 보석 써가면서 천천히 즐기면 될 것 같다. 무과금 사용자들 화이팅! 🙂

마인크래프트 하나의 계정으로 멀티 하는 방법

두 컴퓨터에 마인크래프트를 설치하고 하나의 계정으로 로그인 한 뒤, 함께 서버에 접속해보면 먼저 접속한 플레이어는 튕기면서 같이 게임을 할 수 없다.

합법적이진 않은 것 같지만, 클라이언트 프로그램에서 Display Name을 속임으로서 하나의 서버에서 같이 플레이할 수 있는 방법이 있어서 기록해둔다.

10410951_770265816342243_6285264405292480096_n

Server 설정

server에서 server.properties 파일을 열고 online-mode=true 로 되어있는 것을 false로 수정한다.

Display Name 수정

하나의 클라이언트는 그대로 두고, 동시에 접속하려는 클라이언트가 설치된 컴퓨터에서 launcher_profiles.json 파일을 수정한다.

“displayName” : “your name” 이라고 되어있는 부분에서 your name 부분을 원하는대로 고친다. 수정한 후 이 파일을 read only로 설정하여 마인크래프트 클라이언트가 파일을 수정하지 못하도록 설정한다.

참고로 Mac의 경우 ~/Library/Application Support/minecraft/ 디렉토리에 파일이 존재하고, chmod 444 launcher_profile.json 이라고 치면 read only가 설정 된다.

게임 실행

아무 수정도 하지 않은 클라이언트에서 접속하면 원래 설정한 Display Name으로 게임에 접속이 된다. 수정한 클라이언트에서도 동일하게 접속을 시도하면 수정된 Display Name으로 접속이 되고 동시에 플레이 가능하다. 🙂