마크 서버로 알아보는 IP와 포트포워딩
오랜만에 마크 멀티나 해볼까 친구들과 이야기가 나왔는데
마크 서버를 여는 방법은 여러가지가 있지만
마크에 여러가지 모드를 깐 채로 멀티를 하려면 직접 서버를 열어야한다.
재밌어 보이기에 직접 한번 열어보기로 결정.
윈도우로 여는게 편하지만 '서버는 리눅스'라는 불문율?이 있으므로
깔아놓은 리눅스 가상머신으로 서버를 열어보고자 했다.
https://gall.dcinside.com/mgallery/board/view/?id=steve&no=17810
마크 서버를 여는 방법엔 여러가지가 있다.
그중 첫번째는 'LAN 서버'를 여는 방법.
LAN의 풀네임은 Local Area Network, 번역하면 근거리 통신망이라 한다.
이때 근거리는 보통 랜선으로 직접 연결되는 범위로
하나의 공유기 = 한 와이파이 정도의 범위를 나타낸다.
즉 랜서버는 같은 와이파이에 접속해있어야 참여가능하다.
하지만 친구들을 매번 우리 집으로 불러 게임을 즐길 수는 없는 노릇,
그렇기에 하마치란 프로그램을 사용하여 멀티를 즐기곤 한다
Hamachi는 직접 네트워크(가상 사설망)을 생성하도록 도와주는 프로그램으로,
25.xx로 시작하는 공인 ip를 제공하며
먼 거리에 있는 컴퓨터들을 마치 로컬 네트워크로 연결한 것 처럼 사용할 수 있다.
참고로 IP는 공인 IP와 사설 IP로 나뉘는데,
공인 아이피는 전세계에 하나뿐인 고유한 주소값이고
사설 아이피는 네트워크 내 장치들을 구별하기위한 IP이다.
예를 들어보자면
공인 아이피는 'OO아파트 123동' 이란 구체적인 주소
사설 아이피는 '1234호' 라는 주소 내 구별 인자로
즉 1234호란 주소 만으로는 절대 우리집을 찾아 올 수 없기에
우리 집에 찾아오기 위해선 = 멀티를 위해선 공인 아이피를 알아야한다.
쨌든 하마치가 제공하는 25.XX로 시작하는 대역은 영국에 실제로 배정된 공인 IP이다.
ipconfig 명령어로 나타는 ip주소는 사설 ip이니 주의.
(하마치를 사용하지 않는 랜서버는
같은 네트워크 = 같은 공인 IP이므로 사설 ip를 사용한다)
포트 포워딩이란?
과거에는 집에 보통 컴퓨터 한 대만 사용하고 스마트폰이 없었기 때문에 인터넷을 설치한다고 하더라도 모뎀만 있으면 컴퓨터에 인터넷을 연결할 수 있었습니다. 최근 들어서는 가족 구성원 한
lamanus.kr
조금 더 들어가면...
내가 서버를 연 컴퓨터는 공유기를 거쳐 인터넷에 연결되어있다.
즉 서버를 접속할때 내 공인 ip 12.34.56.78을 입력하면,
공유기까지는 도달했지만 그 다음 어디로 가야 하는지 알 수 없다.
그렇기에 필요한 과정이 포트 포워딩으로
공인ip의 80번 포트로 들어온 요청은 컴퓨터 1로,
21번 포트로 들어온 요청은 컴퓨터 2로 전달되도록 이정표를 세워놓는 것이다.
모든 요청을 한 컴퓨터로 가게 하는 것은 DMZ라 한다
이때 모든 포트를 열어버리므로 보안에 취약하니 주의
쨌든 이러한 과정은 공유기에 직접 접속해 설정해야하므로 꽤나 번거롭기에
별개의 네트워크(공인 IP)에 서버를 열어 포트포워딩 없이 접속하도록 돕는 것이 하마치이다.
이야기가 샜는데 돌아와서...
서버를 여는 두번째 방법은 '렐름'을 이용하는 것이다.
이는 일정 비용을 내고 마인크래프트 측에서 직접 서버를 열어주는 것으로
서버 구동을 위해 직접 컴퓨터를 켜놓지 않아도 된다는 장점이 있다.
하지만 두 방식은 문제점이 있는데,
이는 바로 모드나 플러그인을 적용할 수 없다는 것이다.
플러그인은 추가 기능을 위한 확장 소프트웨어로,
액티브 X나 공인 인증서, 이제는 없어져버린 어도비 플래시 등이 이에 속한다.
쨌든 위의 Lan 서버나 렐름은 결국 기존의 마인크래프트에서 서버를 여는 것이기에
백업이나 유저 관리 등 서버적인 기능을 수행할 수 없다.
그렇기에 서버를 직접 구동해주는 프로그램들이 존재하며,
(마크는 java로 만들어졌기에 대부분 jar 파일이다)
플로그인 api를 내장하있어 필요한 플러그인들을 직접 적용할 수 있다.
나는 셋중 요즘 유행중인 paper를 사용하였다.
Home
PaperMC is a Minecraft software organization focusing on improving the game’s ecosystem with faster and more secure software.
papermc.io
https://www.woobi.net/board2/2103
우분투(Ubuntu) 마인크래프트 Paper(Bukkit) 서버 열기 - 우분투 - 우비넷
1. java 설치 1-1 java 설치 $ sudo apt install openjdk-17-jre-headless (최신버젼의 자바 설치 권장) 1-2 설치 확인 $ java -version 2. 디렉토리 생성 $ mkdir paper (임의 생성) $ cd paper 3. 구동기 다운로드 ...
www.woobi.net
설치 방법은 해당 글을 참조.
jar 파일을 실행만 해주면 되기에 서버는 여는것은 쉬웠다.
여는 것만
몇가지 이슈가 있긴 했지만 공식 문서를 뒤적여서 대부분 간단히 해결.
하지만 서버를 여는건 쉬웠으나
연 서버에 접속이 안됐다...
리눅스야 기본적인 정도는 다루지만
네트워크랑 서버쪽은 꽤나 무지했기에
공인 ip와 사설 ip는 옛날에 배웠었다 까먹었고,
포트 포워딩은 이름만 들어봤었다.
왜 접속이 안될까 이리저리 공부하다가
현재 내 서버는
(인터넷) - (공유기) - (내 컴퓨터) - (가상머신)
이렇게 4 단계에 걸쳐 연결되어있다.
일단 공유기와 내 컴퓨터를 포트포워딩 해주고
가상머신에서도 포트포워딩 규칙을 작성함으로써
호스트 ip = 내 공인 ip의 25565번 포트로 들어온 모든 요청은
리눅스 가상머신의 사설 ip로 전달하도록 되었다.
친구들까지 불러서 실험해본 결과 서버 접속 완료!
게임하려다가 공부를 더 한 유니크한 경험이었다.