최근 수정 시각 : 2025-08-29 05:44:05

마인크래프트/서버/자바 에디션

파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 서버 목록}}}에 대한 내용은 [[마인크래프트/서버/목록]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[마인크래프트/서버/목록#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[마인크래프트/서버/목록#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html 마인크래프트 멀티플레이나 멀티플레이 서버의 구분 등}}}에 대한 내용은 [[마인크래프트/멀티플레이]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[마인크래프트/멀티플레이#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[마인크래프트/멀티플레이#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
서버 목록: }}}[[마인크래프트/서버/목록]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[마인크래프트/서버/목록#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[마인크래프트/서버/목록#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
마인크래프트 멀티플레이나 멀티플레이 서버의 구분 등: }}}[[마인크래프트/멀티플레이]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[마인크래프트/멀티플레이#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[마인크래프트/멀티플레이#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}

파일:상위 문서 아이콘.svg   상위 문서: 마인크래프트/서버
파일:관련 문서 아이콘.svg   관련 문서: 마인크래프트/플러그인
#!if 문서명2 != null
, [[]]
#!if 문서명3 != null
, [[]]
#!if 문서명4 != null
, [[]]
#!if 문서명5 != null
, [[]]
#!if 문서명6 != null
, [[]]

파일:마인크래프트 로고.svg
{{{#!wiki style="margin: -0px -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px; word-break:keep-all"
<colbgcolor=darkgreen><colcolor=#fff> 기본 플레이
시스템세계 (시드) · 게임 모드 · 난이도 · 게임 규칙 · 엔딩 · 죽음 메시지 · 스플래시 · 명령어 · NBT · 거리 효과 · 런처
인게임아이템 · (플레이어) · 개체 · 날씨 · 차원 · 생물 군계 (생성 규칙) · 구조물 · 마법 부여 · 상태 효과 · 조작법 · 피해 · 업적 · 버그
도움말튜토리얼 · (탐험 · 파밍 · 회로) · 재생 가능한 자원 · 브릿징 · PVP · 파쿠르 · 스피드런 (베드락 에디션) · 건축 (맵아트)
시리즈 및 매체
출시 에디션베드락 에디션 (업데이트) · 자바 에디션 (업데이트) · 중국 에디션 · 포켓 에디션* · 콘솔 에디션 (업데이트)* · 파이 에디션* · 4K*
파생 게임외전 시리즈 · 마인크래프트 에듀케이션 · 마인크래프트 던전스* · 마인크래프트 레전드* · 마인크래프트: 스토리 모드* · 마인크래프트 어스*
미디어OST · 관련 서적 · 레고 · 영화 · 애니메이션 · Minecraft Live · Minecraft Now · Minecraft Monthly
유저 콘텐츠
창작 요소2차 창작 · 망토 · · 모드 (개발 · · 모드팩) · 애드온 · (리소스 팩 · 데이터 팩) · 외부 프로그램 · · 마켓플레이스 패스 ·
멀티 콘텐츠멀티플레이 · 서버 · 플러그인 · Realms · EULA
개발개발 기초 · 모드 개발 · 플러그인 개발
기타
이야깃거리여담 · 커뮤니티 · 위키 · 사건 사고 · 문제점 · 용어 · 지원 언어 · 머나먼 땅 · 이미테이션 게임 · 히로빈
· · ·
관련 문서나무위키 마인크래프트 프로젝트 · 마인크래프트로 분류된 문서 · 마인크래프트의 하위 문서
새로운 컨텐츠
Mounts of Mayhem
(출시 예정)
[ 펼치기 · 접기 ]
아이템
추가 - Nautilus Armor, Spear
────

추가 - Nautilus, Zombie Nautilus
변경 - 파일:ZombieHorseFace.webp 좀비 말 자연 생성 가능
구리 시대
[ 펼치기 · 접기 ]
블록
추가 - 파일:마인크래프트/구리 창살.png 구리 창살, 파일:마인크래프트/구리 사슬.png 구리 사슬, 파일:마인크래프트/구리 상자.png 구리 상자, 파일:마인크래프트/구리 골렘 동상.png 구리 골렘 동상, 파일:마인크래프트/구리 랜턴.png 구리 랜턴, 파일:마인크래프트/구리 횃불.png 구리 횃불, 파일:마인크래프트/약간 녹슨 피뢰침.png파일:마인크래프트/녹슨 피뢰침.png파일:마인크래프트/산화된 피뢰침.png 산화 가능한 피뢰침, 선반
변경 - 사슬 → 철 사슬, 철창 → 철 창살, 파일:마인크래프트/구리 다락문.png 구리 다락문 제작법 변경
────
아이템
추가 - 파일:마인크래프트/구리 삽.png파일:마인크래프트/구리 곡괭이.png파일:마인크래프트/구리 도끼.png파일:마인크래프트/구리 괭이.png 구리 도구들, 파일:마인크래프트/구리 검.png 구리 검, 파일:마인크래프트/구리 투구.png파일:마인크래프트/구리 흉갑.png파일:마인크래프트/구리 레깅스.png파일:마인크래프트/구리 부츠.png 구리 갑옷, 파일:마인크래프트/구리 말 갑옷.png 구리 말 갑옷, 파일:마인크래프트/구리 조각.png 구리 조각
변경 - 염료 이미지 변경
────

추가 - 파일:EntitySprite_copper-golem.webp 구리 골렘
────
그 외
설정 - 디버그 화면 사용자 지정(JE)
* 표시는 서비스가 종료되었거나 개발이 중단되었다는 표시이다. }}}}}}}}}

