笔者家里的电信宽带刚申请换上了公网ip, 加上有一台闲置的windows电脑,所以想到了把它打造成家庭nas。
中间经历了各种情况,踩了很多坑,现记录如下:
公网ip无用
家里网络是电信网关+TPLink, 电信网关负责拨号获取ip,TPLink做路由转发。在成功切换成公网ip后,笔者兴致冲冲的去ping, 结果发现居然是req timeout,尝试放开各种端口发现也不通。笔者所用网关型号为tewa-600NEM,后来一顿搜索,解决了这个问题:
- 打开网关隐藏配置信息: 192.168.1.1/dumpcfg.conf (192.168.1.1是网关地址)下载隐藏配置,用记事本之类软件打开此文件,搜索“telecomadmin”即可,密码格式为”telecomadmin********”
- 获取密码后登陆网关, 用户名为useradmin, 密码用上一步获取的密码就可以进入超级模式
- 选择宽带线路,把路由模式从路由改为桥接
- 打开TPLink, 选择上网模式为拨号上网,拿到ip
- Ping,发现可以ping通,这个时候拿到的才是公网ip
笔者发现天翼网关拿到的公网ip不仅ping不同,所有端口默认都是ban掉的,而且和路由拨号拿到的ip号段也不一样
部署私有网盘
笔者选择了国产的一款网盘:可道云,选择了它的免费版本。部署过程如下:
- 下载xampp, 这是一个工具集,包含了Apache Server, MySql, FileZellia等,但其实主要用到的还是Apache Server, MySql
- 下载KodExplorer, 加压到xampp目录下替换htdocs文件夹里的所有内容
- 在xampp控制面板启动即可,默认端口为80,可以根据需要修改
域名
笔者在阿里云万网注册了一个域名,但是直接绑定家里的ip感觉不妥,因为家里的公网ip是不断变化的,如果绑定某一个域名肯定要频繁改,为了规避麻烦笔者采用了DDNS方案。DDNS首先想到的就是花生壳,但是这货注册太麻烦,直接弃用。笔者直接采用tplink自带的ddns, 绑定了一个域名A.tpddns.cn,然后在万网域名解析里加上了一个CNAME记录指向了这个A.tpddns.cn,至此,域名的问题就算是解决了。
虚拟服务器配置
家里的windows server是内网ip, 怎么供外网访问呢?在路由器设置里笔者发现了两种方案:
- DMZ主机,把windows server直接暴露到外网,简单但是安全性低
- NAT, 通过端口映射把APACHE SERVER监听的端口映射到外部某个端口
笔者选择了NAT方案,配置很简单,不再赘述
备份
KodExplorer并没有提供一键备份功能,所以笔者选择了一个简易的备份方案
先说说设备,笔者手上有一台开发用的mac,搭配阿里云oss存储
开启windows server的CIFS(SMB)服务:
- 进入windows server, 选择需要共享的盘符,右键->属性->共享->高级共享移除Everyone,添加用户A(需要密码)
- 打开”关闭或打开windows功能”,勾选smb, cifs,保存
mac加载盘符
1 | mkdir smb |
进入盘符备份
1 | cd smb |
上传oss
1 | #安装oss2 |
上述任务可以做成定时任务,Linux上可以用crontab, Mac上推荐用launchctl, 下面推荐launchctl的方法
1 | cd ~/Library/LaunchAgents |
如果要停止定时任务
1 | launchctl stop com.kod.backup.plist |
下面是笔者写的com.kod.backup.plist内容,每隔10个小时执行一次部署脚本
1 | <?xml version="1.0" encoding="UTF-8"?> |
这里有几个点需要注意:
- 脚本是否具有可执行权限,如果没有直接
chmod +x
解决 - 如果用到了python,记得使用/usr/local/bin/python而不是直接使用python,否则会报找不到oss2的错误