라즈베리파이를 리모트 토렌트 머신으로 만들기
토렌트를 자주 쓰는데, 불편했던 것은 컴퓨터를 항상 켜놔야 한다는 것이다. 라즈베리파이 서버가 있으니 토렌트 다운로드 머신으로 써 보자.
1. 라즈베리파이에 토렌트를 설치하자. 데몬과 클라이언트를 설치하자.
sudo apt-get install transmission transmission-daemon transmission-cli
2. 셋업 파일을 수정하기 전에 토렌트 데몬을 중지해야 한다. 중지 안하고 하면, 나중에 다시 롤백된다. 주의하자.
sudo service transmission-daemon stop
다시 서버를 시작하는 것은 stop을 start이나 restart로 바꾸면 된다.
sudo service transmission-daemon start
3. 설정파일을 수정한다. json 파일을 수정하게 된다. 제이슨 파일은 처음 보았는데 뭐 별거 없다.
sudo nano /var/lib/transmission-daemon/info/settings.json
다음의 파일을 필요에 맞게 수정한다.
"rpc-username": "사용자이름",
"rpc-password": "비밀번호",
"download-dir": "다운로드위치",
"incomplete-dir": "다운로드가 완료되지 않은 파일 임시 저장소",
"incomplete-dir-enabled": true,
나는 어느 컴퓨터에서도 다운로드를 원격으로 하기 위해 whitelist를 사용하지 않겠다. 사용한다면(true) 정해진 ip에서만 다운 명령을 내릴 수 있다.
"rpc-whitelist-enabled": false,
3.1. 블락리스트를 설정한다. 경찰에게 잡혀가지 않을 확률을 올려주는 중요한 작업이다. 아버지가 대통령이거나 벌금 낼 돈이 많다면 3번은 패스해도 좋다. 이렇게 수정한다.
"blocklist-enabled": true,
"blocklist-url": "http://www.bluetack.co.uk/config/level1.gz",
블락리스트를 info 폴더에 다운로드 한다. 루트권한이 필요하다. (왜 루트권한이 필요한 진 모르겠지만, 루트가 아니면 저 폴더에 못 들어간다.)
해당 폴더로 간다.(루트권한필요)
sudo su
cd /var/lib/transmission-daemon/info/blocklists/
파일을 다운받는다. 해당 파일이 폴더에 생길 것이다.
wget http://www.bluetack.co.uk/config/level1.gz
압축을 푼다.
gunzip level1.gz
트랜스미션을 재시작한다.
sudo service transmission-daemon reload
ls로 폴더를 보면 level1.bin 파일이 생성되었을 것이다.
3.2 블락리스트 업데이트를 매주 한번씩 해주는 자동 스크립트 만들기. 이것 역시 경찰에 잡혀갈 확률을 줄여준다.
폴더로 가서 파일을 만든다.
cd /var/lib/transmission-daemon/info/blocklists/
sudo nano update-transmission-blocklist
새 파일이 생기면 이렇게 적는다.
#!/bin/bash
# blocklist directory
BLOCKLISTDIR=/var/lib/transmission-daemon/info/blocklists
cd ${BLOCKLISTDIR}
if [ $? -eq 0 ]; then
if [ -f level1 ]; then
rm level1
fi
# if no blocklist file exist update blocklist
if [ ! -f level1 ]; then
echo "*** updating Blocklist for Transmission...”
wget -q -O level1.gz http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz
# if download successful unzip it
if [ -f level1.gz ]; then
gunzip level1.gz
# if file extracted successfully reload transmission
if [ $? -eq 0 ]; then
chmod go+r level1
/etc/init.d/transmission-daemon reload
else
rm -f level1*
fi
fi
fi
cd - 2>&1 >/dev/null
fi
완성된 파일 스크린샷
저장하고 나온다.
파일을 실행 가능하게 만들어 준다.
chmod a+x update-transmission-blocklist
파일을 자동실행폴더로 넣어야 한다. cron.weekly에 넣으면 자동으로 실행이 된다고 한다. (아직 일주일이 안 지나서 모르겠지만 되겠지 뭐…)
mv update-transmission-blocklist /etc/cron.weekly/
자동으로 매주 한번씩 블락리스트를 업데이트 해준다. 경찰관을 만날 확률이 줄어들었다! 하지만 여전히 불안감은 있다. 뭐 어쩌겠나...
4. 다운로드위치 설정하기. 나는 외장 USB하드를 NAS로 연결해서 쓰고 있다. 해당 하드에다 폴더를 만들어 준다.
sudo mkdir /mnt/NAS-1T-EXT4/Torrent
완료되지 않은 폴더도 만들어준다.
sudo mkdir /mnt/NAS-1T-EXT4/Torrent/Incomplete
중요한 설정이 남았다. 나는 퍼미션 이슈가 발생했는데, 이 방법으로 이슈를 피할 수 있었다.
sudo chown -R debian-transmission /mnt/NAS-1T-EXT4/Torrent
트랜스미션을 재시작 한다.
sudo service transmission-daemon reload
sudo service transmission-daemon restart
퍼미션 세팅을 좀 해야한다. debian-transmission을 pi그룹으로 추가하자. 퍼미션 에러를 줄이기 위한 방법이다.
sudo usermod -a -G debian-transmission pi
그룹 오너쉽을 정해주자. 유저가 아니라 그룹이다.
sudo chgrp debian-transmission /mnt/NAS-1T-EXT4/Torrent/Incomplete
sudo chgrp debian-transmission /mnt/NAS-1T-EXT4/Torrent
권한을 모든 권한을 허용하자. 사용자와 그룹이 모두 접근할 수 있다. 단 비등록 사용자(게스트)는 불가능.
sudo chmod -R 770 /mnt/NAS-1T-EXT4/Torrent
sudo chmod -R 770 /mnt/NAS-1T-EXT4/Torrent/Incomplete
트랜스미션을 정지한다.
sudo service transmission-daemon stop
세팅을 고친다.
sudo nano /etc/transmission-daemon/settings.json
이렇게 고친다. 숫자를 바꾸면 된다. 18을 2로 바꾼다. 기본값이 18인데, 원격접속한 사용자가 실행과 삭제를 하질 못한다. 2로 바꾸자. 2는 775를 의미한다.
"umask": 18
이것을
"umask": 2
으로 고친다.
그림으로 보자. 이걸 고치면 된다.
컴퓨터를 재 부팅한 뒤 다시 재시작 해 보자. (작업내용을 꼭 저장한다. 재부팅 하면 다 날라간다)
sudo reboot
sudo service transmission-daemon reload
sudo service transmission-daemon restart
퍼미션 설정은 어떻게 했는지 잘 기억이 안 나는데, 아무튼 이정도로 했더니 되더라… 이유는 나도 잘 모르겠다 ㅠㅠ 퍼미션은 항상 어렵다.
5. 수정된 설정파일 종합
설정 파일 수정에 대한 모든 정보는 여기에 있다.
https://trac.transmissionbt.com/wiki/EditConfigFiles
완성된 내 설정파일이다. 볼드된 텍스트를 수정한 것이다.
pi@sulli /mnt/NAS-1T-EXT4/Torrent/Incomplete $ sudo cat /var/lib/transmission-daemon/info/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": "/mnt/NAS-1T-EXT4/Torrent",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/mnt/NAS-1T-EXT4/Torrent/Incomplete",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"max-peers-global": 200,
"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": "비밀번호가 암호화 되어 나타날 것이다",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "pi",
"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": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}
6. 다른 컴퓨터에서 원격으로 접속해 본다.
Transmission Remote GUI 같은 앱을 써도 되지만, 크롬이나 사파리에서 웹환경으로 접속하는 것이 편하다.
주소창에 앞서 설정한 주소를 적고, 포트번호를 적으면 된다.
http://192.168.0.3:9091/
혹은
192.168.0.3:9091
으로 접속할 수 있다.
7. 모든 설정파일 삭제하기. 뭔가 잘못 되었다거나 다시 해보려면 다음과 같이 프로그램과 설정 파일을 지운다.
sudo apt-get remove --purge transmission transmission-daemon transmission-cli
끝
참고:
http://blog.spiralofhope.com/3148-transmission-on-the-raspberry-pi.html
http://cumulativeparadigms.wordpress.com/2012/08/13/tutorial-1-setting-up-rpi-as-a-torrent-server/
http://blog.shvetsov.com/2010/09/automatically-update-transmission-block.html
https://forum.transmissionbt.com/viewtopic.php?f=4&p=50358
퍼미션이슈:
http://raspberrypi.stackexchange.com/questions/4378/transmission-permission-denied-on-usb-disk
https://forum.transmissionbt.com/viewtopic.php?f=2&t=10456
http://askubuntu.com/questions/221081/permission-denied-when-downloading-with-transmission-deamon