给小米路由R1D增加WebDAV服务
我的R1D是14年买的,原装的硬盘已经不能用了,换了一块从笔记本上退役下来的500G硬盘后继续愉快的使用了……
当初买这款路由器的原因之一是看中了它的内置硬盘,可以用来备份手机相册、存储智能摄像机录像、迅雷下载等轻NAS的功能。以前一直是在手机上用小米WiFi查看路由器中的硬盘资料,最近在外面用APP下载文件总是失败,可能是小米的中转服务器不给流量了,总之是不好用了,就想着自己可不可以搭建一个文件管理服务,可以在外网上传下载甚至直接看硬盘存放的视频。
一、安装配置Caddy
之前在Padavan固件中用过“文件管理”的功能,是通过Caddy来部署的,感觉挺好用的,那就在R1D上也部署一下吧~
首先开启SSH,去官网http://d.miwifi.com/rom/ssh按照教程操作就可以了
1.查看CPU信息
SSH登陆R1D,查一下CPU信息
cat /proc/cpuinfo

或者用以下命令查看系统架构
uname -a

查到是armv7处理器架构
可能是由于小米路由器内核的原因,使用Caddy官网“Linux arm 7”平台的二进制文件有问题,经测试“Linux arm 5”的二进制文件可以正常运行
2.下载包含WebDAV插件的Caddy
那么我们就到Caddy官网下载包含WebDAV插件的二进制单文件,打开https://caddyserver.com/download,“Platform: ”选“Linux arm 5”,在下面找到包含WebDAV插件的PACKAGE勾选,再点击右上角的“Download”

