반응형

이번 글은 MBL에 Torrent Client인 Transmission을 설치하고 사용해 보겠다

참고자료: http://mybookworld.wikidot.com/transmission



1. 9091 포트를 포트 포워딩 해준다.


공유기 설정에서 9091포트를 MBL로 포트 포워딩 해준다.

해당 포트는 외부 접속관리 프로그램인 Transmission GUI의 접근을 위한 포트가 될 것이다.



2. Tansmission 설치


MyBookLive:~# ipkg update

MyBookLive:~# ipkg install transmission



설치 완료입니다!!


데몬 실행은 /opt/bin/transmission-daemon

종료는 killall transmission-daemon  입니다



transmission의 remote access및 watch를 위해서 다음과 같은 설정 파일을 변경해야됩니다.


vi등의 에디터로 

/root/.config/transmission-daemon/settings.json

파일을 열어 다음과 같이 수정한다



{

    "alt-speed-down": 50, 

    "alt-speed-enabled": false, 

    "alt-speed-time-begin": 540, 

    "alt-speed-time-day": 127, 

    "alt-speed-time-enabled": false, 

    "alt-speed-time-end": 1020, 

    "alt-speed-up": 50, 

    "bind-address-ipv4": "0.0.0.0", 

    "bind-address-ipv6": "::", 

    "blocklist-enabled": true, 

    "blocklist-url": "http://www.bluetack.co.uk/config/level1.gz", 

    "cache-size-mb": 4, 

    "dht-enabled": true, 

    "download-dir": "/DataVolume/shares/Public/TR-Downloads", 

    "download-queue-enabled": true, 

    "download-queue-size": 5, 

    "encryption": 1, 

    "idle-seeding-limit": 30, 

    "idle-seeding-limit-enabled": false, 

    "incomplete-dir": "/DataVolume/shares/Public/TR-INCOMPLETE", 

    "incomplete-dir-enabled": true, 

    "lpd-enabled": false, 

    "message-level": 2, 

    "peer-congestion-algorithm": "", 

    "peer-limit-global": 240, 

    "peer-limit-per-torrent": 60, 

    "peer-port": 51413, 

    "peer-port-random-high": 65535, 

    "peer-port-random-low": 49152, 

    "peer-port-random-on-start": false, 

    "peer-socket-tos": "default", 

    "pex-enabled": true, 

    "port-forwarding-enabled": false, 

    "preallocation": 1, 

    "prefetch-enabled": 1, 

    "queue-stalled-enabled": true, 

    "queue-stalled-minutes": 30, 

    "ratio-limit": 2, 

    "ratio-limit-enabled": false, 

    "rename-partial-files": true, 

    "rpc-authentication-required": true, 

    "rpc-bind-address": "0.0.0.0", 

    "rpc-enabled": true, 

    "rpc-password": "pwd", 

    "rpc-port": 9091, 

    "rpc-url": "/transmission/", 

    "rpc-username": "id", 

    "rpc-whitelist": "127.0.0.1", 

    "rpc-whitelist-enabled": false, 

    "scrape-paused-torrents-enabled": true, 

    "script-torrent-done-enabled": false, 

    "script-torrent-done-filename": "", 

    "seed-queue-enabled": false, 

    "seed-queue-size": 10, 

    "speed-limit-down": 100, 

    "speed-limit-down-enabled": false, 

    "speed-limit-up": 100, 

    "speed-limit-up-enabled": false, 

    "start-added-torrents": true, 

    "trash-original-torrent-files": false, 

    "umask": 0, 

    "upload-slots-per-torrent": 14, 

    "utp-enabled": true,

   "watch-dir": "/shares/Public/TR-watch", 
   "watch-dir-enabled": true

} 


MyBookLive:~# chmod 600 /root/.config/transmission-daemon/settings.json

이제 

/etc/init.d/transmission-daemon


파일을 만들고 아래 내용을 채워 넣는다


#! /bin/sh

### BEGIN INIT INFO

# Provides:          transmission-daemon

# Required-Start:    $remote_fs

# Required-Stop:     $remote_fs

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: Start or stop the transmission-daemon

# Description:       This file should be used to construct scripts to be

#                    placed in /etc/init.d.

### END INIT INFO


TRANSMISSION_BLOCKLISTS_DIRECTORY=/root/.config/transmission-daemon/blocklists


# Bluetack: badpeers

# http://www.iblocklist.com/list.php?list=bt_templist

wget -P $TRANSMISSION_BLOCKLISTS_DIRECTORY/ "http://list.iblocklist.com/?list=bt_templist&fileformat=p2p&archiveformat=gz"

rm -f $TRANSMISSION_BLOCKLISTS_DIRECTORY/bt_templist

gunzip $TRANSMISSION_BLOCKLISTS_DIRECTORY/bt_templist.gz


# Bluetack: level1

# http://www.iblocklist.com/list.php?list=bt_level1

