小米路由硬盤版搭建ftp服務和博客

想入手NAS很久了,元旦時看了看羣暉,還是一如既往的貴。想想還是覺得腎疼,還是想辦法把家裏的小米路由器折騰折騰,之前買了個硬盤版本(1T硬盤)。所以決定先獲取一下路由器的高級管理權限。

對了,我的路由器長這個樣子:
在這裏插入圖片描述

公網訪問效果

小米路由安裝好frp之後,配置相應的端口映射,就可以外網訪問了。

FTP服務測試

使用FileZilla的被動模式進行測試:

在這裏插入圖片描述
iPhone上也能訪問,槓槓的:

在這裏插入圖片描述

博客效果測試

外網實測,可以登錄admin賬號來創建文章:

在這裏插入圖片描述


在開始配置之前,首先獲取路由器的高級管理權限:

開啓SSH工具

登錄如下地址,下載開啓SSH工具需要的bin文件。
http://d.miwifi.com/rom/ssh

工具包使用方法:
請將下載的工具包bin文件複製到U盤(FAT/FAT32格式)的根目錄下,保證文件名爲miwifi_ssh.bin;
斷開小米路由器的電源,將U盤插入USB接口;
按住reset按鈕之後重新接入電源,指示燈變爲黃色閃爍狀態即可鬆開reset鍵;
等待3-5秒後安裝完成之後,小米路由器會自動重啓,等待片刻之後就可以登錄了)

# ssh [email protected]
 -----------------------------------------------------
       Welcome to XiaoQiang!
 -----------------------------------------------------
  $$$$$$\  $$$$$$$\  $$$$$$$$\      $$\      $$\        $$$$$$\  $$\   $$\
 $$  __$$\ $$  __$$\ $$  _____|     $$ |     $$ |      $$  __$$\ $$ | $$  |
 $$ /  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ /  $$ |$$ |$$  /
 $$$$$$$$ |$$$$$$$  |$$$$$\         $$ |     $$ |      $$ |  $$ |$$$$$  /
 $$  __$$ |$$  __$$< $$  __|        $$ |     $$ |      $$ |  $$ |$$  $$<
 $$ |  $$ |$$ |  $$ |$$ |           $$ |     $$ |      $$ |  $$ |$$ |\$$\
 $$ |  $$ |$$ |  $$ |$$$$$$$$\       $$$$$$$$$  |       $$$$$$  |$$ | \$$\
 \__|  \__|\__|  \__|\________|      \_________/        \______/ \__|  \__|


root@XiaoQiang:~# 

下載frp對應版本:https://github.com/fatedier/frp/releases/tag/v0.24.1

因爲我硬盤上有數據,官方也有說明刷開發版本會清空硬盤數據。
下載小米路由各個版本ROM地址如下:
http://miwifi.com/miwifi_download.html

安裝Vsftpd

下載小米路由器VSFTP安裝工具 綠色版:http://www.downza.cn/soft/269898.html

在這裏插入圖片描述

注:此工具要求路由器網關IP爲192.168.31.1。

登錄路由管理後臺,進入”常用設置“->“局域網設置”->"設置局域網IP地址"爲 192.168.31.1,否則會安裝失敗。

如上步驟操作完畢之後,局域網就可以訪問了。

打通ftp公網訪問

內網穿透

如果自己有購買雲主機的話,藉助frp的內網穿透能力,可以將路由器的端口映射到公網上去。操作看官方文檔介紹:https://github.com/fatedier/frp

https://github.com/fatedier/frp

先在雲主機上搭建frps服務端,然後在本地配置端口映射。當然雲主機上安全組上將對應的端口都放開。

查看小米路由的CPU:

root@XiaoQiang:~# cat /proc/cpuinfo 
Processor	: ARMv7 Processor rev 0 (v7l)
...

下載找到對應的frp版本到路由器上:

https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_arm.tar.gz

解壓後修改配置文件:

root@XiaoQiang:~# vim /usr/local/frp_0.24.1_linux_arm/frpc.ini 
[common]
server_addr = **.**.**.** # 此處填寫雲主機IP,或者關聯到主機的域名
server_port = 7000

### SMB使用137、138 udp端口,139,445 tcp端口,感興趣的可以配置

[MI-Route-llmp-8095] # 自定義llmp端口爲8095(經測試,默認的8080無法使用,重啓防火牆時發現8080被其他功能使用了,沒有具體再追下去分析。防火牆開通端口例外,見後面防火牆部分說明)
type = tcp
local_ip = 127.0.0.1
local_port = 8095
remote_port = 22026

[MI-Route-ftp-21]
type = tcp
local_ip = 127.0.0.1
local_port = 21
remote_port = 10021

[range:Mi-Route-ftp-30000-30005] # 公網訪問需要設置vsftp的passive port區間,映射之後,公網就可以訪問了。
type = tcp
local_ip = 127.0.0.1
local_port = 30000-30005
remote_port = 30000-30005

啓動frp客戶端:

root@XiaoQiang:/usr/local/frp_0.24.1_linux_arm# ./frpc -c ./frpc.ini 

# 編寫後臺啓動腳本
# cat /usr/local/frp_0.24.1_linux_arm/start.sh
nohup /usr/local/frp_0.24.1_linux_arm/frpc -c /usr/local/frp_0.24.1_linux_arm/frpc.ini &

# 配置開機啓動腳本
## 添加開機啓動 putty或winscp修改/etc/rc.local文件,在exit 0之前添加一行
cat /etc/rc.local 
# 加入啓動命令
/usr/local/frp_0.24.1_linux_arm/start.sh

題外話:

藉助小米路由的端口轉發功能,也可以通過公網訪問內網PC的一些服務。

以常見的情況爲例,買個最低配置的ECS linux版本雲主機,本地搭建Tomat服務,再買個域名。就可以低成本發佈自己開發的一些Demo項目哈。

最近有面試一些同學,都說有做過一些項目,但是如果能把自己平時學習時的一些東西展示出來。效果會更好一些。

配置ftp被動模式,以便公網訪問

如果要公網訪問,則可以配置被動模式,關於被動模式的一些資料,可以見我之前的一篇文章《FTP客戶端對接開發旅記》:

https://mp.weixin.qq.com/s/Gs5vBTZu0e3xGGXqEoATVg

修改vsftp配置文件,開啓被動訪問模式

# vim /etc/vsftpd.conf
# Add by bianxh:20200105
#guest_enable=YES
#guest_username=bianxh
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30005

小米路由搭建簡易博客

安裝llmp

參考:http://www.miui.com/thread-1842334-1-1.html

安裝llmp到小米路由的硬盤上:

chmod +x /userdisk/data/download/llmp_install.bin&&/userdisk/data/download/llmp_install.bin in

修改默認端口:

# vi /userdisk/llmp/etc/lighttpd/lighttpd.conf

## bind to port (default: 80)                                                
#server.port = 8080                                                          
server.port=8095 

重啓llmp服務:

# sh /userdisk/llmp/manager/start_llmp.sh

添加防火牆例外:

# vim /etc/config/firewall 

config rule                                 
        option name 'Allow-bianxh-Config'             
        option src 'wan'                    
        option dest_port '139 445 8080 8095'
        option proto 'tcp'                             
        option family 'ipv4'                             
        option target 'ACCEPT'  
# /etc/init.d/firewall restart # 重啓防火牆

如果需要修復:SSH到路由器22端口,執行sh /userdisk/llmp/manager/llmp_fix.sh

本地訪問:

在這裏插入圖片描述

公網訪問:

在這裏插入圖片描述

修改mysql密碼

1.網站目錄在小米路由器硬盤的根目錄下的wwwroot文件夾

2.默認數據庫用戶名 root,密碼 admin