下载得到一个名为“caddy_linux_arm5_custom”的文件
3.部署配置Caddy
在R1D中新建一个目录
mkdir /userdisk/caddy
使用WinSCP的上传功能或SecureCRT的rz命令将此文件上传至“/userdisk/caddy”目录中
修改caddy_linux_arm5_custom名称为caddy
cd /userdisk/caddy
mv caddy_linux_arm5_custom caddy
增加执行权限
chmod +x caddy
生成密码(此处设置一个123456的密码)
./caddy hash-password --plaintext 123456
JDJhJDE0JFhpQlFyTmJ5bGxwNDRsOExZQmZvVk9yWVFDTi9GclFoRjZ0bnZ3aTNZZXpiYzNkdThub25p
复制上面得到的一长串加密密码备用
在当前目录(/userdisk/caddy)创建一个名为Caddyfile的配置文件
vim Caddyfile
添加以下内容
# 此处以开放5005端口为例,可以自行修改
:5005 {
# 设置/userdisk/data为可以被访问的目录
root * /userdisk/data
encode gzip
# 设置用户名为username,密码为123456(将上面生成的长串密码粘贴到用户名后面)
basicauth {
username JDJhJDE0JFhpQlFyTmJ5bGxwNDRsOExZQmZvVk9yWVFDTi9GclFoRjZ0bnZ3aTNZZXpiYzNkdThub25p
}
route {
rewrite /webdav /webdav/
webdav /webdav/* {
# 使用WebDAV访问路径的前缀
prefix /webdav
}
# http文件服务,可以在浏览器中查看下载文件
file_server browse
}
}
保存退出
4.前台启动Caddy
在当前目录尝试启动
./caddy run --config Caddyfile
5.内网访问http文件服务和WebDAV
(1)访问http文件服务
在浏览器地址栏输入http://192.168.31.1:5005,用户名和密码为前面设置的username和123456,打开后效果如下

(2)访问WebDAV服务
Win10添加WebDAV,“映射网络驱动器”或者“添加一个网络位置”都可以,此处以“添加一个网络位置”为例。
打开“此电脑”,右键单击空白处,选择“添加一个网络位置”,点击两次“下一步”后,输入http://192.168.31.1:5005/webdav

点击“下一步”,输入之前用户名和密码后再“下一步”后点击“完成”,这样就可以在“Windows资源管理器”中访问R1D硬盘文件了。
6.后台启动Caddy
没有问题的话可以后台启动caddy服务
nohup ./caddy run --config Caddyfile > /dev/null 2>&1 &
查看caddy服务进程
ps | grep caddy
5783 root 2612 S grep caddy
19566 root 806m S ./caddy run --config Caddyfile
7.配置开机启动Caddy
把WebDAV服务配置为开机后台启动
vim /etc/rc.local
在exit 0上面添加以下内容:
cd /userdisk/caddy
nohup ./caddy run --config Caddyfile > /dev/null 2>&1 &
这样WebDAV的服务已经部署好了,重启路由器后也会自己启动。
二、使R1D中的文件能够在外网访问
但是我们为了方便不在家的时候访问,需要开启对应的外网端口,而且路由的IP地址在重新拨号后会变化,还要配置动态域名服务。
1.R1D获取公网IPv6地址
我家用的是移动大内网宽带,没有公网IPv4地址,好在现在可以获取到IPv6地址(前提是在光猫中设置好支持IPv6),那就可以使用支持IPv6的DDNS来解析了。
R1D默认是不支持IPv6的,下面我们来修改配置使其可以获取到IPv6地址(此处以光猫桥接模式,R1D拨号为例),还是在SSH中操作
vim /etc/config/ipv6
修改为以下内容:
config ipv6 'settings'
list if_on 'wan'
option enabled '1'
list if_on 'ipv6'
option enabled '1'
保存退出
重新拨号后应该就可以获取到IPv6地址了(下图中2409开头就是公网IPv6地址)

我们使用br-lan这个网络接口的IPv6地址

2.配置动态域名服务
到http://www.meibu.com/这个网站注册申请一个域名(如:xxxxxx.noip.cn)
SSH中新建一个目录
mkdir /userdisk/meibu_ddns
下载文件meibu_ddns.sh
将第35行中xxxxxx.noip.cn和123456改为你自己申请的域名和密码

将修改后的脚本上传到/userdisk/meibu_ddns目录中
增加脚本执行权限
cd /userdisk/meibu_ddns
chmod +x meibu_ddns.sh
执行脚本
./meibu_ddns.sh
在当前目录(/userdisk/meibu_ddns)会生成ip.txt文件,记录的是br-lan网络接口的IPv6地址
输入以下命令(注意将xxxxxx.noip.cn改为自己申请的域名)查看解析到的IP地址
nslookup xxxxxx.noip.cn 8.8.8.8
解析出来的地址和br-lan网络接口的IPv6地址一致则说明脚本执行成功
将此脚本添加到定时任务中
crontab -e
加入以下内容
*/1 * * * * /opt/bin/sh /userdisk/meibu_ddns/meibu_ddns.sh
保存退出
这样每隔一分钟就会执行一次脚本,查看IP地址是否变化,有变化再去更新动态域名IP地址
3.开启外网访问端口并配置开机自动开放端口
现在只剩下开启外网端口了
在终端执行
ip6tables -I INPUT -p tcp --dport 5005 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 5005 -j ACCEPT这
这样就对外网放开了IPv6的5005端口
现在配置一下开机执行上面这两条规则
vim /etc/rc.local
在exit 0上面添加以下内容
ip6tables -I INPUT -p tcp --dport 5005 -j ACCEPT
ip6tables -I OUTPUT -p tcp --sport 5005 -j ACCEPT这
这样就实现了开机自动开放端口
4.在外网访问R1D文件
浏览器使用域名+端口就可以登陆访问文件服务了

手机可以使用“ES文件浏览器”添加WebDAV


这样即便不在家里,只要有网络就可以用电脑或手机访问R1D的硬盘资料了。
给小米路由R1D增加WebDAV服务的更多相关文章
- 三十一、【WCF路由中间件】WCFHosting服务主机的路由器与负载均衡和实现思路
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baid ...
- webDAV服务的开启以及客户端的上传、下载、删除、新建文件夾、列表的代码(C#)
windows server 2003开启webDAV服务 1. 启动“IIS管理器”选择“WEB服务扩展”,选择“WEBDAV”的允许按钮启动WEBDAV功能 2.建立一个虚拟目录,对应到一个本地目 ...
- 【路由达人】简单两步搞定小米路由新增功能-DDNS(解析域名地址转向在线工具)
DDNS(Dynamic Domain Name Server)是动态域名服务的缩写! 简单来说目前ISP大多为我们提供动态IP(如ADSL拨号上网),而很多设备或服务需要通过远程访问时需要一个固定的 ...
- 搭建私人的云笔记_使用webdav服务
搭建私人的云笔记_使用webdav服务 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-10-10. 手机上有很多云笔记app,大多支持云存储.可是把笔记放在别人的服务器上,总觉得不 ...
- 4.前端基于react,后端基于.net core2.0的开发之路(4) 前端打包,编译,路由,模型,服务
1.简要的介绍 学习react,首先学习的就是javascript,然后ES6,接着是jsx,通常来说如果有javascript的基础,上手非常快,但是真正要搭建一个前端工程化项目,还是有很多坑的 搞 ...
- 服务端增加WCF服务全局异常处理机制
服务端增加WCF服务全局异常处理机制,任一WCF服务或接口方式出现异常,将统一调用WCF_ExceptionHandler.ProvideFault方法,因此不需要每个方法使用try catch写法. ...
- 小米路由通过SSH添加静态路由表之后无法跳转的问题
1.确定系统已经开启了转发功能: /etc/sysctl.conf下的配置项目为net.ipv4.ip_forward = 1 2.关闭防火墙的REJECT,也就是修改/etc/config/fire ...
- WebDAV服务漏洞利用工具DAVTest
WebDAV服务漏洞利用工具DAVTest WebDAV是基于Web服务的扩展服务.它允许用户像操作本地文件一样,操作服务器上的文件.借助该功能,用户很方便的在网络上存储自己的文件.为了方便用户使 ...
- 【Linux】小米路由开启SSH访问权限
一.验证小米路由ROM是否为开发版 1. 登录小米路由Web管理页面,检查ROM版本是否为开发版(若为开发版直接跳至第二步,若为稳定版继续本步骤). 2. 进入小米路由器官网(http://www1 ...
随机推荐
- CVE-2012-0003:Microsoft Windows Media Player winmm.dll MIDI 文件堆溢出漏洞调试分析
0x01 蜘蛛漏洞攻击包 前言:2012 年 2月,地下黑产中流行着一款国产名为蜘蛛漏洞的攻击包 -- "Zhi-Zhu Exploit Pack",该工具包含 5 个漏洞,都是在 ...
- [CTF]思维导向图
[CTF]思维导向图 ---------------来自大佬的CTF思维导向图 Angel_Kitty https://www.cnblogs.com/ECJTUACM-873284962/ 给信息安 ...
- 【python】Leetcode每日一题-寻找旋转排序数组中的最小元素
[python]Leetcode每日一题-寻找旋转排序数组中的最小元素 [题目描述] 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组nums ...
- 【python】Leetcode每日一题-132模式
[python]Leetcode每日一题-132模式 [题目描述] 给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j &l ...
- (一)RabbitMQ安装与基本配置
[博主使用的环境是阿里云ecs服务器,操作系统为centos] 安装erlang环境 RabbitMQ底层是Erlang语言,因此要先安装erlang环境,就像你要运行Java程序就必须先安装JRE/ ...
- checked 和 prop() (散列性比较少的)
在<input class="sex1" type="radio" checked>男 checked表示该框会被默认选上 prop()操作的是D ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十二)——istio+dapr构建多运行时服务网格
多运行时是一个非常新的概念.在 2020 年,Bilgin Ibryam 提出了 Multi-Runtime(多运行时)的理念,对基于 Sidecar 模式的各种产品形态进行了实践总结和理论升华.那到 ...
- ES6对象的新增方法的使用
Object.assign Object Object.assign(target, ...sources) 将所有可枚举属性的值从一个或多个源对象复制到目标对象 参数: target 目标对象 so ...
- ssh无法启动 (code=exited, status=255)
ssh无法启动 (code=exited, status=255) 2019年1月30日ssh 服务器运行了一些脚本后,突然发现无法ssh了. root@X61T:/home/liang# servi ...
- Windows10 添加 新的输入法
Windows10系统 控制面板 区域 语言首选项 设置 添加 陈桥输入法