오늘은 이 전에 vsFTP를 이용한 외부접속하기 이후, OpenWRT에서 지원하는 Transmission에 대해 궁금해하던 중, 외국에서 쓴 글을 해석해가며 직접 설치 후 사용한 방법이다. 쉽게 말해서 외부에서 토렌트 받기라고 하겠다.


먼저, 내가 쓴 [미라우터 미니]vsFTPd를 이용한 외부접속하기

http://reviewrc.tistory.com/3

가 설치됐다는 전제하에 진행한다.


말씀드렸다시피 혹시나 라우터가 벽돌될 수도 있으니, 조심하여 다뤄야하고, 책임은 본인에게 있다는 점!

그리고 마지막으로 https://www.wanghailin.cn/xiaomi-router-mini-transmission/ 에서 참고하면 될 듯 하다.


1. 앞에서의 글과 동일하게 Putty 로그인 후 진행한다.


*여기부터는 제목이 명령어이므로, 그대로 쳐주거나 붙여넣기(Shift+Insert) 해주면 된다는 점!


2. opkg update

 앞에서 진행했으면 크게 관계는 없으나 그래도 혹시 모르니 업데이트를 진행을 해야 함.


3. cd tmp/


4. wget http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base/libc_0.9.33.2-1_ramips_24kec.ipk


5. opkg -d usb install libc_0.9.33.2-1_ramips_24kec.ipk


6. opkg -d usb install libcurl libevent2 libopenssl libpthread librt


7. cd /root/


8. opkg -d usb install transmission-daemon


9. opkg -d usb install transmission-web

이제 Transmission이라는 일종의 어플이 공유기 내에 설치가 되었음.

그래도 이정도면 거의 따라 왔으니 힘내길 바란다! 뚬취 뚜둠취


10. export TRANSMISSION_WEB_HOME=/extdisks/sda1/x/usr/share/transmission/web/


11. /extdisks/sda1/x/usr/bin/transmission-daemon -g /extdisks/sda1/x/transmission-daemon

이제 Transmission이 구동이 시작된 것이다.


12. vi /extdisks/sda1/x/transmission-daemon/settings.json

이번에도 vi 에디터. 아래 써있는 항목들에 대해서 그대로 수정해주면 된다.


"Download-dir": "/extdisks/sda1/Downloads"      <--- 토렌트 다운로드 받기 원하는 폴더

"Rpc-port": 9876

"Rpc-whitelist-enabled": false


만약에 아이디와 패스워드를 사용하길 원하면, 아래 3줄을 추가해 주거나 수정해주면 들어간다.

"Rpc-authentication-required": true

"Rpc-password": "Password"    <--- Transmission을 로그인 하기 위한 패스워드

"Rpc-username": "User Name"    <--- Transmission을 로그인 하기 위한 아이디


13. killall -HUP transmission-daemon


14. vi /etc/config/firewall

이제 동일하게 방화벽을 없애줘야 외부에서 Transmission 이용이 가능하다.

아래 내용을 맨 아래쪽에 붙여넣어 주면 된다.

rule config 'transmission_web' 

Option-the src 'WAN' 

Option-dest_port '9876' 

Option-proto 'TCP' 

Option-target The 'ACCEPT' 

Option-name 'Transmission MGMT from WAN'


rule config 'transmission_peer_tcp' 

Option-the src 'WAN' 

Option-dest_port '51413' 

Option-proto 'TCP' 

Option-target The 'ACCEPT' 

Option-name 'Transmission incoming TCP'


rule config 'transmission_peer_udp' 

Option-the src 'WAN' 

Option-dest_port '51413' 

Option-proto 'UDP' 

Option-target The 'ACCEPT' 

Option-name 'Transmission incoming UDP'


15. /etc/init.d/firewall restart

이제 방화벽을 재시작하면 외부에서도 접속이 가능해 진다.

이예~~~~


-----------------------------------------------------------------------------------------------


자, 이렇게 해놓으면 어떻게 사용하면 될까?

일단 내부아이피로 들어가보자.

크롬이나 익스를 여시고 192.168.31.1:9876을 쳐보면



