一直想做一台NAS服务器,前段时间刚好搞到一台旧主机,装好centos系统后,开始做网络穿透。这里我选择的工具是zerotier,免费!好用!
一、内网穿透:
1、进入zerotier官网后,注册登录账号。
2、点击Networks,点击Create A Network生成一个局域网。
3、打开进入主页面,这里会看到该局域网的详细信息,这里记录一下网络id。
4、接下来需要我们的设备加入到该局域网内,点击Download可以看到各自系统的下载方式,这里说明一下linux下载方式:
控制台输入以下指令安装zerotier
curl -s https://install.zerotier.com | sudo bash
5、安装完毕后,通过以下指令加入:
sudo zerotier-cli join xxxxxxxxxxxxxxxx
6、查看连接状态:
zerotier-cli status
7、返回网页,在详情页下方找到members选项卡,即可看到刚加入的设备id:
8、接下来我们就可以在任何网络环境下,通过Managed IPs互相访问局域网内的设备啦!
二、moon节点配置:
zerotier可以通过配置moon节点来加速设备间的访问,通常需要一台公网云服务器,如腾讯云、华为云,优点是有固定公网IP,不用再向当地运营商申请;访问速度快,且几乎不走云服务器流量;moon节点的配置教程网站上有很多,这里就简单说明一下:
1、在云服务器上同样下载zerotier,并加入局域网内。
2、给云服务器开放9993端口,端口类型为UDP。
3、进入zerotier-one文件夹。
cd /var/lib/zerotier-one/
4、生成moon.json
zerotier-idtool initmoon identity.public > moon.json
5、编辑moon.json
修改画框框的内容 ,将[""]中的内容改为:["云服务器的公网IP/端口"]
6、保存后生成配置文件,执行如下命令:
zerotier-idtool genmoon moon.json
7、执行后会产生一个000000xxxx.moon的文件,创建moons.d文件夹并放入配置文件:
mkdir moons.d #创建moons.d文件夹 mv 000000xxxx.moon moons.d/ #放入文件
8、重启即可:重启代码:
systemctl restart zerotier-one
9、云服务配置完毕,再进入NAS设备进行配置,执行:
执行命令:zerotier-cli orbit 50ee7da960 50ee7da960
50ee7da960 是云服务器的节点id
10、执行 zerotier-cli listpeers 指令查看节点详情。云服务器ID变为moon代表配置成功!
三、远程SSH访问配置:
moon节点配置好后,云服务器和NAS传输变快了,可以通过ping命令查看延迟时间,可能并没有特别直观的体现,但是在SSH远程登录时可以明显感觉到差距,若通过zerotier直接SSH登录NAS,有时候输入一个字符都会有长达3000ms到5000ms的延迟,让人难以接受,有了moon节点,我们可以直接把云服务器当跳板机,利用Nginx代理访问NAS,这样一来,延迟可以极大的降低延迟,并且这样做还有另一个好处:在任意可以联网的设备远程访问家里NAS服务器,不需要下载zerotier,甚至可以在手机端SSH访问家中NAS,是不是很酷!
1、首先在云服务器上下载Nginx,打开Nginx配置文件,插入以下配置:
stream { upstream ssh { server 192.168.196.163:22; #NAS的IP和端口 } server { #里面可以有多个监听服务,配置监听端口和代理的ip和端口就可以进行tcp代理了。 listen 8070; #云服务器的端口 proxy_pass ssh; proxy_connect_timeout 1h; proxy_timeout 1h; } }
这里stream要和http同级,不能在http下。
2、开放云服务端口,类型为TCP
3、通过 云服务IP+开放的端口好 远程SSH登录NAS吧!
五、结尾:
欢迎大家咨询和指正!