小米路由硬盘版搭建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 root@192.168.31.1
 -----------------------------------------------------
       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 root@127.0.0.1
## 修改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

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
为了搭建三层网络架构的FTP服务器,首先需要确定网络拓扑结构。三层架构通常包括核心层、分布层和接入层。在这种架构下,核心层负责路由和交换功能,分布层负责连接核心层和接入层,接入层则是用户设备直接连接的层级。 在搭建FTP服务器时,可以将FTP服务器部署在接入层或者分布层。接入层部署意味着用户设备直接连接FTP服务器,而分布层部署意味着服务器与核心网络连接更紧密。 为了确保FTP服务器的高可靠性和良好的性能,可以考虑使用负载均衡和冗余设计。负载均衡可以将来自用户的请求分配到多个FTP服务器上,以提高服务器的整体性能。冗余设计可以确保即使某一台服务器出现故障,整个FTP服务也不会中断。 此外,为了加强安全性,可以在FTP服务器上部署防火墙和访问控制列表等安全措施。这样可以限制不必要的访问,并保护FTP服务器免受恶意攻击。 最后,对三层网络架构的FTP服务器进行监控和管理也非常重要。监控可以帮助及时发现和解决服务器故障和性能问题,而管理则可以保证整个系统的正常运行和良好的维护。 综上所述,搭建三层网络架构的FTP服务器需要仔细规划网络拓扑结构、加强安全性、确保高可靠性和性能,以及进行有效的监控和管理。这样才能保证FTP服务器的稳定运行和良好的用户体验。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值