이렇게 창이 생기고, 아까 설정한 아이디와 비번을 치게 되면


위와 같은 화면이 나오게 된다. 그럼 그대로 토렌트 열어서 연결만 해주면 알아서 다운로드 하게 된다.

원래 Miwifi 어플이나 컴퓨터 실행 유틸리티가 마그넷으로 밖에 안됐던 반면에 토렌트 파일만 밀어넣게 되면 바로바로 다운로드 받게 되니 엄청 편리한 토렌트 생활을 즐길 수 있다.

그리고 속도는 안나올 때도 있지만, 높게는 5MB/S 정도 나오는 것 같음.(물론 환경따라 다를 수 있습니다.)

또한, Miwifi 어플에서는 시드나 피어가 많이 없는 경우 실패라고 뜨고 종료되는 경우도 있는데 Transmission에서는 그런 현상은 전혀 없다는 점도 하나의 메리트라 할 수 있다.

옛다 꿀팁!


그리고 외부에서 접속할 때도 동일하다.

저번에 진행할때 외부아이피 적어놓은 것이 있을 것이다. 그 아이피에 :9876만 붙여주면 외부에서도 그대로 접속할 수 있다.

예를 들어 http://111.111.111.111:9876으로 접속하여 동일하게 아이디 패스워드 넣어주면 바로 사용 할 수 있다.


그리고 스마트폰 앱으로도 사용가능하다!

구글마켓에서 Transmission을 검색하면, 


여기서 2번째와 3번째 앱 중에 아무거나 가능하지만, 3번째 앱으로 추천한다.(2번째 앱은 뭔가 복잡하더라.)

설치하고 실행하게 되면, 아이디 패스워드, 아이피 포트를 치라고 나오는데, 위에서 배운 그대로 쳐주면


위와 같은 화면이 맞이하게 된다. 그럼 이제 어플도 사용할 준비가 된 것이다.!!

그리고 웹에서 토렌트를 받아서 실행시에 아래와 같이 실행할 어플을 선택하라고 나오는데, 여기서 받아보신 트랜스미션앱을 선택해주시면 자동으로 들어가게 된다.



그럼 이제 자동으로 다운로드하게 된다.


요렇게 말이지.

참쉽쟈잉?


여기까지이다. 이렇게 구축을 해놓게 되면,

회사에서 근무하다가, 또는 밖에서 놀다가  뭔가 보고싶은 게 생긴다면 토렌트를 원격으로 집에다가 받아놓고, 집에 오자마자 볼 수가 있다. 그것도 miwifi 어플보다 상당히 빠른 속도로 가능하다.

다만 부작용은 있다. 현재 필자는 집에서 미박스3를 사용중인데, 미박스로 영상을 보면서 트랜스미션으로 토렌트를 받게되면 하드사용량이 많은지 영상이 뚝뚝 끊기는 현상이 생긴다.(다른 콘솔박스도 그런지는 모르겠다.)


될 수 있으면 외부에서 받은 후에 집에서 시청하실 때는 이용안하는 게 바람직해 보인다.

이 과정도 내가 전문가가 아니기 때문에 많은 시행착오를 겪으며 실행해 보았고, 아마 그대로만 따라하면 문제 없이 작동 될 것이라고 생각한다.

혹여나 틀린 점이나 부족한 점은 댓글 달아주면 바로바로 피드백하도록 해주겠음 흣.


이상 여러분의 관심을 먹고사는 관심병자 알C 였다 뾰로롱

티스토리 첫 포스팅은 vsFTPd를 이용하여 외부접속하기 이다.

이게 무슨 말인가 하면, 샤오미에서 나온 공유기나 라우터는 NAS같이 활용하지 못하는 이유가 외부 접속이 안된다는 단점이 있기 때문인데 이에 대한 해결책이 있어 포스팅하려 한다.

