서버

노하마치 서버 만들때 해야할 일…

  1. 폴더하나 만들고
  2. 일단 스피곳 (Spigot) 구해서 넣고 (스피곳 검색)
  3. 스피곳을 실행시킵니다. (실행 스크립트 혹은 명령어 검색)
  4. 일단 같은 컴퓨터에서 접속되는지 확인하고 (서버 주소에 127.0.0.1)
  5. 공유기의 포트 25565를 현재 컴퓨터로 연결시킵니다. (공유기 설명서 참조)
  6. 가지고 있는 도메인(인터넷 주소)이 있으면 연결하시고 (도메인회사 홈피 참조)
  7. 없으면 공유기의 ddns 설정..하고 ( iptime 이면 xxx.iptime.org) (iptime 홈피참조)
  8. 친구시켜서 외부접속 되는지 확인합니다.

서버에 대해

서버의 기동 방법 서버 용 프로그램 파일은 .EXE와 .JAR 두가지가 있습니다. 서버에 모드(Mod)를 설치하려고 하는 경우, exe 말고 jar판을 사용해야 합니다.

EXE판

공식의 DL페이지(으)로부터 Minecraft_Server.exe (을)를 다운로드해 주세요. 좋아하는 폴더에 두어 실행하면 필요한 파일이 minecraft.net의 서버로부터 다운로드됩니다. 파일의 생성을 확인하면 한 번 서버를 종료해 주세요.

윈도우를 닫으면 종료합니다.

JAR판

Windows

공식의 DL페이지의 맨아래에 있는 minecraft_server.jar 다운로드. 좋아하는 장소에 다운로드한 jar 파일을 둔다. jar 파일을 둔 것과 같은 폴더에 텍스트 파일(예 mc_server.bat)를 작성해, 안에 이하의 문장을 기술한다.

@echo off
java -Xms1024M -Xmx1024M -jar minecraft_server.jar nogui
pause

작성한 bat 파일을 실행하면 커멘드 prompt의 윈도우가 표시되어 필요한 파일이 minecraft.net의 서버로부터 다운로드됩니다. 파일의 생성을 확인하면 한 번 서버를 종료해 주세요.

GUI가 없는 경우에 종료할 때는 반드시 커멘드 prompt에 stop와 입력해 종료해 주세요. 커멘드 prompt를 닫으면 데이터가 보존되지 않는 경우가 있습니다.

만약, jar판으로 GUI 화면을 표시하고 싶은 것이면 nogui를 삭제 GUI 버전은 서버의 리소스 모니터,플레이어목록 등을 볼수 있으나 플러그인 은 적용 못합니다 플러그인을 사용하실려면 다른 버킷 또는 다른 구동기를 사용해주세요

java 관련

64 bit판의 경우 64 bit판의 경우로 동작에 문제가 있는 경우는 java나 javaw를 "%ProgramFiles(x86)%\Java\jre6\bin\java.exe" "%ProgramFiles(x86)%\Java\jre6\bin\javaw.exe" 등의 32 bit판 java를 호출하도록(듯이) 변경해 주세요.

java의 파라미터

서버의 퍼포먼스가 나빠졌을 경우에 사용 메모리를 늘리는 경우는 java -Xms1024M -Xmx4096M -jar minecraft_server.jar nogui (와)과 같이 Xmx 파라미터를 변경해 주세요. Xms 파라미터는 사용하는 메모리의 초기설정입니다. Xms에 큰 값을 설정하면 메모리를 필요로 하지 않는 경우에서도 지정한 양의 메모리를 확보하려고 해 버립니다.

접속 확인

게임 클라이언트를 기동해, MultiPlay를 선택해 localhost (이)라고 입력해 접속합니다. (포토를 변경하고 있으면 localhost:포토 번호 (이)라고 입력할 필요가 있습니다) 접속할 수 있으면 서버를 세우는 것에 성공하고 있습니다.

