나스를 구매했습니다. 나스를 구매한 이유는 여러가지 이유가 있는데, 그중 하나는 동기들이랑 하는 게임들의 게임서버를 구동시키는것 또한 이유중 하나였습니다. 오늘은 시놀로지 나스에서 마인크래프트 서버 여는 과정을 한번 정리해 보겠습니다
제 나스의 스펙을 아래에 정리해 드리겠습니다
- Synology NAS DS 720+ (2bay, Intel Celeron J4125)
- Storage : 4tb + 4tb / RAID 1
- RAM : 10GB(2GB + 8GB, 참고로 16GB는 인식이 되지 않습니다)
제가 알기로는 DS 215j등 일부 모델에서는 사양 부족으로 인해 구축이 안되는거로 알고있습니다. 모든 모델에서 구축되지 않을수 있다는점 참고해주시면 감사하겠습니다.
1. 나스에 도커 설치 및 이미지 활성화 시키기.
서버를 구동하기 위해서는 'Docker'앱이 필요합니다. 왜냐하면 저희는 도커 컨테이너를 사용해서 서버를 띄울꺼기 때문이죠. 컨테이너가 일반적인 VM에 비해 훨씬 가볍고 리소스 점유에 았어서도 더 유동적입니다. 이외 컨테이너를 사용하는 이유는 따로 찾아봐 주시면 감사하겠습니다. 우선 패키지 센터에 가서 Docker를 다운로드 받아주시기 바랍니다
다운로드가 완료 되면, Docker앱을 실행시켜 주시고, 레지스트리 - 검색 - java를 해주시고 제가 하이라이트 친것과 동일한 컨테이너를 다운로드 해주시면 됩니다. 태그를 선택하라는 창이 나올때 latest 그대로 선택하시면 됩니다.
레지스트리 창에 가면 방금 다운로드 했던 java 도커이미지가 있는것을 확인할 수 있습니다
java이미지 선택 후 실행을 눌러줍니다.컨테이너 이름을 바꾸고 싶은 이름으로 변경하신 후 고급설정을 들어가줍니다.
저같은 경우 고급설정의 자동 재시작 활성화를 켜두는 편입니다. 이걸 체크해 주면 컨테이너가 죽었을때(내려갔을때) 다시 컨테이너를 살려줍니다.
중요한것은 포트를 열어주는 것입니다. 포트설정에 들어가신 후 '추가'를 누른 후 아래와 같이 포트를 열어주세요. 저는 디폴트 포트를 사용한다는 가정에서 진행하겠습니다. 모두 추가하신 후 '적용'을 눌러주세요
이제 기본적인 설정은 끝났습니다. 컨테이너 생성을 완료해주세요.
그러면 아래와 같이 컨테이너가 활성화 된것을 볼 수 있습니다. 이제 나머지 세팅을 위해 컨테이너 터미널에 접근해야합니다. 해당 컨테이너를 클릭하고, 세부사항으로 들어가 주세요.
2. 마인크래프트 설치, JDK 설정
새로운 터미널을 생성해 줍니다. 새로 생성한 이 터미널이 이제 서버의 버킷 역할까지 하게 됩니다.
이제 마인크래프트 서버를 다운로드 해야합니다. https://www.minecraft.net/ko-kr/download/server 이 링크에 들어가서 다운로드 링크 우클릭 후 다운로드 링크를 복사해주세요.
그리고 다시 터미널에 들어가서 아래 명령어를 순서대로 입력해 줍니다. 참고로 시놀로지 나스에서 복사 붙여넣기는 Ctrl + A를 누르신후 Ctrl + C 혹은 Ctrl + V를 누르시면 됩니다.
mkdir ~/minecraft
cd ~/minecraft
wget https://launcher.mojang.com/v1/objects/3cf24a8694aca6267883b17d934efacc5e44440d/server.jar
만약 wget명령어에서 오류가 발생한다면 지금부터 해결법을 알려드리겠습니다. 만약 오류가 나지 않으신다면 2-1을 지나치셔도 좋습니다
2 - 1. wget: unable to resolve host address ‘launcher.mojang.com’ 해결하기
저 또한 처음에 이와 같은 문제를 겪었습니다. 결론적으로 이 문제의 원인을 말씀드리면 'Docker'앱에서 외부 인터넷에 접속을 못하고 있기 때문에 생기는 오류입니다. 기본적으로 도커는 172.17.0.1~172.17.0.255 영역의 IP를 점유하게 됩니다. 저같은 경우 도커에 지속적인 공격이 들어와 아이피 허용범위를 많이 좁혀놨는데, 그 과정에서 해당 IP점유영역을 차단하게 된겁니다. 이를 해결하기 위해서는 제어판 - 보안 - 방화벽에 들어가 준 후 규칙편집으로 들어가 줍니다
그리고 프로파일 편집의 방화벽 규칙 생성 - 소스IP의 특정 IP 체크 - 선택을 눌러 들어가 줍니다
그리고 소스 IP의 IP범위를 아래와 같이 입력해 줍니다.
그 후 아래와 같이 자신이 설정한 포트 제한 관련 규칙보다 앞에다가 놓아줍니다.(그냥 2,3번째에 놓아주시는게 좋습니다). 맨 왼쪽 작대기 3개 쌓여있는 아이콘을 클릭해 순서를 이동할 수 있습니다.
확인을 누르시면 이제 프로파일 적용이 됩니다. 다시 터미널로 가셔서 해당 명령어를 치시면 잘 될겁니다. 만약 되지 않는다면 댓글창에 댓글 남겨주시면 감사하겠습니다.
2 - 2 JDK 설치하기, 서버 실행하기
https://jdk.java.net/archive/ 에 들어가서 Open JDK를 다운로드 해주어야 합니다. 마인크래프트 Java Edition은 기본적으로 Java 기반으로 돌아가는 게임입니다. 그렇기 때문에 Open JDK를 설치해 주어야 하는데요, 우선 주의할 점이 있습니다. 마인크래프트 각 버전마다 최소 요구하는 JDK스펙이 다릅니다. 현재 저는 최근에 릴리스된 1.18버전을 가지고 서버를 열겁니다. 1.18같은 경우에는 JDK 1.17이 최소 스펙이며, 이전 버전인 1.17버전은 JDK 1.16이 최소 스펙입니다. 혹시라도 추후 1.18버전 이상으로 서버를 구축하시는 분은 해당 버전의 최소 JDK스펙을 확인해주시기 바랍니다.
위 archive링크로 들어가서 Linux/x64 tar.gz의 다운로드 링크를 복사해줍니다. 동일하게 해당 부분을 우클릭 한 후 다운로드 링크 복사를 눌러줍니다. 그리고 wget으로 해당 파일을 다운로드 해줍니다
wget https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
그리고 아래 명령어를 입력해 압축 해제를 해줍니다. 이 압축파일 이름은 아래 예제와 다를수도 있으니, ls명령어를 입력해 파일 명을 확인 후 명령어를 입력해 주세요
tar xvf openjdk-17_linux-x64_bin.tar.gz
그리고 이제 마인크래프트 서버를 실행시켜봅시다. -Xmx는 서버에 최대 할당할 램 용량입니다. 여기서는 4GB최대, 1GB최소로 설정하는 예시를 들겠습니다.
~/minecraft/jdk-17/bin/java -Xmx4096M -ms1024M -jar server.jar nogui
근데 마지막에 이런 오류가 뜹니다.
이건 Eula에 동의를 해주어야 한다는 오류문입니다.
cat eula.txt
를 입력하니 eula = false로 되어있는걸 볼 수 있습니다. 이 값을 true로 바꿔주어야합니다
위 명령어를 쳐서 나오는 글을 복사 후 true로 바꿔줍니다. 그리고 바꿔준 글을 다시 복사해줍니다
cat>eula.txt
위 명령어를 치면 eula.txt에 글을 작성할 수 있게됩니다. 위 명령어를 입력하면 커서가 깜빡이게 되는데 그 상태로 붙여넣기(Ctrl + a, Ctrl + v)를 해주고 Ctrl + C로 빠져나와줍니다.
그리고 다시 cat eula.txt를 입력해 잘 적용되었는지 봅니다.
이제 다시
~/minecraft/jdk-17/bin/java -Xmx4096M -ms1024M -jar server.jar nogui
명령어를 입력해 줍니다. 그러면 아래와 같이 서버가 실행되는것을 볼 수 있습니다.
3. 서버 접속해보기
이제 마인크래프트에서 서버로 접속해 봅시다. 그전에 확인할 것이 있습니다. 포트가 정상적으로 열렸는지 봐주어야합니다. https://www.yougetsignal.com/tools/open-ports/ 에 들어가서 포트번호에 25565를 입력 후 Check을 눌러서 포트가 열렸는지 확인합니다.
위와 같이 뜬다면 잘 열려있는겁니다. 만약 그렇지 않은 경우에는 아래 해결책을 보시면 됩니다. 잘 열리신 분은 아래 부분을 무시하셔도 좋습니다.
3 - 1 포트가 열리지 않은경우
포트가 열리지 않는 원인은 제 경험상 두가지 문제입니다. 이 두가지 모두 진행해 봅시다.
- 포트포워딩을 하지 않음
- 방화벽에서 포트를 막음
우선 포트포워딩을 자신의 공유기 설정창에 들어가 진행해 주어야합니다.
저같은 경우 1개 이상의 마인크래프트 서버를 운영 예정이라 포트범위를 넓혀서 설정했습니다. 하나면 하는 경우 25565, 25575만 해주어도 됩니다. 자신의 내부 IP는 제어판 - 네트워크에서 자신이 연결한 LAN의 주소를 입력하면 됩니다
그 다음에는 방화벽 설정입니다. 아까 위에서 들어갔던 제어판 - 보안 - 방화벽에 들어가 규칙 편집을 들어가줍니다. 그리고 이번에는 포트를 사용자 지정으로 하신 후 아래와 같이 입력해 줍니다. 내장된 응용 프로그램 목록에도 자신이 마인크래프트 서버로 선택한 컨테이너부분에서 25565 25575포트가 뜨지만 이건 컨테이너가 중지되면 바로 없어지게 되기 때문에 나중에 번거롭습니다.
그리고 아래와 같이 도커 IP대역 범위 위에 놓아줍니다.
3 - 2 포트가 열린경우
포트가 열린경우 멀티 플레이 - 서버 추가를 들어가 줍니다. 서버 주소에 자신의 외부 아이피(네이버에 IP주소 확인 치면 나오는 IP) 혹은 Synology DDNS를 설정해 주셨다면 해당 DDNS주소(~~~.synology.me)를 입력하고 뒤에 :25565를 입력한 후 완료를 눌러줍니다.
조금 기다리게 되면 아래와 같이 서버가 온라인 상태로 뜨는걸 볼 수 있습니다
오늘은 Synology NAS에서 마인크래프트 Java Edition 서버 구동하는 법에 대해 알아보았습니다. 이 과정을 하시면서 안되는게 있는 경우 댓글란에 댓글 적어주시면 같이 해결해 보면 좋을것같습니다 :). 긴 포스트 봐주셔서 감사하고, 다음 포스트는 이 서버를 로컬 저장소와 연동하는 법으로 돌아오겠습니다.
'AWS and Server' 카테고리의 다른 글
AWS 인스턴스 생성하고 Putty로 접속하기 기본편(Ubuntu Server 16.04 LTS, Free Tier) (0) | 2020.05.06 |
---|---|
WinSPC SFTP 오류코드 : 3 Permission Denied 해결방법(권한 오류 무시 설정이 적용되지 않을경우) (0) | 2019.04.19 |