나도 전혀 Putty나 OpenWRT에 대한 지식, 리눅스에 대한 지식이 전혀 없어 OpenWRT를 깔았다가 CCTV 실시간 녹화 불가, 미라우터 어플 사용 불가인 걸 확인하고, 초기화 모두 시킨 후에 샤오미스토리카페의 추노님이 올려주신 vsFTPd에 대한 글을 보다가 미니라우터에는 혹시 가능하지 않을까라는 생각에 찾아보다가 결국 성공하고 이 글을 올린다.

혹시나 라우터가 벽돌될 수도 있으니, 조심하여 다뤄야 하고, 책임은 본인에게 있다.

외부 접속속도는 대략 다운로드/업로드 1MB/s 정도 나오는 듯 하니 너무 큰 기대는 말고, 다만 스트리밍 하는데 크게 지장은 없는 것으로 보인다

마지막으로 http://www.miui.com/thread-2205749-1-1.html 에서 참고하였다.


1. miwifi 홈에서 개발자 버전 다운로드

http://www1.miwifi.com/miwifi_download.html 들어가셔 ROM에서 미라우터 미니 개발자버전을 다운받아준다.


2. 다운받은 롬으로 수동으로 업데이트

여기를 누르고 아까 받았던 롬파일을 업데이트 해주면 자동으로 업데이트 후에 재부팅이 된다.


3. Openssh 다운로드

http://www1.miwifi.com/miwifi_open.html 들어가셔서 아래쪽으로 내려보면


누른 다음 Mi 계정으로 로그인 해주면 이런 화면이 나온다.


여기서 1번은 다른 곳에 꼭 적어놓은 다음(나중에 패스워드로 사용)

2번을 눌러 다운로드 해준다. 2번 눌러서 뜨는 창에서는 2개 버튼 중 오른쪽 누르셔서 다운로드 받아주면 된다.


4. 방금 받은 Openssh 파일을 4GB 이상의 FAT32로 포맷된 USB에 넣은 다음, 일단 공유기 전원을 뺀다.

 1) USB를 공유기에 꽂는다.

 2) 바늘이나 핸드폰 유심칩 빼는 핀으로 리셋버튼을 눌러주신 상태에서 공유기 전원을 꽂아준다.

 3) 주황색 불이 반짝반짝하면 리셋버튼에서 핀을 떼주면 된다.

 4) 전원이 켜지고 파란불이 들어오면 완성!

 5) 그리고 USB를 빼고 원래 연결해서 쓰던 외장하드나 USB를 연결해준다.


5. 다 끝난 줄 알았나..? 안타깝게도 이제부터 시작이다.

https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe 에서 Putty라는 프로그램을 다운로드 받아주고, 실행!


위와 같이 셋팅해주고, 엔터를 누르게 되면 ID와 비번을 입력하라고 나오게 된다.

ID는 root이고, 비번은 아까 SSH에서 적어놓으라고 했던 그 글자를 비번으로 입력해주면 된다.

참고로 비번입력할 때 커서가 움직이지 않아도 입력이 되니 신경쓰지말고 비번 입력 후 엔터!


하시면 아래와 같은 화면이 나오게 된다.


*여기부터는 제목이 명령어이다. 그대로 쳐주거나 붙여넣기(Shift+Insert) 해주면 된다.


6. df -h


*나도 지식은 없어서 잘은 모르지만 여기서 확인해야 할 것은 /dev/sda1이 있느냐를 확인하면 된다.

중간에 공유기가 어떻게 된건지 /dev/sdb1으로 인식이 되서 vsFTPd가 전혀 실행이 안된 경험이 있었는데, 이 경우에는 하드를 뺐다가 다시 꽂고, 재부팅하니 해결이 되긴 하더라 허허.


7. mkdir -m 0777 -p /extdisks/sda1/ftp


8. cp /etc/opkg.conf /etc/opkg.conf-backup


9. vi /etc/opkg.conf

이제부터 vi편집기를 사용하게 되는데 계속 나오게 되니깐 단축키 몇가지만 알고 가자.

i 버튼 = 편집하기

ESC = 명령화면으로 돌아가기

:wq = 저장하고 종료하기

dd = 줄 지우기

예를 들어서 처음 vi에 들어가서 글을 쓰려고 하면 안써진다. 이럴 때는 i 버튼을 누르면 글을 쓸 수 있게 된다.