다른 사람에게 서버의 IP를 전하는 경우는, 글로벌 IP (을)를 가르칠 필요가 있습니다. (포토를 변경하고 있으면 글로벌 IP:포토 번호 ) 파이어 월(fire wall)나 NAT(라우터등 )의 안쪽에 있다면 포토의 개방 설정을 실시할 필요가 있습니다. 외부로부터 마인크라후트의 서버가 가동하고 있는 컴퓨터의 25565/tcp에 액세스 할 수 있도록(듯이) 설정해 주세요. (포토 설정을 변경하고 있는 경우는 변경한 포토에, udp는 사용되고 있지 않으므로 설정하지 않아도 좋습니다. localhost에서는 능숙하게 말했는데, 다른 사람으로부터 연결되지 않는다고 하는 보고를 받았을 경우는 포트 개방이 되어 있지 않을 가능성이 높습니다. 「포트 개방」로 검색하면 여러가지 해결 방법이 나오므로 그 쪽을 참고로 해 주세요.

서버의 설정

서버의 첫회 기동시에 생성된 파일을 편집해 설정합니다.

ops.txt (을)를 열어 자신의 Minecraft ID를 입력해 주세요. 게임내에서 관리자 커멘드를 사용할 수 있게 됩니다.

서버의 설정은 서버 파일 실행 후에 생성되는 server.properties의 내용을 고쳐 쓰는 것으로 변경할 수 있습니다. 설정 변경의 반영에는 서버의 재기동이 필요합니다.

#server.properties 디폴트 설정
#Minecraft server properties
level-name=world
hellworld=false
spawn-monsters=true
online-mode=false
spawn-animals=true
max-players=20
server-ip=
pvp=true
server-port=25565
명령 설명
admin-slot=<true/false> 서버가 정원에 이르고 있을 때에도 op권한이 있으면 참가할 수 있도록 한다
grow-trees=<true/false> 묘목의 성장의 ON/OFF
level-name=<name> 맵 데이터를 보존하는 폴더의 이름
max-connections=<1-3> 동일 IP로부터의 접속을 허가하는 수. 4이상을 설정했을 경우 자동으로 3이 된다
max-players=<0-256> 플레이어의 최대 동시 접속수. admin는 이 수에 포함되지 않습니다
monsters=<true/false> 밤이 되면 몬스터가 열광할지
motd=<text> 플레이어가 접속해 왔을 때에 문장을 표시한다
online-mode=<true/false> Minecraft 공식 서버에 접속해 유저 인증을 실시할지 여부
public=<true/false> 공식의 서버 리스트에 서버를 실을지
server-ip=<blank/IP> NIC가 다수 있는 경우에 어느 NIC에 바인드 할까
server-name=<name> 서버의 이름
server-port=<1-65535> 서버로 사용하는 포토 디폴트로 25565
verify-names=<true/false> ON로 하면 Minecraft.net상에서 동일 IP가 없는가 체크한다
hell-world=<true/false> true로 하면 네자의 세계가 생성된다
no-animals=<true/false> true로 하면 동물이 끓지 않게 된다
pvp=<true/false> False로 하면 다른 플레이어를 공격할 수 없게 된다
spawn-monsters=<true/false> False로 하면 몬스터가 사라진다
spawn-animals=<true/false> False로 하면 동물이 사라진다

서버 콘솔 커멘드

서버의 콘솔에 입력하는 것으로 여러가지 일이 생기는 커멘드 일람입니다.

명령어 설명
help서버 커멘드 일람을 표시
?help와 같다
kick <player>대상 플레이어를 서버로부터 킥 한다
ban <player>대상 플레이어를 서버로부터 밴 한다
pardon <player>대상 플레이어의 밴을 해제한다
ban-ip <ip>대상 IP를 서버로부터 밴 한다
pardon-ip <ip>대상 IP의 밴을 해제한다
op <player>대상의 플레이어를 OP(관리자)로 한다
deop <player>대상의 플레이어로부터 OP(관리자)로부터 제외한다
tp <player1> <player2>player1를 player2의 장소에 이동시킨다
give <player> <id> [num]대상의 플레이어에 아이템<id>를, [num]개 아이템을 건네준다
tell <player> <message>대상의 플레이어에 다른 사람으로 보이지 않는 메세지를 보낸다
stop서버를 정지한다
save-all서버 전체를 세이브한다
save-off지형의 세이브를 무효로 한다
save-on지형의 세이브를 유효하게 한다
list지금 서버에 연결하고 있는 플레이어의 일람을 표시
say <message>플레이어 전원에게 메세지를 송신한다

관리자(OP:오퍼레이터) 명령

게임중의 채팅창에서 여러가지 커멘드를 실행할 수 있습니다.

명령어 설명
/op <name> 대상의 플레이어를 관리자로 한다
/deop <name> 대상의 플레이어를 관리자로부터 제외한다
/kick <name> 대상 플레이어를 서버로부터 킥 한다
/list 지금 서버에 연결하고 있는 플레이어의 일람을 표시
/ban <name> 대상 플레이어를 서버로부터 밴 한다
/banip <name> 대상 IP를 이름을 지정하는 여기로 서버로부터 밴 한다
/pardon <player> 대상 플레이어의 밴을 해제한다
/say <message> /broadcast와 같지만 보다 짧은 커멘드
/tp <player1> <player2> player1를 player2의 장소에 이동시킨다

리눅스 서버

자바이므로 자바가 깔려있다면 리눅스에서도 그냥 돌아간다.

minecraft_server.jar 다운

java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui

서비스 실행법

nohup 사용하는 방법.

nohup java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui

nohup를 붙이면 리눅스에서 로그아웃해도 계속 실행되지만, 정지시킬 수 없다. 직접 프로세스를 찾아 정지시켜야 한다. kill 명령을 사용한다.

init.d 사용법

서버모드

서버목록

국내서버

해외서버

1위 슈퍼어쓰..

500명 Dual Quad Core X5675 Processors / 48GB DDR3 RAM / Solid State Drive / 1gbit dedicated uplink

Aston 서버

Web 사이트 http://hellmc.jpn.ph/ 주소 hellmc.jpn.ph:8088 (잠시 후에 변동 있어) 최대 플레이어 인원수 20명 가동 시간 24시간 도입 MOD Bukkit/자작 Plugin 비고 구구리-파 모양의 없는 서버입니다.현재 ModPlugin에서, 구리-파 모양을 지우는 방법을 모색하고 있어, 되자마자 구리-파 모양의 없는 고등어로 돌아옵니다. 현재는 구리-파 모양은 10초 마다 불타는 설정으로 하고 있습니다. 악질적인 플레이어에 의한 파괴 행위를 막는 에리어 보호 기능 있어.보호내에서는 도어조차 개 찰 수 없습니다. 사탕수수를 현금에 진단하고 아이템을 구입할 수 있습니다. 보다 안전을 요구해 화재 소화 커멘드등도 실장했습니다.

Dame server

agmc

m16

고급정보

선택할 수 있는 서버 운영 방법

바닐라 서버

-바닐라 서버는 마인크레프트 원본 서버를 말한다 -제작자인 노치notch가 제공하는 서버이다 -간단한 설정과 업데이트가 나왔을때 단순히 덮어씌우면 되는 장점이 있다 -기본적 기능이 있는 서버로 믿을만한 사람 몇명이 하기 적당하다 -jar형식으로 된 커맨드 라인 방식과 exe의 실행파일로 된 GUI방식이 제공되며 기능상 차이는 없다

MCserver

-내용 : http://www.minecraftforum.net/viewtopic.php?f=1012&t=101183 -다운로드 : http://mcserver.ae-c.net/ -FakeTruth가 혼자만든 서버이다 -C++로 제작되어 아마 바닐라 서버보다 가볍고 빠를지도 모른다 -지금까지는 바닐라 서버보다 더 적은 기능을 제공하지만 몇개의 특별한 기능을 제공하는거 같다

mineserver2

Mine Server

-내용 : http://www.minecraftforum.net/viewtopic.php?f=1012&t=86135 -홈페이지 : http://mineserver.be/ -오픈 소스 방식의 서버이다 -C++로 제작되어 아마 바닐라 서버보다 가볍고 빠를지도 모른다 -MCserver 보다 개발기간이 좀더 오래되었다 -MCserver보다는 더 많은 기능을 지원하는것 같다 -바닐라 서버의 기능을 전부 지원하지는 않지만 몇개의 특별한 기능을 제공하느것 같다

서버 모드

서버 최적화

32비트 자바 런타임은 메모리를 1기가 이상 활용하기 힘드므로 64비트 자바 런타임을 심어 돌린다

관련 최신글

자바 1.7 x64 런타임 환경(JRE)의 사용

공식 릴리즈된 자바 런타임 환경 1.6보다 아직 개발중인 1.7이 좀더 빠르다고 한다

http://brunoreis.com/tech/intalling-java-ubuntu-natty/

sudo add-apt-repository ppa:dlecan/openjdk

sudo apt-get update

sudo apt-get install openjdk-7-jre # or "openjdk-7-jdk" for JDK.

sudo update-alternatives --config java

http://codeslinger.posterous.com/how-to-install-java-7-on-ubuntu http://www.taranfx.com/java-7-whats-new-performance-benchmark-1-5-1-6-1-7

자바 런타임 환경 튜닝을 통한 최적화

- jar로 된 서버를 실행시 자바에 부여하는 다양한 옵션을 통해 서버최적화를 할 수 있다 -환경튜닝에 따라 체감가능한 성능향상이 있다 -대부분 가비지컬렉터 셋팅, SEE등 부가적 명령어 사용, 쓰레드 셋팅을 통해 서버를 최적화 한다 -http://www.minecraftforum.net/viewtopic.php?f=1012&t=68128 -http://java.sun.com/performance/reference/whitepapers/tuning.html -http://java.sun.com/performance/reference/whitepapers/6_performance.html -http://www.md.pp.ru/~eu/jdk6options.html

가베지컬렉터한글설명

자바 vm의 메모리 활용 크기 늘리기

-1G이상 활용시 꼭 64bit jre가 필요함! -Xms -initial java heap size -Xmx -maximum java heap size -Xmn -the size of the heap for the young generation

자바의 가비지 컬렉터

가비지 컬렉터는 메모리를 관리하는 자바/jre/vm의 기술이다

first two choices are most common for large server applications:

   -XX:+UseParallelGC parallel (throughput) garbage collector, or
   -XX:+UseConcMarkSweepGC concurrent (low pause time) garbage collector (also known as CMS)
   -XX:+UseSerialGC serial garbage collector (for smaller applications and systems)
자바의 가비지 컬렉터를 Concurrent Mark-Sweep(CMS) Collector로 사용하기

-CMS는 일반적인 가비지 컬렉터보다 빠른 응답시간을 위해 만들어 졌다 -XX:+UseConcMarkSweepGC

자바의 가비지 컬렉터를 Parallel Collector(Throughput Collector)로 사용하기

-가비지 컬렉터는 메모리를 관리하는 자바/jre/vm의 기술이다 -Parallel Collector는 여러 CPU/core활용하는 기술이다 -XX:+UseParNewGC

자바의 새로운 가비지 컬렉터 Garbage-First Garbage Collector (G1GC)사용

-가급적 최신 1.7jre를 사용하여 이옵션을 이용하는게 좋다 -최근 개발되고 있는 새로운 가비지 컬랙터로 -최소 듀얼코어이상, 메모리를 2G이상 활용시의 대용량/고성능이 요구될 때 좋다고 한다 -XX:+UseG1GC

자바의 가비지 컬렉터가 몇개의 쓰레드를 사용할 지 정하는 옵션

-자신이 원하는 코어활용 숫자를 넣으면 된다. 보통 코어의 수(하이퍼스레딩포함)로 세팅. -마인크레프트서버가 멀티코어 프로그래밍이 되있는것은 아니지만, 가비지 컬렉팅이라도 여러 코어를 활용하여 응답속도 면에서 이득을 얻을 수 있다 -XX:ParallelGCThreads=원하는코어숫자

-기타 가비지 컬렉터 튜닝 옵션 -XX:SurvivorRatio=16 -(default 32) is the space for young elements. 32 is too big for minecraft. ( will take memory, without filling it ) be carefull to small will crash -XX:NewRatio=6

Xnoclassgc

-Xnoclassgc -makes it so that the GC will not unload classes ( unless it has no choice ) keeps the server speedy :)

