라즈베리 파이로 토렌트 서버를 구성하기 위한 준비물은 일단 다음과 같다
1. 라즈베리 파이 본체 (....)
2. 여분의 하드디스크
3. 여분의 외장하드 케이스
4. 라즈베리 파이 설정을 위한 PC세트 or 모니터 + 키보드
5. 적절한 삽질 마인드와 시간 (...)
위의 준비물이 갖추어지면 이제 삽질을 시작하면 된다
우선 라즈베리 파이에 접속하기
앞으로의 설정 과정은 전부 터미널에서 이루어진다 (...)
라즈베리 파이의 터미널에 접속하려면
1. 직접 본체에 키보드, 모니터 꼽아서 터미널에 진입하거나
2. 다른 PC에서 SSH를 통해서 접속하면 된다
리눅스나 맥에서는 바로 터미널에서 ssh로 접속하면 되고 윈도우에서는 putty 라는 프로그램이 가장 낫다고 알려져 있는듯 하다
나는 전부 putty로 작업해서 이거 위주로 설명한다
우선 라즈베리 파이에 랜선, 외장하드, 전원을 연결해둔다
putty로 접속하면 다음과 같은 화면이 나온다
일단은 일반 모드이긴 한데
sudo su
명령어로 슈퍼유저 권한으로 작업하는게 편하다(...)
먼저 라즈베리 파이에 usb 외장하드를 추가한다
dmesg
란 명령어로 라즈베리 파이에서 인식하는 하드웨어 구성을 확인할 수 있다
아래 노랑 네모가 내가 꼽은 외장하드와 관련된 부분이다
하드디스크를 리눅스 파일 포맷인 ext4로 포맷하기 위해서 다음의 과정을 거친다
umount /dev/sda
mkfs.ext4 /dev/sda
여기까지하면 포맷은 완료이고 포맷된 하드디스크를 마운트 시킨다
mkdir /Tdown
mount /dev/sda /Tdown
나같은 경우는 바로 루트에 Tdown이란 디렉토리를 만들어서 여기에 하드디스크를 연결했다
df -h
명령어로 마운트된 하드디스크와 sd카드를 확인할 수 있다
그리고 재부팅하더라도 자동으로 마운트 되도록 설정한다
설정을 위해서 vi 를 사용한다
**
vi 간단 사용법
i < 편집 모드
: < 명령 모드
:q < 종료
:w < 저장
:wq < 저장후 종료
이정도만 알면 된다
ex) vi 로 파일을 연 후 i 를 누르면 -- INSERT -- 라고 편집모드로 바뀐다
수정 후 저장할 때엔 esc로 편집모드에서 나온 뒤 :wq 로 저장 후 종료
**
다시 외장하드 자동 마운트로 돌아오면
vi /etc/fstab
으로 fstab 파일에
/dev/sda /Tdown ext4 defaults 0 0
한 줄을 추가하고 저장한다
이제 토렌트 서버 구성용 유저를 추가하고, 해당 볼륨의 권한 및 소유자를 설정한다
useradd -d /Tdown [username]
## /Tdown 디렉토리를 홈으로 하는 [username] 을 생성
passwd [username]
## [username]의 패스워드 설정
chmod 777 /Tdown
## 누구나 읽고 쓰고 지울 수 있게 권한 설정
chown -R [username] /Tdown
## /Tdown 디렉토리의 소유자를 [username]로 변경
다음으로는 토렌트 서버를 위한 프로그램들을 설치하고 설정을 해줘야 한다
1. Trasnmission-daemon 설치 및 설정
apt-get install transmission-daemon
## 토렌트 클라이언트 transmission을 설치
/etc/init.d/transmission-daemon stop
## transmission 서비스 정지
vi /etc/transmission-daemon/settings.json
## 아래는 settings.json에서 수정한 부분만 적은 것이다
"download-dir": "/Tdown",
"incomplete-dir": "/Tdown",
"rpc-password": "알아서",
"rpc-port": 9001,
## (원하는 포트로)
"rpc-username": "알아서",
## transmission 웹에 접속시 필요한 이름이다
"rpc-whitelist-enabled": false,
##(true 설정 시 rpc-whitelist 의 아이피만 접속 가능)
:wq
*20131206 추가
**
settings.json에
"watch-dir": "[path]",
"watch-dir-enabled": true
를 추가해주면 path에 torrent 파일이 추가되면 자동으로 해당 파일을 다운로드한다
단 subdirectory의 파일은 감시하지 않는다
Dropbox와 연계하면 편하게 관리할 수 있다
**
/etc/init.d/transmission-daemon start
설정 후 웹브라우저로 [라즈베리 파이 아이피:설정포트 ]에 들어가서 작동하는지 확인한다
**
torrent 파일을 올리면 permission denied 에러가 나올 수도 있는데 나같은 경우는 디렉토리 지정을 잘못해서(....) 였다. 이게 아니라면 구글에서 "transmission permission denied"라고 치면 제법 포럼이 많은데 보통 다운로드 폴더와 임시 폴더에서의 권한 및 소유자 문제로 chmod랑 chown 명령어로 어느 정도 해결이 가능한듯 하다
**
일단 transmission만 설치하면 토렌트 파일을 웹으로 보내서 받는 것을 확인할 수 있다
그리고 받은 파일을 데스크탑이나 랩탑으로 옮기거나 보려면 윈도우에서 라즈베리 파이에 접속이 가능해야 한다
이를 위한 방법이 두 가지가 있는데 ftp로 접속하여 파일을 받는 것과 samba 설정을 통하여 네트워크 드라이브로 연결하는 것이다
ftp로 설정하는 경우 공유기 등에서 포트 지정을 통하여 외부에서도 파일을 받을 수 있다는 장점이 있고 samba로 설정하면 내부 네트워크에서 네트워크 드라이브로 쉽게 접근 가능하다는 장점이 있다
물론 두 개 다 설정하여 내부 네트워크에서는 samba를 이용하고 밖에서는 ftp를 이용할 수도 있다.
2-1. vsftpd 설치 및 설정
apt-get install vsftpd
vi /etc/vsftpd.conf
## 아래는 vsftpd.conf에서 수정한 부분만 적은 것이다
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
## ftp 접속시 상위 폴더로 이동하지 못하게 한다
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
## 상위 폴더로 접속하지 못하게 하는 유저 이름 목록 파일
listen_port=2121
## ftp 접속포트 변경. 포트가 다른 PC와 충돌하지 않는다면 위 설정 없이 기본 포트인 21번을 사용
:wq
vi /etc/vsftpd.chroot_list
[username]
:wq
service vsftpd restart
설정 후 ftp 프로그램내지는 웹브라우저로 접속해서 작동하는지 확인한다
2-2. samba 설치 및 설정
apt-get install samba
apt-get install samba-common-bin
smbpasswd -a [sambaname]
##삼바용 계정을 생성하고 비밀번호를 설정한다
비밀번호 설정까지 마치고
/etc/init.d/samba stop
vi /etc/samba/smb.conf
## 아래는 smb.conf에서 수정한 부분만 적은 것이다
[global]
workgroup=WORKGROUP
dos charset = CP949
display charset = UTF8
unix charset = UTF8
====== Share Definitions ===============
### Share Definitions 아래 [homes] 같은 다른 부분은 다 주석처리하고 하나만 설정하면 됨
[profiles] ##윈도우에서 표시되는 이름
comment = Ueser profiles
valid users = [sambaname]
path = /Tdown
guest ok = no
writable = yes
browseable = yes
create mask = 0777
directory mask = 0777
:wq
/etc/init.d/samba start
삼바 시작 후
testparm -s
으로 설정 확인
윈도우에서 네트워크 드라이브 연결하기
윈도우 7 기준으로 삼바를 설정하고 나면 탐색기의 네트워크 부분에 RASBERRYPI를 확인할 수 있다
접속하려면 로그인 하라고 뜨는데 '아마도' smbpasswd에서 생성한 아이디와 비밀번호로 로그인이 될것이다
난 전부다 똑같이 만들어놔서 뭘 쓰는건지는 확인이 어렵다
로그인 해서 들어가면 smb.conf에서 설정한 이름으로 된 폴더를 확인할 수 있다
네트워크 드라이브로 설정하려면 컴퓨터에서 우클릭해서 네트워크 드라이브 연결을 누르고 찾아보기 눌러서 위에서 확인한 폴더를 누르면 된다
이제 시딩 유지도 나름 전기요금 걱정을 덜고 할 수 있는 조건이 완성되었달까(...)
이외에도 모 블로그에서는 발열문제가 있어서 칩셋에 방열판을 달아두는게 낫다고도 봤었는데 진짜 얼핏 본거라 어디서 본 건지는 잘 모르겠다(...)
암튼 이걸로 5만원짜리 라즈베리 파이 + 9만원짜리 1TB하드 + 이벤트로 받은 외장하드케이스(...) 를 토렌트 서버로 사용하기 위한 모든 설정을 마쳤다
아두이노 같은걸 쓴다거나 하는 다른 사용방법도 많이 있다곤 하지만 나는 원래 의도도 이거였고 하니 토렌트머신까지가 끝일듯 싶다(...)
참고 사이트
http://www.superuser.co.kr/linux/hdd_add/hdd_add.htm
http://jekyung.com/107
http://www.superuser.co.kr/linux/rootman/vsftp/vsftp_virtualuser.html
http://www.jakeworld.net/213
http://krkim.net/83
http://blog.naver.com/PostView.nhn?blogId=hideiloveu&logNo=97736313
http://www.raspberrypi.org