1. 서버 구현 방식
1.1. 내부 서버
1.1.1. LAN 서버
1.2. Realms1.3. 서버 구동기
2. 서버 운영 방식
2.1. 개인 운영2.2. 서버 호스팅
3. 구동기로 서버 만드는 법
3.1. Java 설치
3.1.1. Windows3.1.2. MacOS3.1.3. Linux
3.2. 명령줄
3.2.1. JVM3.2.2. 마인크래프트3.2.3. 게임 테스트
3.3. 실행 파일 만들기
3.3.1. 윈도우
3.4. server.properties 수정3.5. 마인크래프트 서버 공개
3.5.1. 포트포워딩3.5.2. 인바운드 규칙 설정(윈도우)3.5.3. 포트포워딩 문제 해결(윈도우)
3.6. 도메인 설정(선택)
4. 구동기 목록5. 사건 사고

1. 서버 구현 방식

1.1. 내부 서버

클라이언트 내에서 사용하는 서버. 즉 싱글플레이 전용 서버로 통합 서버(Integrated Server)라고도 부른다.[1] 싱글플레이도 서버의 일종이라 싱글플레이 시 클라이언트는 내부 서버를 생성한 후 플레이어가 그 서버에 들어가는 식으로 동작한다. 그래서 내부 서버 내에서 크래시가 발생하여 종료될 시 자동으로 강퇴당하며 싱글플레이의 세계 선택 화면이 아닌 멀티플레이의 서버 선택 화면으로 이동된다.

내부 서버는 바닐라 서버를 사용하므로 플러그인을 사용할 수 없지만 모드를 설치하면 이용할 수 있고 서버측(Server-Side) 모드도 대부분 내부 서버에서도 동작하므로 플러그인을 대체할 수 있다.

1.1.1. LAN 서버

클라이언트의 이러한 특성으로 인해 게임 메뉴 화면에서 LAN 서버를 열 수 있다.

같은 근거리 통신망에 연결되어 있는 유저끼리 접속할 수 있다. 서버를 구동하는 PC와 같은 와이파이 또는 회선에 접속된 PC에서만 접속할 수 있다는 것이다.

다만 같은 내부 네트워크에 연결되어 있지 않더라도 VPN이나 공유기의 포트포워딩을 통해 외부에서 접속할 수 있다.

체험판 버전이나 치트 사용이 불가능한 특정 맵에서의 꼼수가 가능한 방법으로, LAN 서버 만들기에 들어가 치트 사용을 켜고 서버를 열면 치트 사용이 가능해진다. MC-134(의도한 대로 작동) 다만, 그 맵에서 나간 순간 전부 다 풀려버리니 주의하도록 하자.

가장 쉽고 편하게 하는 방법은 바로 하마치를 이용하는 것이다. 당장 네이버구글에 검색만 해봐도 하마치를 쓰라는 글이 수두룩하다. 그러나 하마치의 특성상 꽤나 불안정하고 모드가 많거나 개인의 컴퓨터의 문제가 있다거나 네트워크가 아주 약간만 불안정해져도 바로 호스트를 제외한 모두가 게임에서 튕겨버린다.

1.2. Realms

