远程访问路由器硬盘资源,网上的解决方案是将路由器固件root后ssh登录,打开防火墙的samba端口,这样做简单可行,但会失去保修,在质保期内暂不考虑。
这里提供一个新的方法来实现,不用root小米路由,不用那些高深的命令行,但需要一个闲置的支持华硕/Padavan固件的路由器作为二级路由。自己用的是斐讯K2。
先简单说一下原理。主路由还是小米,二级路由开启VPNserver,远程电脑穿透主路由,通过VPN连接到二级路由,获得二级路由分配的内网ip,变身内网设备,从而获得对局域网资源的完全访问能力。

下面详细说明实现步骤。
一、接入二级路由
用网线将二级路由WAN口接入主路由LAN口,开机。
二、配置主路由(小米路由)1. 主路由给二级路由分配固定ip
在小米路由的Web配置页面,高级设置->DHCP静态IP分配->添加->一键绑定。

我这里给K2设定的固定ip是192.168.31.2。
2. 设定端口转发
将pptp端口(TCP 1723)访问转发到二级路由。
还是Web配置页面,高级设置->端口转发->添加规则,
名称:随意
协议:TCP
外部端口:1723
内部IP地址:192.168.31.2(即二级路由的固定ip)
内部端口:1723

3. 关于动态DNS
一般家庭宽带都是动态ip,为了远程能够找到家庭宽带的地址,需要使用一个动态DNS服务,才能通过域名解析连接到家庭网络。
小米路由支持花生壳(oray.com)、公云(3322.org)、dyndns.com、no-ip.com这4个服务商。那么问题来了,花生壳和公云的免费账户只支持电信线路,dyndns已完全取消了免费服务,no-ip.com永远是连接错误。
如果你有花生壳或公云的收费账号,或者用的是电信线路,直接在这里填写你的账号和域名信息就行了。
如果不是电信线路,又希望追求最大性价比(不想花钱),只能从二级路由上想办法。下文会详述。
三、配置二级路由(Padavan)1. 设定联网方式为动态IP
Padavan的配置页面,高级设置->外部网络->外网设置->外网连接类型:IPoE(动态IP)。
修改完成后重启二级路由,再次登录,确认被分配的ip地址是前面指定的固定ip。

2. 动态DNS
如果你已经在主路由上实现了动态DNS解析,请直接跳过这一节,这是最麻烦的步骤。
Padavan虽然内置支持很多DDNS服务,但由于二级路由不能识别公网ip,所以不能直接使用,必须用脚本来实现,这平添了不少麻烦。
先去http://freedns.afraid.org/注册一个Starter(免费)账号,然后点左边的[ Subdomains ],注册一个好记的二级域名,主域名从列表中选择,解析类型为A,IP地址不用管它,反正一会儿要更新。

上图注册的完整域名为demo.mooo.com。
注册成功后,点左边栏的[ Dynamic DNS ],再点中间上方的dynamic update interface (version 2)!

此处需要给注册的域名启用动态更新。在下一个页面,选中刚刚注册的域名,再选中下面的Action: Enable Dynamic DNS,点Apply。

下一个页面,在域名这一行,有一个cron script链接,点击它,获得动态域名更新脚本。

显示出的脚本的最后一行:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * sleep 27; curl -s http://sync.afraid.org/u/arWqiRsomBEiK......../ >>/tmp/freedns_....log 2>/dev/null
这是我们最终需要的东西。把它这一行完整复制下来。
回到路由器配置页面,选择高级设置->系统管理->服务,页面下方有个“计划任务 (Crontab)”链接,点开它。

在文本编辑框中另起一行,把刚才复制的那行脚本粘贴进去,点击下面的“应用本页面设置”。这行脚本每隔几分钟会被调用一次,用于检测和更新域名对应的公网ip地址。
至此,动态DNS配置完成。几分钟后,域名解析就会生效。如果一直不起作用,就重启一下路由器。
3. 开启VPN服务器
Padavan配置页面,左边栏点VPN服务器,启用VPN服务器,VPN协议选择PPTP,其它不用变。

然后在“客户端账号”标签,添加一个vpn账号,用户名密码随便,最后点“应用本页面设置”。

二级路由配置完成。
四、手机和PC端配置
配置完成后可先用手机测试一下有没有问题,毕竟手机可以很容易切换内网和外网,有问题也方便随时解决。
将手机连接主路由的WiFi,新建一个VPN连接,类型PPTP,服务器地址192.168.31.2(即主路由给二级路由分配的固定ip),勾选PPP加密(MPPPE),保存,输入VPN账号和密码连接。

如果能够连接,关闭手机WiFi,启用移动数据,将VPN服务器地址改为刚才注册动态域名,再次尝试连接。
外网也能连接成功的话,说明所有配置完全没有问题,在PC上配置好同样VPN连接就可以正常使用了。
五、实际使用
远程PC通过VPN接入后,即可获取到局域网ip,变身内网设备,可通过miwifi.com访问小米路由的配置页面,最重要的,可以通过samba协议存取小米路由内置硬盘的文件,和在局域网内没有任何区别。

至于存取速度,取决于整条链路上最慢的那一段,一般来说是宽带连接的上传带宽。以我自己的网络条件,无论上传下载,速度每秒1MB多一点,互传些小文件没问题,几十GB的大文件...还是死了这条心吧。

无论如何,从此可以不再受时间地点限制,随时随地获取小米路由硬盘资源,随心所欲与家人互传文件,离真正的专业nas又近了一步。