3.系統運行於沙盒系統中,沙盒SSH端口爲3333,用戶有root、www、admin,密碼默認都爲admin

4.修改數據庫密碼,newpasswd爲新密碼,請自行替換mysqladmin -u root -p password newpasswd
執行命令後要求輸入舊密碼(admin)即可。

登錄小米路由器(默認密碼admin):

ssh -p 3333 [email protected]
## 修改MySQL數據庫密碼
~ # mysqladmin -u root -p password newpasswd
## 創建blog數據庫,blog是創建的數據庫名稱,請自行替換。要求輸入密碼,請輸入修改之後的密碼
mysqladmin -u root -p create blog

安裝typecho

http://typecho.org/

下載後解壓到 /userdisk/data/wwwroot,

效果圖如下:

在這裏插入圖片描述

下一步配置一些參數:

數據庫適配器: MySQL原生函數適配器
數據庫地址: localhost
數據庫端口: 3306
數據庫用戶名: root
數據庫密碼: admin
數據庫名: blog
數據庫前綴: typecho_

創建您的管理員帳號
網站地址:http://192.168.31.1:8095
用戶名:admin
登錄密碼:admin

配置成功截圖:

在這裏插入圖片描述

只能訪問主頁,f12可以看出是端口的原因。https://segmentfault.com/q/1010000008401554
修改/userdisk/data/wwwroot/var/Typecho/Request.php文件218行開始

public static function getUrlPrefix()
    {
        if (empty(self::$_urlPrefix)) {
            self::$_urlPrefix = (self::isSecure() ? 'https' : 'http') 
                . '://' . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'])
               // . (in_array($_SERVER['SERVER_PORT'], array(80, 443)) ? '' : ':' . $_SERVER['SERVER_PORT']);
                ;
        }

        return self::$_urlPrefix;
    }

參考文檔:https://sixu.life/xiaomi-router-r2d-llmp-typecho.html/comment-page-1

其他收穫

一些命令

查看3306端口占用:

netstat -anp |grep 3306

查看進程佔用什麼端口:

netstat -nap | grep 進程pid

OpenWrt軟件源

執行如下安裝命令不生效,於是尋找軟件包源:

opkg update
opkg install vsftpd

軟件包安裝源:

root@XiaoQiang:/usr/local# cat /etc/opkg.conf 
src/gz attitude_adjustment http://downloads.openwrt.org/attitude_adjustment/12.09/brcm4709/R2D/packages

# 下面是尋找的3個其他源,經測試也失敗。
src/gz chaos_calmer_base http://downloads.openwrt.org/chaos_calmer/15.05/bcm53xx/generic/packages/base
src/gz chaos_calmer_packages http://downloads.openwrt.org/chaos_calmer/15.05/bcm53xx/generic/packages/packages
src/gz attitude_adjustment http://downloads.openwrt.org/attitude_adjustment/12.09/brcm47xx/generic/packages

防火牆設置

修改規則配置,放開部分端口

# vim /etc/config/firewall
添加內容:
config rule                          
        option name 'Allow-bianxh-Config'
        option src 'wan'                                   
        option dest_port '139 445 8080 8095' ## 自定義一些例外端口
        option proto 'tcp'                  
        option family 'ipv4'                 
        option target 'ACCEPT' 

讓規則生效:

# /etc/init.d/firewall restart

疑問

SMB共享失敗

小米路由smb配置文件如下,但是經測試,這個文件每次修改後,重啓路由後會恢復。smb使用139和445端口,但是這個端口通過frp映射出去後,始終無法訪問。

root@XiaoQiang:~# cat /etc/samba/smb.conf

異地訪問測試總是會被拒絕,防火牆已經配置過了:

$ smbclient -p 22022 //test.bianxh.top/XiaoMi
Unable to initialize messaging context
protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED

工具包下載

本文涉及的所有工具包下載:

鏈接:https://pan.baidu.com/s/115ZQwKEvJvgCZHsTytR0BA
提取碼:adtw

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章