- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date | 22/04/19 00:13:00 |
Name | 덜커덩 |
Subject | 꼬맹이를 위한 마인크래프트 서버 만들어주기 |
지난 주 꼬맹이가 아부지를 찾아와서 마인크래프트 서버를 만들어 달라고 했습니다. 아부지는 그게 뭔데? 라고 묻는 대신 그래, 뭐. 해 줄께. 라고 호기롭게 대답했지요. 앞으로 벌어질 일 들에 대해서는 아무것도 모른 채. 꼬맹이는 말이 마치자 마자 아부지를 쳐다보며, 10분 뒤에 친구한테 접속 주소를 알려주기로 했답니다. 위기의 아부지는 이를 모면하기 위해 화를 낼까 협상을 할까 고민을 하다 그놈의 가오가 뭔지 체면이 뭔지를 위해 낼름 작업을 시작했습니다. 이 글은 그것을 좀 더 일반화 시켜서 정리한 것입니다. 이놈의 마인크래프트가 과연 언제까지 꼬맹이들 사이에서 즐겨질 것인지 알 수는 없지만, 필경 이 글은 인기가 없을 것이란 걸 알지만, 언젠가 필요하실 홍차넷 아부지 어무니 마더 파더 젠틀... 아니 부모님들을 위해 기록을 남깁니다. 아. 대체 이 글의 분류는 꿀팁/강좌인가 게임인가 IT/컴퓨터인가. 1. 상황 파악 제 경우는 약간의 사전지식이 있어 이들을 무시하고 제 목적을 향해 달릴 수 있었지만, 이 글이 본인에게 맞는 글인지 먼저 확인해야 합니다. 아래 질문과 답에서 한번이라도 아니오가 나오면, 그걸 먼저 해결해야 모든 것이 순조롭게 될 것이니 시간을 두고 살펴보셨으면 좋겠습니다. 가. 사용하는 OS 파악 1) 현재 사용하고 있는 운영체제가 윈도우라고 부르는 것이다. * 아니오. 사용하는 것이 맥Mac 이나 뭐시기 리눅스Linux 라고 불리는 것입니다 --> 선생님께서는 저의 지식 없이 많은 것을 해결할 잠재력을 가지고 있습니다. 자신감만 있으시면 하실 수 있을겁니다. 아마도. * 네. --> 저와 같은 것을 사용하시고 있으십니다. 이 글에서 다루는 환경과 동일합니다. 아주 좋읍니다. 나. 이제 꼬맹이들이 즐기는 마인크래프트 에디션 확인. 안타깝게도, 마인크래프트는 2개의 에디션이 있고, 상호 호환이 안된다고 합니다. 1) 꼬맹이들이 사용하는 것이 빨간색으로 그림에서 체크 한 Java edition이다 * 아니오, 아래의 for windows를 사용합니다 --> 마음 아프게도 제가 다룰 수 있는 역량 바깥의 것입니다. 송구하읍니다... * 네, 그렇읍니다. --> 제가 설명할 것과 같은 조건입니다. 아주 좋읍니다. 다. 외부 손님이 찾아올 수 있는 환경인지 확인하기. 꼬맹이가 스스로 만든 서버에 접속하는 것은 어떤 환경에서건 아무런 문제가 없겠지만, 꼬맹이의 친구가 서버에 접속할 수 있으려면 생각보다 많은 조건이 갖추어져 있어야 합니다. 인터넷을 사용하는 대부분의 가정집 사무실에서 공유기를 별도의 특별한 설정 없이 사용할 수 있지만, 내가 바깥으로 나가서 정보를 받아오는 것과 다른 사람이 내 집을 찾아 들어올 수 있게 해 주는 것은 다른 문제입니다. 다음의 질문에 답해보면서 확인해 봅시다. 1) 서버를 실행할 PC나 노트북이, 공유기를 거치고 있거나 무선 랜으로 연결됩니다. * 네, 공유기를 거치거나, 무선 랜으로 연결됩니다. --> 이 글에서 모두 다루지 못하는 내용입니다. + (참고) 공유기를 거친다면, 공유기가 인터넷으로부터 받은 요청들을 서버가 실행될 PC로 보내줘야 하는데, 공유기 기본 설정에서는 이런 일을 해 주지 못합니다. 공유기 설정 매뉴얼을 펼치고, 'DMZ 설정' 이나 '포트 포워딩port forwarding'에 대한 내용을 참조하여, 요청을 받아들일 수 있게 만드는 것이 우선입니다. + (참고2) 무선랜을 사용하는 환경이라면, 공유기가 내 컴퓨터에 항상 같은 주소를 줄 수 있도록 정적Static IP 할당에 대해 알아보셔야 합니다. + (참고3) 포트포워딩 설정에 필요한 정보로, 마인크래프트 서버는 바깥의 친구를 받아들이기 위해 포트 25565번을 사용합니다. 공유기의 IP, 포트 25565번으로 오는 요청을 모두 선생님의 PC로 보내주도록 시키면 문제가 해결됩니다. * 아니오, 인터넷 모뎀이나 벽체에 바로 붙어 있읍니다. --> 가능성이 있습니다. 아래로 진행해서 계속 알아봅니다. 2) PC가 공유기를 거치지 않고 바로 붙어있다면, 내가 사용하는 IP와 외부에서 보이는 IP가 같은지 확인 해 봅시다. 먼저, 구글 google.com 에 접속해서 whats my ip라고 치면 외부에서 보이는 IP를 확인할 수 있읍니다. 호에엥 아부지는 해킹이 무서워서 IP 숫자 일부분을 투명하게 만들었읍니다. 투명이 아니라 격자무늬가 보인다구요? 선생님은 이미지를 만지는 일을 하지 않으시는군요. 아무튼 투명임미다. 이제 윈도우키 + R을 누르고, 명령 실행창에 cmd 또는 powershell 이라 입력하고 엔터를 치면 대충 아래와 같이 검은색 또는 파란색 창이 뜹니다. 저는 powershell을 입력했었습니다. 그 다음에 그 창에다가 아래 그림처럼 "ipconfig" 라고 치고 엔터를 누르읍니다. 뭐가 주루룩 뜹니다. 중요한 건, 위에서 본 IP 숫자가 여기 목록에 있는지 없는지가 중요합니다. 이제 그 결과에 따라 다음 단계로 넘어갈 수 있습니다. * 아니오, 똑같은 숫자들이 없습니다. --> 따로 공유기를 사용하지 않음에도 그런 숫자가 없다면, 인터넷에 접속하는 중간 단계에 뭔가 공유기 역할을 하는 장치로 인해 공인 IP 사용이 어려운 상태입니다. 대부분 인터넷 서비스 제공업체의 문제이며, 선생님의 잘못은 없지만 안타깝게도 할 수 있는게 많지 않습니다. 인터넷 서비스 제공 업체에 문의하실 필요가 있습니다. + (참고) 만약 공유기나 무선랜을 통해 연결 중이고, DMZ 설정이나 포트 포워딩 설정을 통해 설정되어 있다면 같은 숫자가 없어도 문제되지 않습니다. 밖에서 보이는 IP로 요청하면 선생님 PC에 도달할 수 있게 공유기가 보내줄 것이니깐요. * 네. 똑같은 숫자들이 있습니다. -> 축하드립니다. 선생님의 PC는 외부에서 접속 가능한 IP를 가지고 있으며, 이제 선생님 PC에서 대부분 해결할 수 있는 장애물들만 남아있다고 할 수 있읍니다. 2. 서버 프로그램 다운로드 및 설치 대충 조건을 만족한다면, 다음의 순서를 거쳐 서버 프로그램을 실행할 수 있게 만들면 됩니다. 천천히 따라오세요. 가. 서버 다운로드 서버 프로그램은 다음의 사이트에서 다운로드 할 수 있습니다: https://www.minecraft.net/ko-kr/download/server 위의 링크를 열면 대충 아래와 같은 설명이 나옵니다. 이 글을 쓰는 현재 22년 4월 중순에는 최신 버전이 1.18.2 입니다. 그림에서 체크한 링크를 누르면 서버 프로그램이 다운로드 됩니다. 화면 설명에서는 minecraft_server.1.18.2.jar 파일이라고 했지만 다운로드 될 파일은 server.jar 파일이 될 것입니다. 하지만 같은 파일이니 안심하세요. 나. server.jar를 실행하기 위한 자바 런타임 환경 다운로드 및 설치 안타깝게도, 확장자가 .jar 라 바로 실행할 수 없읍니다. 이를 실행하려면, 자바 런타임 환경(Java Runtime Environment; 아래에서는 JRE로 지칭)이라는 것이 필요합니다. 2022년 4월 중순 기준 최신 버전인 1.18 서버를 실행하기 위해서는 최소한 JRE 버전 17 이상이 필요합니다. JRE는 복잡한 어른들의 사정으로 인해 여러 회사들이 만들어서 배포되고 있읍니다. 저는 이 중에서 해외 직구의 강자 아마존에서 배포하는 Corretto 17이라 부르는 것을 사용할 것입니다. 저는 믿지 않아도 좋으니 아마존 정도면 믿을만 하시지 않겠습니까? 다운로드는 여기서: https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-17-ug/downloads-list.html 위의 링크를 따라가보면, 위의 그림처럼 windows x64, JDK 라고 되어 있는 항목에 .zip으로 끝나는 파일 이름(아래 그림, 체크된 부분 참고)이 있습니다. 그걸 다운로드 합니다. 왜 설치 프로그램인 .msi로 끝나는 파일이 아니라 압축파일인 .zip을 받느냐면... 이쪽이 갖는 장점이 뚜렷하거든요. 1) 시스템에 영향이 없습니다. 설치프로그램이 없다 = 그냥 휴지통에 던지면 끝. 2) 업데이트가 편하고 위치 찾느라고 고생할 필요가 없습니다. 암튼 압축파일을 받아서 압축을 풉니다. 압축을 풀면, jdk17.0.2_8 과 같은 폴더가 있을 거에요. jdk 뒤에 붙는건 버전 이름이니까 숫자 좀 달라졌다고 이상해 할 필요가 없습니다. 다. 폴더 생성하고 파일 복사, 실행 준비 마지막 단계 이제 PC에 있는 드라이브에 대충 폴더 하나를 만듭니다. 이름은 적당히 지어주셔도 되고, 아래 그림처럼 달아주셔도 됩니다. 저는 Minecraft-server라고 C: 바로 아래에 만들었습니다. 그 폴더 아래에, 아까 다운로드 받아놓은 server.jar와 jdk뭐시기 폴더를 복제합니다. 아래 그림처럼 딱 2개만 들어갑니다. jdk뭐시기 폴더 안에는 아래처럼 bin, conf 등등의 폴더와 파일들이 여러개 들어있으면 잘 복사했다는 뜻입니다. 이제 다시 파일이 2개 있는 곳으로 가서, 파일을 하나 만들겁니다. 오른쪽 버튼을 누르고, 새로 만들기 - 텍스트 문서를 클릭하여 빈 텍스트 파일("새 텍스트 문서.txt")을 만듭니다. 그리고 아래의 그림과 같이 그 안에 다음의 내용을 적고, 저장합니다. REM --- 입력 내용 - 대충 긁어 붙이세요 --- .\jdk17.0.2_8\bin\java -Xmx1024M -Xms1024M -jar server.jar REM ------------------ 위 내용은 아래 jdk17.0.2_8 폴더 내, bin 폴더 내, java 라는 파일을 실행하고, 그 옵션으로 -Xmx1024M -Xms1024M, 그리고 "-jar 서버jar파일이름"을 기입하여, java로 server.jar 파일을 실행하라는 것입니다. 만약 시일이 지나 언젠가 이 글을 보시면, 그 폴더와 파일 이름만 다운로드 된 파일들에 알맞고 적절하게 바꿔주시면 됩니다. 이제 실행할 수 있도록 파일 이름과 확장자를 바꿔줄 겁니다. 확장자를 바꾸려면, 아래 그림과 같이 탐색기 메뉴에서 보기 - 확장자 보기에 체크가 되어 있어야 합니다. 꼭 확인하시고 이름을 바꾸세요. 이름을 바꾸고 난 뒤에는 원래대로 돌리셔도 안전합니다. 이제 "새 텍스트 문서.txt"를, launch_server.bat 라고 바꿉시다. 취향에 따라 파일 이름은 원하시는 대로 "직박구리.bat" 처럼 바꾸셔도 되지만, 반드시 마지막 확장자가 .bat로 끝나도록 합시다. 마침표 주의. 바꾸려고하면 아래와 같이 경고문구가 나옵니다. 이게 나오면 "내가 잘 하고 있다" 확신을 가지고 네를 누르시면 됩니다. 3. 서버 프로그램 실행하기 이제 거의 다 되어 갑니다! 만들어진 배치파일을 실행합니다. 처음 실행하는 것이기 때문에, 각종 파일을 자동으로 다운로드 받게 되지만 창이 자동으로 닫히게 되거나, 오류가 날 것입니다. 당황하지 말고, 서버 프로그램이 있던 폴더를 다시 탐색기로 봅시다. eula.txt 파일이 보일 것입니다. 이를 더블클릭해서, 파일을 메모장으로 엽니다: 아래와 같이 eula=false로 나올 것입니다. 이를 아래처럼 eula=TRUE로 바꾸고 저장합니다. 그런 다음, 다시 launch_server.bat를 실행합니다. 아래의 그림과 같이 프로그램이 뜨고, 옆의 로그 창에 "Done"이 뜨면 서버가 다 준비되었다는 뜻이 됩니다. 만약, 중간에 다음과 같이 방화벽을 허용하겠냐는 메시지가 뜨면 "엑세스 허용"를 눌러 허용하도록 해 줘야 합니다. 만약 컴퓨터에 다른 서드파티 방화벽firewall 프로그램이 설치되어 있다면 (예: 맥아피 라이브세이프, 카스퍼스키 인터넷 시큐리티, V3 인터넷 시큐리티 등...), 그 방화벽 프로그램에 맞게 외부 접속을 허용해줘야 합니다. 아래는 맥아피 라이브세이프의 예시입니다. 암튼 외부에서 접속 가능한 IP가 있음에도 불구하고 접속이 안된다면, 방화벽을 먼저 의심해보시길 권장드립니다. 자, 이제 아까 구글에 whats my ip를 쳐서 얻어냈던 public IP를 사용하여, 마인크래프트 - 멀티플레이어를 띄우고, 서버 주소(IP)에 그 번호. 예) 289.124.50.120 를 입력하여 접속을하고, 꼬맹이 친구에게도 이 번호로 접속하게 하라고 하면 됩니다. 지금까지 아부지 어무니 고생 많으셨습니다....만. 아쉽게도, 접속이 한번에 안 될 가능성이 매우 높습니다. 각자 환경은 다르고, 이대로 하면 되지 않을까 고민고민해서 글을 적어봐도 제가 글을 잘 적질 못해 전달되지 않기도 하더라구요. 서버를 띄운 PC에다가 마인크래프트를 띄워서 접속하면 내부 접속처럼 취급되니 방화벽이나 기타 다른 문제가 나타나지 않다가, 외부 접속만 안되면 힘들어지지요. 접속이 되지 않으면 천천히 하나씩 점검하면서 잡아나갈 수 밖에 없는데... 꼬맹이 친구한테 알려주기 전에, 노트북 하나 가져와서 휴대폰 테더링으로 접속해서 접속 테스트를 해볼 수 있는 환경을 갖출 수 있으시다면 먼저 해보는 걸 권장드립니다. 가르쳐줬는데 '지금' '바로' 잘 안되면 그것만큼 당혹스럽고 창피하고 왠지 자존심에 스크래치가 가고... 내가 만든 것도 아닌데! 암튼 저는 그렇거든요. 4. 실행 후 서버를 꺼야 할 때 & 기타 팁 아. 게임이 끝나고 맵을 계속 유지하려면 안전하게 서버를 종료해야 합니다. X 버튼을 눌러 서버를 닫는 대신, 검은색 창이나 흰색창 오른쪽 아래 빈 칸에 아래 그림처럼 stop 을 입력하고 엔터를 치면 안전하게 종료됩니다. X 버튼을 눌러 서버를 닫으면, 월드가 저장되지 않아 couldn't save my w... 아니 아닙니다. 그러니 아래 그림과 같이 stop을 입력하십시오. 둘 중에 하나만 하면 됩니다. 꼬맹이에게 관리자 권한을 주고 싶다면, 저 위치에 [/op 꼬맹이캐릭터이름] 을 입력해 주시면 됩니다. 도로 뺏을 때는 /deop 꼬맹이캐릭터이름 을 주시면 됩니다. 그 이후의 치트는 꼬맹이들이 더 잘 알것이니 꼬맹이들에게 맡기면 됩니다. 그리고, 생성한 서버의 주소/IP는 반드시 신뢰할 수 있는 사람들에게만 전달해주십시오. 인터넷 게시판 등에 게시하는 행동은 좋지 않은 결과를 불러올 수도 있습니다. 5. 문제 해결 경험해보지 못한 오류들 까지 소개해 드릴 수는 없는 노릇이지만... 경험해본 것과 예상되는 것을 적어 마무리 짓도록 하겠습니다. 가. 꼬맹이 친구가 복돌이에요 : offline 모드 활성화 하기 공교롭게도 꼬맹이의 친구 중 하나는 복제판 마인크래프트를 사용할 수 있습니다. 올바르지 않지만, 어쩔 수 없이 마주할 수 있는 상황이죠. 꼬맹이가 친구를 잃지 않도록 도와줍시다. 대게 친구가 접속할 때 "사용자 명을 확인할 수 없습니다", 또는 "Failed to verify username!" 또는 로그인에 실패했습니다: 세션이 잘못되었습니다 (게임과 런처를 다시 시작해 보세요) 또는 (Failed to log in: Invalid session (Try restarting your game and the launcher)) 과 같은 메시지가 나타나는 현상이 관측될 것입니다. 메모장을 열고, 아까 마인크래프트 서버가 있는 폴더에 server.properties 파일을 드래그하여 메모장으로 던져 파일을 엽시다. 그런 다음, 아래의 그림과 같이 online-mode=true를 찾아서, false로 바꿔줍시다. 이렇게 online mode를 끄면, 마인크래프트 인증 서버를 거치지 않기 때문에 복제된 마인크래프트에서도 접속할 수 있게 됩니다. 또한, 아무나 클라이언트가 있으면 접속할 수 있다는 뜻이기 때문에, online mode를 끄는 경우에는 반드시 신뢰할 수 있는 사람들에게만 접속 주소를 전달해주셔야 합니다. 나. 유지보수/업데이트 언젠가 가까운 시간내에, 마인크래프트 버전이 올라갈 것이고, 서버 버전도 그에 따라 올려주셔야 할 필요가 생길 것입니다. 두 가지만 명심해주세요. 가. 마인크래프트 버전이 올라가면, 마인크래프트 서버 다운로드 주소로 가서, server.jar 새 버전을 받아서, 이전에 만든 폴더에 덮어 써 주세요. 파일 이름이 같으니 .jar 파일 교체만으로도 충분할 겁니다. 나. 만약 새 버전으로 덮어 쓴 뒤, 실행할 때 아래와 같이 "UnsupportedClassVersionError"가 끄면 JRE 버전을 더 올려주시면 됩니다. 2022년 4월 현재 Corretto 17 버전을 받았다면, 그 다음은 18, 또 그 다음은 ... 암튼 최신 버전의 JRE를 받으시면 해결 될 것입니다. 오류 메시지 예시 --> java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0 똑같이 zip 압축을 풀고, bin 폴더 아래 java 실행파일이 있는지 확인하고, 만든 배치파일(예: launch_server.bat 파일)을 열어, 그 폴더 이름만 잘 맞춰주시면 JRE 업데이트에도 대응하실 수 있을 것입니다. 끝. 16
|