마인크래프트 서버가 자바로 개발이 되었기 때문에 리눅스에서 자바를 설치하면 마인크래프트 서버를 운영할 수 있다. 리눅스에서 서버를 돌릴경우 대부분 백그라운드로 프로세스를 보내게 된다. 왜냐하면 대부분의 경우 관리자가 계속 화면을 켜놓든지 putty로 접속하고 있지 않기 때문이다. 하지만 "실행파일 &" 식으로 &을 붙여서 서버를 실행하게 되면 서버가 제대로 작동을 하지 않는다. 한번의 명령으로 바로 마인크래프트 서버를 실행하려면 따로 screen 프로그램을 설치하고 간단한 쉘 스크립트를 만드는 것이 훨씬 편하다.


1. 우선 Screen 프로그램을 설치한다.

yum install screen        //레드헷 기반
apt-get install screen    //데비안, 우분투

2. 서버파일들이 있는 폴더에 스크립트 파일을 만든다.

vi run.sh    //이름은 자기 마음대로

3. 다음과 같이 쉘스크립트 작성한다.

#!/bin/bash
screen -d -m java -Xmx1G -Xms1G -jar minecraft_server.jar nogui

여기서 -Xmx는 JVM에 할당할 최대메모리양, -Xms는 최소메모리양을 설정하는 옵션이다.

minecraft_server.jar은 서버파일 이름이고 만약 이름이 다르다면 변경하면 된다.

4. 이제 다음부터는 바로 마인크래프트 서버를 백그라운드로 실행할 수 있음

./run.sh        //이런 식으로 실행하면 마크서버가 백그라운드에서 실행됨

5. 포그라운드로 되돌리는 것은 쉽다.

screen -r

홈 서버가 있으면 남는 자원을 이용해서 SeedBox을 구축하는 것도 좋은 생각이다. 리눅스 서버에 사용할 수 있는 토렌트 클라이엔트 중 대표적으로 Transmission, Deluge, Rtorrent(+Rutorrent)가 있다. 이중에서 라이트하게 이용할 수 있는 Transmission 설치법을 소개하고자 한다. Fedora 기준으로 설명하지만 Ubuntu등 다른 리눅스에서도 적용하는 방법이 비슷할 것이다.


우선 트랜스미션을 설치한다. 참고로 유분투에서는 apt-get을 이용한다.

yum install transmission-daemon

다음으로 트랜스미션 설정파일을 수정해준다. (여기서 반드시 주의할 점은 설정파일을 수정하기 전에 transmission이 실행되어 있으면 안된다!! 아니면 수정해도 다시 원래대로 되돌아간다 -_-;;) 만약 트랜스미션이 실행되고 있으면 killall transmission-daemon으로 프로세스를 종료한다.

vim /var/lib/transmission/.config/transmission-daemon/settings.json

설정파일에서 다음 항목을 수정하면 된다.

  •  "download-dir": "/var/lib/transmission/Downloads"    기본 다운로드 장소이다.
  •  "incomplete-dir": "/var/lib/transmission/Downloads"    임시 저장 장소이다.
  • "rpc-password": ""    웹 인터페이스 접속시 비밀번호
  • "rpc-username": ""    웹 인터페이스 접속시 유저ID
  • "rpc-whitelist": "127.0.0.1"    웹 인터페이스 접속 허용가능 IP(192.168.*.* 식의 입력도 가능하다.)
  • "rpc-whitelist-enabled": true    True면 whitelist 사용, False면 모든 접속 가능.

설정을 다 끝냈으면 데몬을 시작한다.

systemctl start transmission-daemon
service transmission-daemon start #systemd 가 아닌 init 사용시

방화벽 사용시에는 9091포트를 열어줘야 한다. 예를 들면 이렇게 하자.

iptables -I INPUT -p tcp --dport 9091 -m state --state=NEW -j ACCEPT

이제 웹브라우저에 https://호스트주소:9091 로 접속하면 끝!




p.s) 컴퓨터 시작할 때 데몬을 자동으로 켜려면 systemctl enable 또는 chkconfig 명령어를 이용하면 된다.

+ Recent posts