国庆被封家里了,这可是个漫长的假期,只能继续来摆弄我的这一堆破垃圾,看到电视柜下面积灰的猫盘群晖,想给它上一个zerotier,本来我是想用另外一个移动盒子cm311来替换的,后面想一想,技术不能欠债(实在是太无聊了),我得留下点笔记锻炼一下我拙劣得文笔。
猫盘装群晖,已经是成熟技术了,我就不班门弄斧了,我这个猫盘我给它上了一块120g的SSD硬盘,这些都是以前的服务器上退下来的SSD,伊拉克成色,当U盘都闲小,好处是省电。
猫盘用的 Marwell a3720 cpu 频率是双核 1G赫兹,512M的内存,我之前一直以为猫盘是J1900的CPU,对蜗牛星际不以为然,看样子终究是我肤浅了,没有最渣只有更渣,又不是不能用对吧?zerotier 是内网穿透的神器,我之前用frp做穿透,受够了阿里云的1G带宽,远程桌面卡得很,我一气之下想自己写一个代理,做内网点对点的传输。后来在github上闲逛发现zerotier这个神器,我想到的人家都想到了,包括盈利模式,还是老老实实的捡垃圾吧。
zerotier的官方文档推荐使用docker容器跑应用,我承认docker是个好东西,从docker一出来我就在项目上推,但是弊端也很明显,一个镜像几百兆上G,内存占用大,cpu损耗也不小,之前我在这个群晖上开了几个容器,系统就受不了,据说DSM 7以后 群晖就不再支持原生应用了,都要启用docker容器,我觉得这个简直比巨硬还黑呀,现在对CPU的使用这么肆无忌惮了么?反正我也不是付费用户,随他去吧!
先去github交友平台下载代码,我下载的版本是ZeroTierOne-1.10.1,群晖平台不带编译器,也不带软件包安装环境,我是安装了ipkg作为基础软件安装平台,ipkg 的安装很简单,百度一下你就知道。
- 安装GCC编译器
- 进入目录运行 make 命令
这里会报一个错,说找不到一个头文件,我在系统上查了一下,的确没有那个头文件,网上查了一下,进入make-linux.mk这个文件修改313 314行
这个是告诉编译器,CPU是支持硬件浮点数计算的,用硬件计算浮点数,C++果然博大精深呀,我之前写代码,编译就没有遇到过这么多花活,太土了,难怪在码农的路上没有走得太远。
继续 make,经过长时间的等待有会报出一个错误来,说是有个头文件找不到,好像叫intl.h,网上查了一下属于libintl,这个库是来源于gettext,据说libc6 系统自带,ipkg 没有这些库,所以只能自己编译了,从https://www.gnu.org/software/gettext/
下载gettext-0.21.tar.gz,好家伙源码2兆多,进入目录
错误的估计了形式,花了差不多一小时才编译完成,说明这颗CPU之弱鸡,要小心使用,否则会很慢。
继续回到zerotier 的目录make,这个时候就会发现 zerotier-one 这个小可爱被编译出来了,运行make install 进行安装。
- 运行./zerotier-one 会报错,查了一下文档,说是群晖没有加载/lib/modules/tun.ko 模块。
我的解决办法是开机加载
把./zerotier-one 也变成开机启动
加入已经申请的网络
启动后登陆 zerotier 的网站,在你的network配置里就可以看到这个机器加入网络了,配置允许进入就可以得到ip地址了。
接下来可以在桌面系统访问群晖了,速度还不错,内网 外网访问都还不错,接下来我的想法是远程挂nfs系统,我的存储计划丢车库,数据放这个用尽了所有寿命的SSD还是很不靠谱的,家里没有摆我的这堆小垃圾了。
原文链接:https://zhuanlan.zhihu.com/p/570350665