파일:상세 내용 아이콘.svg   자세한 내용은 Minecraft Realms 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[Minecraft Realms#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[Minecraft Realms#|]] 부분을
참고하십시오.

1.3. 서버 구동기

별도의 프로그램을 통해 서버를 구동하는 방법이다. 방법은 서버 만들기 문단에서, 목록은 구동기 문서에서 설명한다. 구현물 또는 구현 프로그램 (Implementation)이라고도 한다.

자바 에디션에서는 일반적으로 구동기는 Java 언어로 작성되었고, jar 파일[2]로 구성된다. 바닐라 서버와 달리 플러그인 API를 내장하고 있어 플러그인을 추가할 수 있다. 구동기 중에서 포지와 연계되어 있는 SpongeForge를 사용한다면 플러그인과 모드를 동시에 적용할 수도 있다.

프로그램이 실행되는 동안 서버가 인터넷 전역으로 공개되어 열린다. 같은 와이파이에 연결될 필요가 없다는 말이다.[3] 대부분의 서버 구동기들은 이 바닐라 서버를 기반으로 제작되었다. 바닐라 서버에 대한 자세한 정보는 구동기 목록의 바닐라 서버 문단 참고.

2. 서버 운영 방식

2.1. 개인 운영

개인 운영이란 서버 호스팅을 이용하지 않고 본인 컴퓨터로 서버를 열거나 직접 서버용 컴퓨터를 장만해서 운영하는 방법을 말한다.

호스팅 비용이 들지 않겠지만, 24시간 내내 컴퓨터를 켜야 하기에 전기요금이 많이 나갈 수 있어서 대부분은 시간제[4]로 운영한다. 뿐만 아니라 디도스 공격에 취약하기 때문에 누군가가 서버 컴퓨터에 디도스 공격을 하면 그대로 서버 자체가 마비될 수 있기 때문이다. 디도스 공격을 걱정한다면 비싼 돈을 들여서 디도스 방어 장비를 사용하기보다는 그냥 호스팅을 이용하는 게 좋다.

또한 컴퓨터의 성능이 많이 받쳐줘야 한다. 서버 인원이 적은 소규모 서버라면 감당할 수 있어도 서버 인원이 늘어나고 서버에 컨텐츠를 추가할수록 많은 리소스를 먹게 되어 개인 컴퓨터로는 감당하기 어렵다. 특히 야생서버의 경우 서버 유저들이 맵을 자유롭게 돌아다니다 보니 맵 파일 크기가 몇십에서 심하면 몇백GB를 넘어버린다. 따라서 Worldborder나 플러그인을 통해 맵의 크기를 제한시켜야 한다.

그리고 외부에서 접속할 수 있도록 공유기 설정도 변경해야 하는데, 공유기마다 접근 방법이나 설정 페이지가 다르기 때문에 어려울 수 있다.

2.2. 서버 호스팅

기본적으로 호스팅 서비스를 이용하여 가상 서버를 빌린 뒤 직접 자바를 설치하여 서버를 운영할 수 있다. 일부 업체의 경우 부하 등의 이유로 게임서버 운영을 금지하기도 하므로 마인크래프트 서버를 운영해도 괜찮은지 반드시 확인해야 한다.

마인크래프트 서버를 전문적으로 호스팅해주는 업체 역시 존재한다. 위에서 언급한 Minecraft Realms을 이용하는 것도 이에 해당하는데, 바닐라 서버만 사용이 가능해 친구들과 가볍게 플레이할 목적이 아니라면 불편할 수 있다.

따라서 바닐라 외의 서버를 돌려주는 호스팅 업체들을 사용하는 것도 좋다. 호스팅 업체에 따라서 자바 에디션 서버만 지원하거나 자바와 베드락 에디션 서버를 둘다 지원한다. 규모가 큰 업체의 경우는 다른 게임 서버도 호스팅해주기도 한다. 일부 호스팅의 경우는 추가 금액을 지불해서 호스팅 사양을 업그레이드할 수 있다.

업체마다 원격 데스크톱 연결을 지원하거나, DDoS 방어 기능을 지원하기도 한다. 또한 리눅스 말고 윈도우 서버를 선택할 수 있다, 다만 윈도우 서버는 권장하지 않는데, 월 라이선스비가 추가되며 리눅스 서버에 비해 CPU/메모리 사용량도 많아 윈도우 환경이 꼭 필요한 것이 아니라면 리눅스 서버를 사용하는 것이 가성비, 성능 면에서 좋다.

호스팅 비용은 업체마다 다른 편이다. 비용이 싸고 신뢰도가 낮은 업체는 사기나 먹튀 위험이 있기 때문에 피해야 한다. 비용이 싼 업체들은 원칙적으로 환불이 불가능하므로 신중하게 선택하는 것이 좋다.

3. 구동기로 서버 만드는 법


상술했듯 대다수의 서버 구동기는 Java로 작성된 프로그램이다. Jar 파일이기 때문에 일반적인 실행 방법[5]으로 구동할 수 있다. 다만 명령문(매개 변수) 설정은 못하니 참고.

NAS 등 개인용 서버 보유자라면 마인크래프트 서버 관리 프론트엔드[6]를 활용하는 것도 나쁘지 않다.

이하의 내용은 모두 바닐라 서버 기준으로 설명한다.

3.1. Java 설치

여러 가지 배포판이 있는데 많이 쓰이는 자바 런타임은 Adoptium - OpenJDK Temurin이다. 아니면 마이크로소프트에서 제작하고 공식 런처에 내장된 OpenJDK 빌드를 사용할 수도 있다. 다른 자바 런타임을 사용 하고 싶을 경우 Java 문서를 참고하면 좋다.

마인크래프트 서버는 게임 버전에 따라 구동되는 자바 버전이 다르다. 아래는 마인크래프트 버전별로 요구하는 Java 런타임의 버전이다.
마인크래프트 버전 요구 Java 버전
최초 버전 ~ 1.5.2 5(1.5.0)
1.6.1 ~ 1.11.2 6(1.6.0)
1.12 ~ 1.16.5 8(1.8.0)
1.17 ~ 1.17.1 16
1.18 ~ 1.20.4 17
1.20.5 ~ 21
출처

JRE(Java Runtime Environment)는 자바 프로그램 구동을 위한 패키지이며, JDK(Java Development Kit)는 프로그램을 개발하는 데 필요한 도구를 모아놓은 패키지이다. 마인크래프트 서버는 JRE만 필요로 하기에 JRE를 설치하면 된다.

3.1.1. Windows

먼저 자바가 설치되어 있는지 확인하려면 아래를 수행한다.
  • 실행 창(윈도우 키+R)에 cmd /k java -version 를 입력하고 Enter를 누른다.
  • java version "..." 메세지와 함께 자바 버전이 출력되면 잘 설치되어 있는 것이다.

"java은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다."라고 표시된다면 자바가 없는 것이고, 원하는 버전이 아니라면 새로 다운로드해야 한다. 두 가지 방법이 있다.
  • Adoptium - OpenJDK TemurinMicrosoft Build OpenJDK를 다운로드할 수 있다.
  • 윈도우 패키지 관리자(winget)[7]를 사용하여 여러 OpenJDK 배포판을 설치할 수 있다. 마인크래프트 서버는 JRE만 필요하므로, JDK 설치는 선택 사항이다.
    • winget install EclipseAdoptium.Temurin.21.JREAdoptium
    • winget install EclipseAdoptium.Temurin.8.JREAdoptium
    • winget install Microsoft.OpenJDK.21Microsoft
      • 참고로 Microsoft 빌드의 OpenJDK 8은 사용할 수 없다.

3.1.2. MacOS

  1. 터미널을 연다.
  2. java -version을 입력하여 Java가 설치되어있는지 확인한다.
    만약 Java가 없거나 특정 버전을 설치해야 하는 경우 홈브루를 통해 설치할 수 있다.
    • 홈브루가 설치되어있지 않아있을 경우 다음 명령어를 입력한다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    • 다음 명령어를 입력한다. brew tap homebrew/cask-versions
    • Adoptium Temurin 21을 원한다면 brew install --cask temurin@21를 입력한다.
    • Adoptium Temurin 8을 원한다면 brew install --cask temurin@8를 입력한다.
  3. 그러면 java -version을 입력하여 Java가 제대로 설치되어있는지 확인한다.

3.1.3. Linux

리눅스 배포판의 종류에 따라 다르다. 자바 홈페이지에서 바이너리 압축 파일을 내려받거나 운영체제의 패키지 매니저[8]를 통해 open-jdk 또는 oracle-jdk를 내려받는다. 데비안 계열은 apt install open-jdk라고 하면 된다. 권한이 부족할시 sudo를 앞에 붙이면 된다.

3.2. 명령줄

3.2.1. JVM

모든 명령줄은 java와 -jar 사이에 넣는다.
  • 서버는 JVM(자바 가상 머신)에서 돌아가기 때문에, 가비지 컬렉션 관련 인수를 추가하여 서버를 최적화 하면 좋다. 가비지 컬렉션중 가장 유명한 컬렉션은 Aikar Flags이다. 아래의 내용을 -Xmx와 -jar 사이에 넣으면 된다.
-jar server.jar "server.jar" 라는 이름의 서버 구동기 파일을 Java로 실행한다.
-Xms2048M -Xmx2048M서버를 실행하는 데 할당시킬 메모리 크기.
-Xms는 최초 할당 크기, -Xmx는 최대 할당 크기이다.
되도록이면 -Xms와 -Xmx를 같게 설정하는 것이 좋다.
컴퓨터의 메모리 크기와 맞춰 설정하는 것이 좋지만, 서버를 연 컴퓨터로 다른 작업을 하려면 4GB 정도의 여유를 남기고 할당해야 한다.

3.2.2. 마인크래프트

모든 명령줄은 -jar (서버 이름).jar로 시작한다. 이하는 사용 가능한 명령줄이다.
--help사용 가능한 명령줄을 실행하고 서버를 끈다.
--bonusChest세계 생성 시 보너스 상자를 생성한다.
--demo체험판 버전으로 실행한다.
--eraseCache조명 캐시 등을 지운다. 싱글에서 세계 최적화 버튼을 누르는 것과 같다.
--forceUpgrade모든 청크를 현재 실행중인 버전으로 강제로 업그레이드 한다.
--initSettingseula.txt와 server.properties를 불러온 다음 서버를 끈다.
--jfrprofileJava Flight Recorder를 초기화한다.
nogui
--nogui
GUI를 열지 않는다.
--safeMode안전 모드(바닐라 데이터팩)로 진입한다.
--serverId <문자열>서버 ID. 충돌 보고서에만 사용한다.
--universe <문자열>세계를 찾을 폴더. 기본값은 .(현재 디렉토리)이다.
--world <문자열>level.dat가 있는 세계 폴더. 기본값은 world이다.
--port <값>포트를 지정한다. 기본값은 -1이다.
-1은 server.properties 파일 내의 server-port의 값을 읽는다.

3.2.3. 게임 테스트

1.21.5에 추가되었다. 이 기능을 사용하려면 진입점을 net.minecraft.gametest.Main로 변경해야한다. 서버를 시작하고, 사용 가능한 모든 게임 테스트를 실행한 후 서버를 종료한다.
--help사용 가능한 명령줄을 실행하고 서버를 끈다.
--packs <경로>?
--report ?
--tests ?
--universe 테스트 서버 맵이 생성될 경로
기본 gametestserver
--verify true일 경우 100회 테스트하고 테스트할때마다 90도 회전한다.
기본 false

사용예: java -DbundlerMainClass="net.minecraft.gametest.Main" -jar server.jar --packs mytestpack

3.3. 실행 파일 만들기

서버 구동기을 실행하는 명령어를 실행 가능한 배치파일로 만들 수 있다. 아래 설명과 같이 파일을 만든 후 더블 클릭으로 실행하면 서버가 켜진다.

3.3.1. 윈도우

  1. 폴더[9] 하나를 만든다.
  2. 폴더 안에 들어가서 미리 받아 놓은 서버 구동기(Vanilla, Fabric, Paper 등) 파일을 옮겨 넣는다.[10]
  3. 폴더의 빈 화면에 우클릭 > 새로 만들기 > 텍스트 문서
  4. 이름은 아무렇게나 지정하고 메모장으로 열어서 아래와 같이 작성한다.
chcp 65001
cls
java -Xms2048M -Xmx2048M -jar <서버 파일>.jar
pause||
만약 서버를 계속 다시 시작하고 싶다면 다음과 같이 작성한다.
chcp 65001
:start
cls
java -Xms<서버가 사용할 최초 메모리 크기> -Xmx<서버가 사용할 최대 메모리 크기> -jar <서버 파일>.jar
pause
goto start||
주의: <서버 파일>.jar 부분은 대소문자 구분하며, 띄어쓰기를 없애거나 파일 이름을 큰따옴표("")로 감싸줘야 한다.[11] 서버 구동기의 파일 이름을 단순하게 바꾸자. (예: server-1.21.3.jar)
작성한 스크립트에 대한 설명은 아래 표와 같다. 필요하면 기호에 맞게 스크립트를 바꿔 써도 좋다.
명령문 (매개 변수) 명령문 설명
@echo off프롬프트 메시지에 "C:\Windows\System32 >java -Xms..." 와 같은 파일 경로 또는 명령어가 출력되는 것을 끈다.
chcp 65001콘솔에서 특수문자가 깨지는 현상을 방지한다.
:startgoto 명령어에서 신호를 받았을 때 여기서부터 명령을 다시 시작한다.
cls콘솔에 출력된 모든 텍스트를 제거한다.
java -jar server.jar "server.jar" 라는 이름의 서버 구동기를 Java로 실행한다.[12]
-Xms2048M -Xmx2048M서버를 실행하는 데 할당시킬 메모리 크기[13].
-Xms는 최초 할당 크기, -Xmx는 최대 할당 크기이다.
되도록이면 -Xms와 -Xmx를 같게 설정하는 것이 좋다.
컴퓨터의 메모리 크기와 맞춰 설정하는 것이 좋지만, 서버를 연 컴퓨터로 다른 작업을 하려면 4GB 정도의 여유를 남기고 할당해야 한다.
pause일괄적인 처리를 보류한다. 서버 종료시 화면이 갑자기 꺼지지 않아 유용하다.
goto start:start 부터 명령을 다시 시작한다.
1. 파일을 저장한 후 메모장을 닫는다.
1. start.txt 텍스트 파일 이름을 start.bat 또는 .cmd[14]으로 바꾼 뒤 실행한다.
* 텍스트 파일 이름을 바꿔도 여전히 텍스트로 열린다면 파일 탐색기가 확장자명을 숨기고 있기 때문이다. Windows10 기준 폴더 창 상단의 보기-옵션-보기-알려진 파일 형식의 파일 확장명 숨기기 박스 체크 해제하면 파일의 확장자가 보인다. 파일 이름이 start.bat.txt 처럼 확장자가 변경된 것이 아니라 이름만 변경된 경우이다. 뒤의 txt를 지우면 해결된다.
1. .bat 또는 .cmd 파일을 열어 준다. 그러면 eula.txt 파일이 생성되는데, eula=false 부분을 eula=true을 바꾼다.
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#
eula=true
이는 최종 사용자 라이선스 계약에 동의한다는 의미이며 자신이 서버를 운영하면서 위반 행위를 할 경우 모장으로부터 제재를 받을 수 있다.
1. 다시한번 .bat 또는 .cmd 파일을 열어 준다. 그리고 잠시 기다리면 콘솔에 텍스트가 표시되며 world, server.properties 같은 폴더나 파일이 생성된다.[15] 이후 서버 콘솔에 Done (시간)! For help, type "help"가 기록되었다면 서버가 열렸음을 의미한다.

3.4. server.properties 수정

파일:상세 내용 아이콘.svg   자세한 내용은 server.properties 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[server.properties#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[server.properties#|]] 부분을
참고하십시오.
서버 설정을 담고 있는 파일이므로, 해당 파일을 수정하여 서버 설정을 변경할 수 있다.

특히, motd는 Message of the Day로, 마인크래프트의 멀티플레이에서 서버에 접속할 때 표시되는 메시지을 정하는 설정이다. server.properties에서 서버 motd를 설정하거나 스크립트로 설정할 수 있다. 1.19.4 이하 버전은 한글로 작성하려면 인코딩 방식이 다르기 때문에 UTF-8 형식으로 작성해야 한다.MC-2215 한글에서 유니코드로 바꾸는 방법은 여기로 가서 변환 해주도록 하자. 뿐만이 아니라 색을 입히고 출력 결과물을 미리 볼 수 있는등 편하게 설정 할 수 있다.

3.5. 마인크래프트 서버 공개

3.5.1. 포트포워딩

자신의 컴퓨터가 Wi-Fi 에 연결되지 않고 LAN 선이 모뎀이나 스위칭 허브에 연결되어 있거나 VPS 등의 호스팅 서비스를 사용하는 경우 패스. 하지만 LAN선이 라우터에 연결된 경우에는 아래 추가 절차가 필요하다.

장거리를 하고 싶다면 위에서 연 포트를 공유기에서도 열어주어야 한다. 모든 공유기 공통으로 공유기 페이지에 로그인해야되며 방법을 모르는 경우 공유기의 사용설명서를 읽어보면 된다. 공유기 제조사별로 방법이 천차 만별이니 문서에 모든 경우를 다 적기에는 어려움이 있다. 열심히 공유기의 포트 포워드나 포트 포워딩항목을 찾아보자 다만 iptime같은 사제 공유기 말고 통신사의 공유기라면 내부 포트를 제대로 지정할 수 없는 경우가 있는데[16] 통신사에 연락하거나 DMZ, S-DMZ, Twin-IP를 사용하거나 내부 포트에 맞춰주자. 모뎀을 사용하거나 이중 공유기이면 모든 모뎀, 공유기를 똑같이 설정해주어야 한다.[17] 공유기에서 컴퓨터로 할당되는 IP를 고정하는 것을 추천[18], 유동 IP이기 때문에 컴퓨터로 할당되는 IP주소가 바뀐다면 다시 설정해야 되기 때문이다.[19]

포트포워딩 완료 시 공유기와 유선으로 접속해 서버를 개방해야 한다.

3.5.2. 인바운드 규칙 설정(윈도우)

위의 방법대로 따라한다면 서버는 정상적으로 구동될테지만 본인 밖에 접속을 할 수 없을 것이다. 이를 해결하기 위해서는 방화벽을 해제해야 한다.

방화벽은 윈도우의 방화벽과 공유기의 방화벽이 존재하며, 윈도우의 방화벽을 열지 않으면 공유기에 방화벽을 열었다고 해도 멀티가 불가능 하나 윈도우의 방화벽을 열었다면 같은 공유기 내에서는 멀티가 가능하다.

포트포워딩이나 DMZ로 공유기의 포트를 열 경우 보안이 취약해지기 때문에 장거리 멀티가 아니라면 윈도우 방화벽만 해제해 주자.[20]

1.윈도우 키 + R을 입력하고 나타나는 실행 창에 control을 입력한다. 또는 제어판을 검색하여 연다.
2. 시스템 및 보안 → Windows Defender 방화벽 → 왼쪽에 위치한 고급 설정 클릭
3. 아웃바운드는 기본 설정이 접속 허용이니 건드릴 필요가 없고 인바운드 규칙을 선택한다.[21]
4. 오른쪽에 새 규칙포트(O)를 선택[22], TCP(T)특정 로컬 포트(S)[23] 선택하고 포트 입력 칸에 자신이 설정한 서버의 포트를 입력한다.(포트를 따로 설정하지 않았다면 기본 포트인 25565를 입력하면 되며 베드락 에디션은 19132).[24]
5. 연결 허용(A)를 선택하고, 도매인(D), 개인(P), 공용(U) 모두 선택한다.
6. 이름은 편한대로 지정해주고 설명은 선택 옵션이다.

3.5.3. 포트포워딩 문제 해결(윈도우)

간혹 공유기로 구축된 내부 네트워크와 서버 프로그램 자체에서 설정한 내부 네트워크 간 IP 설정이 달라[25] 127.0.0.1과 같은 루프백 IP로는 접근이 되는데, 외부에서 서버 접근이 안 되는 경우가 있다. 방화벽 설정, 공유기 포트포워드 설정 등등을 다 했는데 안 되면 환장할 노릇.

그런 경우에는 최초 서버 구축 시에 "사용자의 내부 IP *.*.*.*으(로) 포트포워드가 필요할 수 있습니다"라는 문구가 뜬다. 이 때는 관리자 권한으로 cmd 실행 이후
netsh interface portproxy add v4tov4 listenport=[설정 포트] listenaddress=[내부 네트워크 IP] connectport=[설정 포트] connectaddress=[컴퓨터의 내부 IP 주소]
와 같이 컴퓨터 내부적으로 한 번 더 포트포워딩 해줘야 정상적으로 포트포워드가 작동해 외부에서 내부 서버로 접근이 가능해진다. VMware 같은 가상 머신을 이용하는 컴퓨터의 경우 발생하는 문제.

3.6. 도메인 설정(선택)

도메인이란 간단히 말해서 숫자로 된 아이피주소를 문자열로 바꿔주는 서비스인데, 사용자들이 알기 쉽게 접근성을 올려 주고 서버의 특성을 나타내는 수단이다. 운영체제와 관계없이 사용하는 방법은 동일하다.

노하마치, 장거리 멀티등으로 많은 블로그에서 홍보하는데 하마치 아이피도 도메인 등록을 할 수 있으며 장거리 멀티는 도메인과는 크게 상관이 없다.

굳이 도메인을 안쓰고 아이피 주소를 사용하는 것도 충분히 가능하다. 특히 마인크래프트 서버의 경우 한번 주소를 입력해두면 저장이 되기 때문에 여러번 입력할 필요는 없어서 접근성을 높이고 싶은 경우가 아니라면 ip주소를 사용하는 것도 좋은 선택이다.

도메인을 등록하려면 대개 돈을 지불하여야 하며, 무료 도메인 사이트 역시 존재하나 무료 도메인 사이트는 선택할 수 있는 폭이 좁고 디도스 공격을 당해 서버가 폐쇄될 가능성이 높다. 과거 무료 도메인 사이트인 oa.to가 디도스 공격으로 폐쇄되었던 걸 생각해보자. 또한 .com같은 도메인은 이미 다른 사용자가 가져간 경우가 태반이며, 가격 역시 매우 비싸며, .kr은 대한민국 법의 보호를 받는 도메인이라는 점을 참고해두자.

그냥 도메인을 등록하면 가정에선 기본적으로 유동 아이피이기에 아이피 주소가 바뀌어 도메인이 갑자기 안될 수도 있으며 이러한 불편함을 해소하기 위해서는 아이피를 고정하거나 DDNS서비스를 사용하여야 한다.
iptime공유기라면 내장된 무료 DDNS를 사용하는 것을 추천하고, 이외에는 no-ip 또는 MCV.KR[26][27] no-ip같은 경우 추가 프로그램을 깔지 않으면 DDNS가 안되니 참고 바람. 다른 서비스를 찾고 싶다면 구글에 DDNS 검색을 해보자. 또는 Ngnix등을 사용해도 좋다.

DDNS가 싫다고 한다면 그냥 도메인을 아이피로 등록하면 된다. 만약 많은 사람들이 참여하는 서버로 만들고 싶다면 반드시 아이피를 고정하거나 DDNS를 사용해야 하며, 그냥 도메인을 등록하는 경우는 친한 사람끼리 플레이하는 정도가 적당하다.

4. 구동기 목록

파일:상세 내용 아이콘.svg   자세한 내용은 마인크래프트/서버/자바 에디션/구동기 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[마인크래프트/서버/자바 에디션/구동기#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[마인크래프트/서버/자바 에디션/구동기#|]] 부분을
참고하십시오.

5. 사건 사고

파일:상세 내용 아이콘.svg   자세한 내용은 마인크래프트/EULA 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[마인크래프트/EULA#s-5.1|5.1]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[마인크래프트/EULA#|]] 부분을
참고하십시오.


[1] 싱글플레이에서 디버그를 열어서 확인한다.[2] 압축을 풀면 사용할 수 없다![3] 단, 공유기를 사용 중이라면 공유기의 포트포워딩 설정을 통해 외부로 서버 포트를 개방해야 외부 유저들이 접속할 수 있다.[4] 새벽에만 서버를 운영하는 등.[5] 파일을 더블 클릭하는 것과 같은 행위.[6] MineOS, Crafty Controller 등.[7] 마이크로소프트에서 개발한 Windows용 오픈소스 패키지 관리자[8] 데비안 계열은 apt, 레드햇 계열은 dnf 또는 yum, 아치 리눅스 계열은 pacman을 사용한다.[9] 이 폴더는 서버 세계, 로그, 설정 파일이 담길 폴더이므로 신중하게 정하자. 띄어쓰기나 기호가 없는 오로지 영문숫자_ 만으로 된 폴더명을 추천한다.[10] 어떤 구동기 써야 할 지 모르겠다면 구동기 목록 문서를 참고할 수 있다.[11] 예: java -Xms8G -Xmx8G -jar "My Server 1.21.3.jar"[12] Java를 설치했더라도 이 과정에서 Java가 잡히지 않거나, Java가 여러 버전이 깔려 있을 때는 설치된 경로에서 java.exe를 찾아 수동으로 지정해줘야 한다.[13] 플러그인이나 모드가 많거나 동시 접속자가 많으면 더 많은 을 할당할 필요가 있다. M 대신 G를 사용해 기가바이트 단위로 할당 가능하다. 1G=1024M[14] 경고가 나온다면 무시하고 실행하면 된다.[15] 폴더나 파일이 생성 되지 않는다변 .bat나.cmd 파일을 다시 메모장으로 열어 준 다음 서버 구동기 파일 이름과 메모장에 쓴 파일 이름이 일치한지 확인하면 된다.[16] 한 LG공유기로 예를 들자면 내부 포트를 지정된 범위에서만 선택 가능하다. ex)스타크래프트 1234. 메일 P2P 1555등등등 이런 경우면 여기에 맞게 외부 포트도 설정해주고 윈도우 방화벽도 다시 설정해주어야 하며 서버에서도 설정해주어야 한다.[17] 모뎀일 경우 통신사에 연락해야하는 경우가 많다.[18] 이것 역시 방법이 천차만별[19] 테스트할 경우 서버가 시작되어 로컬에서 열려있어야 한다. 포트포워딩 테스트 사이트에서 자바 에디션 서버를 테스트하는 경우, 자바 에디션은 TCP를 사용하여 3-way 핸드셰이킹을 통해 서버 열림/필터/닫힘 여부의 확인이 용이하다. 반면 UDP 프로토콜을 사용하는 베드락 에디션 서버는 프로토콜 특성 상 상태 확인이 어렵거나 불가능하다. 이 경우 전용 테스트 사이트 혹은 프로그램을 사용하여 테스트해 보거나, 인게임으로 테스트해 보아야 한다.[20] 윈도우 방화벽을 열어주어야 랜서버로 같은 공유기 내에서 멀티를 할 수 있는 것이다.[21] 아웃바운드는 내가 접속하는 것, 인바운드는 남이 접속하는 것을 의미한다.[22] 프로그램을 선택해서 자바로 지정해주어도 된다. jre에 있는 java.exe를 지정하면 된다.[23] 모든 로컬 포트로 설정해도 되지만 포트를 적게 열어두는 것이 그나마 보안에 도움이 된다.[24] 1000-2000이런 식으로 범위로 지정해주어도 된다. 다만 그 범위에 설정한 포트가 포함되어 있어야 된다.[25] 한번 다르게 설정되었다면 아래 방법으로 해결될때 까지 절대 문제가 해결되지 않는다. 환장할 노릇[26] no-ip는한달에 한 번 갱신하여야 도메인을 계속 사용 할 수 있는데 비용은 무료이다. 기간이 다가오면 메일이 오니 참고하자[27] MCV.KR은 no-ip와 다르게 한달에 한 번 갱신을 할 필요가 없고, SRV레코드 까지 지원하며, 현재는 DDoS 방어를 목적으로 하는 프록시 서비스를 무료로 제공하고 있다.