参考:
https://zhuanlan.zhihu.com/p/378698808
背景:
公司和家里各一台电脑,公司电脑较差,家里电脑好点,有时候需要用到家里电脑处理事务。
- 家庭电脑24小时开机,电费较高。于是设置了网卡远程唤醒,和自动睡眠功能。在家里配置了一个树莓派,安装了raspberry pi系统,其实就是linux,一行代码就可以在局域网唤醒家庭电脑了。使用的时候,通过公司电脑ssh到raspberry,然后唤醒家庭电脑。
- 以前家庭电脑的宽带是电信的,申请了公网地址,可以直接在路由器开端口登录。后来改成了移动宽带,没有公网IP了。虽然有ipv6,但不安全。所以采用zerotier组建局域网方式,从公司电脑登录家庭电脑。
- 问题:树莓派只有5W,可以24小时开机。家庭电脑每次唤醒后,连接zerotier服务器特别慢,所以需要一个moon服务器,即打算用树莓派作为moon服务器,因为它虽然不在外网,但是却24小时连接在zerotier上了,想必作为隧道,网络会快一些。
- 公司电脑192.168.181.3,树莓派192.168.181.4,家庭电脑192.168.181.4,已经都可以互通了。
搭建服务器
首先进入树莓派,生成moon.json
cd /var/lib/zerotier-one
sudo zerotier-idtool initmoon identity.public > moon.json
用vi moon.json修改文件如下
"stableEndpoints": [ "192.168.31.199/9993" ]
其中192.168.31.199是树莓派的局域网ip地址。
生成moon文件
sudo zerotier-idtool genmoon moon.json
此时会生成0000xx.moon的文件,将其移动到新建的moons.d目录中。
重启zerotier服务
sudo systemctl restart zerotier-one
进入家庭电脑,从任务管理器中找到zerotier-one_x64.exe的目录,一般是C:\ProgramData\ZeroTier\One。新建moons.d文件夹,将刚才树莓派上的000x.moon文件下载下来,放入此目录,然后通过服务,重启zerotier-one_x64.exe即可。
效果
目前测试,唤醒之后的家庭电脑,只需要1分钟不到的时间,即可连上zerotier服务器,也可以通过公司电脑ping通内网地址。
发表回复