티스토리 첫 포스팅은 vsFTPd를 이용하여 외부접속하기 이다.
이게 무슨 말인가 하면, 샤오미에서 나온 공유기나 라우터는 NAS같이 활용하지 못하는 이유가 외부 접속이 안된다는 단점이 있기 때문인데 이에 대한 해결책이 있어 포스팅하려 한다.
나도 전혀 Putty나 OpenWRT에 대한 지식, 리눅스에 대한 지식이 전혀 없어 OpenWRT를 깔았다가 CCTV 실시간 녹화 불가, 미라우터 어플 사용 불가인 걸 확인하고, 초기화 모두 시킨 후에 샤오미스토리카페의 추노님이 올려주신 vsFTPd에 대한 글을 보다가 미니라우터에는 혹시 가능하지 않을까라는 생각에 찾아보다가 결국 성공하고 이 글을 올린다.
혹시나 라우터가 벽돌될 수도 있으니, 조심하여 다뤄야 하고, 책임은 본인에게 있다.
외부 접속속도는 대략 다운로드/업로드 1MB/s 정도 나오는 듯 하니 너무 큰 기대는 말고, 다만 스트리밍 하는데 크게 지장은 없는 것으로 보인다
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에게 필수인 거 알지? 흐헿