그리고 종료할 때는 ESC버튼 -> :wq -> 엔터! 치면 자동으로 저장, 종료된다.


위에 명령어를 눌러서 vi에디터를 들어가게 되면 길게 써있는게 보일텐데, 모두 지워주고 (dd활용)


src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base

src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/luci

src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/packages

src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/routing

src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/telephony

src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/management

src/gz barrier_breaker_oldpackages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/oldpackages

dest root /extdisks/sda1/x

dest ram /tmp

lists_dir ext /extdisks/sda1/x/opkg-lists

option overlay_root /extdisks/sda1/x

dest usb /extdisks/sda1/x


위의 글을 그대로 붙여넣어 준다.(Shift+Insert)

이렇게! 그다음 ESC -> :wq -> 엔터! 쳐서 종료해준다.


10. opkg update

쳐주시면 이것저것 툴들을 다운로드 받는 듯 하다.


11. cd /extdisks/sda1/x/


12. wget http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base/libc_0.9.33.2-1_ramips_24kec.ipk


13. opkg -d usb install libc_0.9.33.2-1_ramips_24kec.ipk


14. opkg -d usb install vsftpd


15. vi /extdisks/sda1/x/etc/init.d/vsftpd

vi 에디터가 또 나왔다. 그럼 아래와 동일하게 맞춰주면 끝!


#!/bin/sh /etc/rc.common

# Copyright (C) 2006-2011 OpenWrt.org


START=50


start() {

        mkdir -m 0755 -p /var/run/vsftpd

        service_start /extdisks/sda1/x/usr/sbin/vsftpd

}


stop() {

        service_stop /extdisks/sda1/x/usr/sbin/vsftpd

}


그리고 동일하게 ESC -> :wq -> 엔터! (이제 얘기안해도 알겠지?)


16. vi /etc/vsftpd.conf

들어가면 아마도 아무것도 나와있지 않을거다. 거기다가 동일하게 아래 내용을 붙여주면 된다.


background=YES

listen=YES

listen_port=21

anonymous_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

idle_session_timeout=300

max_clients=5

max_per_ip=5

local_enable=YES

write_enable=YES

local_umask=022

check_shell=NO

anon_root=/extdisks/sda1/

local_root=/extdisks/sda1/

ftp_username=nobody

#dirmessage_enable=YES

#ftpd_banner=Welcome to blah FTP service.

session_support=NO

#syslog_enable=YES

#userlist_enable=YES

#userlist_deny=NO

#userlist_file=/extdisks/sda1/x/etc/vsftpd.users

#xferlog_enable=YES

#xferlog_file=/var/log/vsftpd.log

#xferlog_std_format=YES

chown_uploads=YES

chown_username=root


MIUI 포럼에서 원작자는 간소화버젼과 전문가버젼을 올려줬는데, 나는 잘 모르기 떄문에 위의 간소화 버전을 사용했다.

만약 전문가버젼을 이용하려면 


background=YES

listen_port=21

anonymous_enable=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

idle_session_timeout=300

max_clients=5

max_per_ip=5

local_enable=YES

write_enable=YES

file_open_mode=0777

local_umask=022

check_shell=NO

anon_root=/extdisks/sdax/x/

local_root=/extdisks/sdax/x/

chown_uploads=YES

chown_username=ftp

ftp_username=ftp

#dirmessage_enable=YES

#ftpd_banner=Welcome to blah FTP service.

session_support=NO

#syslog_enable=YES

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list1

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/user_list2

#xferlog_enable=YES

#xferlog_file=/var/log/vsftpd.log

#xferlog_std_format=YES

allow_writeable_chroot=YES


이렇게 나와있으나 이 부분은 내가 사용해 본 건 아니기 때문에 책임은 못 진다.

아무튼 둘 중 한개만 적용해주시면 된다.


그럼 이제 다 됐다. 동일하게 저장하고 종료해주면 끝.


17. /extdisks/sda1/x/etc/init.d/vsftpd start