-XX:+CMSIncrementalPacing

-XX:-overgcoverheadlimit -the GC can do multiple GC on different heaps at the same time.

SEE연산 활용하기

-고급 CPU에서 제공하는 부가적인 명령어 셋을 활용함으로써 CPU점유율에서 이득을 얻을 수 있다 -XX:UseSSE=명령어셋버전

자바vm의 우선순위 높이기

-XX:+AggressiveOpts

설정예

참고설정 1. G1GC의 최신 GC활용하여 서버구동

-jre1.7x64가 필요하고 성능을 얻는대신 불안전성을 얻을 수도 있다 -XX:+UnlockExperimentalVMOptions -XX\:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:GCPauseIntervalMillis=800 -XX:UseSSE=4 -Xmx16G -Xms16G -G1GC관련 기타 참고 -http://www.javaperformancetuning.com/news/newtips106.shtml

참고설정 2. CMS의 GC활용하여 서버 구동

-상당히 검증된 CMS를 활용하여 성능을 얻기 -Xmx1024M -Xms512M -XX:UseSSE=3 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=2 -XX:+AggressiveOpts

-위의 참고설정 1,2를 적절히 활용하고 아래 링크의 각종 예를 활용하면 -적절한 튜닝 방식을 활용할 수 있을것이다

http://www.minecraftforum.net/viewtopic.php?f=1012&t=68128&start=90

Quote:, Xmx for Max RAM allowed, MaxGCPauseMillis to set pause (5ms is good), ParallelGCThreads is number of threads (i've 2, so it's set to 2) and UseSSE to specify preferred version of SSE to use (My CPU can do 4.2 MAX i think, i've set to 4).

For those who care, this is my exact, copy/paste

@echo off "%ProgramFiles%\Java\jre7\bin\java.exe" -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=16 -Xnoclassgc -XX:ParallelGCThreads=2 -Xmn512M -Xmx8192M -Xms1536M -jar Minecraft_Mod.jar nogui pause

It supports upwards of 60-70 players. has dual hex cores (12).

If there's anything that could be tweaked for better performance, please let me know ;)

출처 고게이

역링크