wget -P $TRANSMISSION_BLOCKLISTS_DIRECTORY/ "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz"

rm -f $TRANSMISSION_BLOCKLISTS_DIRECTORY/bt_level1

gunzip $TRANSMISSION_BLOCKLISTS_DIRECTORY/bt_level1.gz


# The Blocklist Group: Primary Threats

# http://www.iblocklist.com/list.php?list=ijfqtofzixtwayqovmxn&fileformat=p2p&archiveformat=gz

wget -P $TRANSMISSION_BLOCKLISTS_DIRECTORY/ "http://list.iblocklist.com/?list=ijfqtofzixtwayqovmxn&fileformat=p2p&archiveformat=gz"

rm -f $TRANSMISSION_BLOCKLISTS_DIRECTORY/ijfqtofzixtwayqovmxn

gunzip $TRANSMISSION_BLOCKLISTS_DIRECTORY/ijfqtofzixtwayqovmxn.gz


# Do NOT "set -e"


# PATH should only include /usr/* if it runs after the mountnfs.sh script

PATH=/opt/sbin:/opt/bin:/sbin:/usr/sbin:/bin:/usr/bin

DESC="Transmission - daemon"

NAME=transmission-daemon

DAEMON=/opt/bin/$NAME

DAEMON_ARGS="--options args"

#PIDFILE=/var/run/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

USER=root

STOP_TIMEOUT=3



# Exit if the package is not installed

[ -x "$DAEMON" ] || exit 0


[ -e /etc/default/$NAME ] && . /etc/default/$NAME


# Read configuration variable file if it is present

[ -r /etc/default/$NAME ] && . /etc/default/$NAME


# Load the VERBOSE setting and other rcS variables

. /lib/init/vars.sh


# Define LSB log_* functions.

# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.

. /lib/lsb/init-functions


#

# Function that starts the daemon/service

#

do_start()

{



    # Return

    #   0 if daemon has been started

    #   1 if daemon was already running

    #   2 if daemon could not be started


    if [ $ENABLE_DAEMON ! = 1 ] ; then

        log_progress_msg "(disabled, see /etc/default/${NAME})"

    else    

        start-stop-daemon --start \

        --chuid $USER \

        --exec $DAEMON -- $OPTIONS

    fi




    # Add code here, if necessary, that waits for the process to be ready

    # to handle requests from services started subsequently which depend

    # on this one.  As a last resort, sleep for some time.

}


#

# Function that stops the daemon/service

#

do_stop()

{

    # Return

    #   0 if daemon has been stopped

    #   1 if daemon was already stopped

    #   2 if daemon could not be stopped

    #   other if a failure occurred

    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME

    RETVAL="$?"

    [ "$RETVAL" = 2 ] && return 2

    # Wait for children to finish too if this is a daemon that forks

    # and if the daemon is only ever run from this initscript.

    # If the above conditions are not satisfied then add some other code

    # that waits for the process to drop all resources that could be

    # needed by services started subsequently.  A last resort is to

    # sleep for some time.

    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON

    [ "$?" = 2 ] && return 2

    # Many daemons don't delete their pidfiles when they exit.

    rm -f $PIDFILE

    return "$RETVAL"

}


#

# Function that sends a SIGHUP to the daemon/service

#

do_reload() {

    #

    # If the daemon can reload its configuration without

    # restarting (for example, when it is sent a SIGHUP),

    # then implement that here.

    #

    start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME

    return 0

}


case "$1" in

  start)

    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"

    do_start

    case "$?" in

        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;

        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;

    esac

    ;;

  stop)

    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"

    do_stop

    case "$?" in

        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;

        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;

    esac

    ;;

  #reload|force-reload)

    #

    # If do_reload() is not implemented then leave this commented out

    # and leave 'force-reload' as an alias for 'restart'.

    #

    #log_daemon_msg "Reloading $DESC" "$NAME"

    #do_reload

    #log_end_msg $?

    #;;

  restart|force-reload)

    #

    # If the "reload" option is implemented then remove the

    # 'force-reload' alias

    #

    log_daemon_msg "Restarting $DESC" "$NAME"

    do_stop

    case "$?" in

      0|1)

        do_start

        case "$?" in

            0) log_end_msg 0 ;;

            1) log_end_msg 1 ;; # Old process is still running

            *) log_end_msg 1 ;; # Failed to start

        esac

        ;;

      *)

          # Failed to stop

        log_end_msg 1

        ;;

    esac

    ;;

  *)

    #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2

    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2

    exit 3

    ;;

esac


: 



다음 아래의 명령어를 넣어준다

MyBookLive:~# chmod 755 /etc/init.d/transmission-daemon

MyBookLive:~# update-rc.d transmission-daemon defaults


그리고 다음 명령어로 실행한다.


MyBookLive:~# /etc/init.d/transmission-daemon start








반응형

+ Recent posts