vsFTPd를 실행. 이제부터 FTP접속이 가능하게 된다.

내 컴퓨터에 들어가서 ftp://192.168.31.1을 누르면 FTP에 접속이 되는 것을 확인할 수 있다.

아이디는 Putty와 동일하게 root, 비번도 Putty와 동일하게 SSH에서 받은 번호이다.


요로코롬!


자, 하지만 외부에서 접속이 안된다 허허. 방화벽으로 막혀있기 때문이지.

이제 외부에서 접속 가능한 상태로 만들어보겠다.


18. vi /etc/init.d/usb_deploy_init_script.sh

여기 있는 내용 중에 


rm -rf /tmp/xiaomi_router

mkdir -p /tmp/xiaomi_router


비슷한 내용이 있다면 위와 같이 바꿔주고, 만약 없다면 그대로 추가하면 되겠다.

동일하게 저장하고 종료!


19. /extdisks/sda1/x/etc/init.d/vsftpd start


20. vi /etc/config/firewall

실행해서 맨아랫줄에(맨 윗줄도 관계는 없다고 하는데 나는 맨 아랫줄에 추가했다.)그대로 붙여넣어준다.


config rule

         option name 'ftp'

         option src 'wan'

         option prot 'tcp'

         option dest_port '21'

         option target 'ACCEPT'

         option family'ipv4'


그리고 동일하게 저장하고 종료!


21. /etc/init.d/firewall restart

이제 다 끝났다. 방화벽이 재시작 되는 명령어이고,

이제부터는 외부 접속이 가능하다. 한번 확인해볼까?

가장 쉬운 방법은 네이버에 '내 아이피'라고 검색해보면


이렇게 나오게 되는데 저 주소가 바로 우리가 접속할 주소이다.

그럼 내 컴퓨터를 키고, 예를 들어 ftp://123.456.789.101을 치게 되면


내부아이피로 접속했을 때와 똑같은 화면을 볼 수가 있다! 참 쉽지?


그럼 이것을 어떻게 활용하느냐! 나는 가장 많이 활용할 수 있는 여지는 ES파일탐색기인 것 같다.

ES파일탐색기에 접속해서 FTP에 들어간 다음,


버튼을 눌러준 다음 FTP를 선택해주면 뭐시기뭐시기한 창이 뜨게 된다.

그럼 여기서


위와 같이 아까 네이버에서 검색한 내 외부아이피, 예를들어 123.456.789.010/extdisks/sda1을 입력하고,

아이디에는 root, 패스워드에는 ssh에서 받은 넘버를 입력하고 확인을 누르시면 아이콘이 생기게 되는데, 거기로 들어가면


요로코롬 뜨게 된다는 사실! 그럼 여기서 영화도 보고 사진도 보고 외부에서도 자유롭게 열람이 가능한 것이다!


하지만 문제가 있었다지.. 쉣

다운로드 속도가 8KB/S가... 허허.. 어찌나 허무하던지

진짜 마지막!! 마지막으로 셋팅해야 할 것이 하나 있었다.

고것은 고것은!!

이게 뭔고 하니, 샤오미 라우터 어플에 들어가면 전송량 조절, 

또는 Manage Bandwidth라는 메뉴탭이 있는데 다른 부분은 신경쓰지 말고, 맨 위에 버튼 ON!, 

그리고 Settings에는 Automatically로 설정해주면 1.0MB/s정도의 속도로 스트리밍이나 다운로드 등을 할 수 있는 것이다.


이유는 필자도 잘 모르겠다....

이상!! [미라우터 미니] vsFTPd를 이용한 외부접속하기였다.

아무래도 필자도 전문지식이 있진 않다보니 설명도 많이 부족하고, 시행착오도 굉장히 많이 겪은 후에 쓰는 글이다.

그래도, 이 글로서 많은 분들이 도움 받으셨으면 하는 바람이 있다.


혹여나 틀린 점이나 부족한 점은 댓글 달아주시면 바로바로 피드백하도록 하겠다.


이상 여러분의 하트와 댓글은 관심병자 알C에게 필수인 거 알지? 흐헿



+ Recent posts