外网访问群晖DSM7.0使用Docker安装ZeroTier实现内网穿透

前言

玩NAS都知道拥有一台群晖有多香,大多数朋友入坑前都会选择自己组建一台,毕竟一台配置像样点的群晖价格不菲,而自己组建的群晖就无法享受群晖的QuickConnec服务,也就无法外网访问,要做到外网访问家中的群晖就要做内网穿透,然而目前大部分家庭宽带运营商都不会提供公网IP,那么有其他的办法吗?答案的肯定的,方法很多,要么要钱、要么不稳定、要么限流、要么门槛很高,作为一个本着追求完美,能白嫖绝不花一个大洋的头条博主今天就带着大家使用Docker安装ZeroTier实现内网穿透。

ZeroTier是一款利用 UDP 打洞来实现内网穿透的工具,工作原理是组建一个虚拟局域网,各个设备(NAS、Linux、Windows、Mac、iOS、Android)安装客户端,加入到这个虚拟局域网后,就会自动分配一个IP,从而实现局域网内各个设备及服务的相互访问!相比其他工具成功率更高、部署更简单。最重要的它是免费的,最大支持25个设备连接。

项目地址:https://github.com/zerotier/ZeroTierOne

准备工作

1、注册ZeroTier,获取NetWork ID
访问:https://my.zerotier.com (如果ZeroTier网站加载不出来,需要一点耐心多尝试几次,或用手机移动网络访问)

由于某些因素,建议使用Microsoft注册


记住上面的NetWord ID号,它就是各设备加入这个虚拟网的钥匙。

详细的ZeroTier注册及设置后续我再单独出教程!

2、群晖安装Docker
这个简单就不细说了,登录你的群晖在官方套件中心找到Docker点击安装即可。

3、使用SSH链接你的群晖

控制面板——终端机和SNMP——启动SSH功能(安全起见,使用后记得关闭)

Windows使用PuTTY(工具下载:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html),如果您用的是MAC,直接使用终端即可。

至此准备工作已做完

安装ZeroTier

1、打开PuTTY,输入群晖IP与端口号,点击“Open”

正常情况下弹出一个黑窗,如果是第一次使用可能会弹安全确认窗,点确认或继续即可。

2、黑窗中输入您的群晖登录名,按回车键再输入密码,注意输入密码过程中界面什么也不显示这是正常的,输完按回车建即可;

4、出现登录名@群晖名称即表示登录成功,接着输入sudo -i,回车再输入一遍密码,切换为root身份;

sudo -i

5、创建一个/usr/local/etc/rc.d/tun.sh 脚本到/dev/net/tun 目录下(复制以下脚本,粘贴到黑窗,按回车键提交)

echo -e '#!/bin/sh -e ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh

6、给刚刚创建的tun脚本授予所有用户均可执行的权限

chmod a+x /usr/local/etc/rc.d/tun.sh

7、使用以下命令检查以下tun.ko是否存在

lsmod | grep tun

如图表示存在,我的群晖默认已经有tun这个包,不需要安装,直接用即可,若以上命令找不到tun这个包,则执行以下脚本,创建tun,然后再执行上一个段脚本检查是否存在;

/usr/local/etc/rc.d/tun.sh

8、检查TUN的运行状态

ls /dev/net/tun

9、创建一个zerotier文件夹用于挂载zerotier-one的配置文件和认证信息(注意这里的路径是在我的docker路径下)

mkdir /volume1/docker/zerotier

你也可以直接在群晖File Station上创建,然后查看文件夹属性,获取实际路径(建议使用这步,比较直观,不容易出错)

10、创建一个容器,这里将它命名为zt,这里会自动下载最新版的zerotier(注意最后一行脚本中的“/volume1/docker/zerotier”是否为上一步创建zerotier文件夹的地址);

docker run -d           
  --name zt             
  --restart=always      
  --device=/dev/net/tun 
  --net=host            
  --cap-add=NET_ADMIN   
  --cap-add=SYS_ADMIN   
  -v /volume1/docker/zerotier:/var/lib/zerotier-one zerotier/zerotier-synology:latest

执行完,出现一串检验码即表示镜像部署启动成功,回到群晖管理页面,打开Docker-容器,既可以看到多了一个群晖镜像;

配置zerotier-one加入您的虚拟网络

1、使用以下命令检查zerotier-one的运行状态

docker exec -it zt zerotier-cli status

如图,显示“200 info…”表示zerotier运行成功。

2、使用以下命令加入你的zerotier-one网络(其中后面的**********换成你自己的zerotier-one生成的NetWork ID

docker exec -it zt zerotier-cli join **********

当看到200 join OK,既是表示加入网络成功,这时候登录zerotier控制台,即可看到网络列表多了一条未授权加入的网络;

勾选允许,获取到ip即可通过此ip访问;

为其他(需要访问群晖的)设备安装zerotier

拿Android手机为例,通过下方链接下载APP(其他平台设备请访问官网下载对应客户端)

https://download.zerotier.com/dist/ZeroTierOne.apk

1、手机打开zerotier

点击右上角加号icon,添加NetWord ID号加入虚拟网络


添加成功后,点击下图开关打开(记得访问https://my.zerotier.com勾选允许),点击行可以查看详情

手机状态栏会出现一把“钥匙“icon即表示成功

最后如果您在家里就关闭wifi使用移动网络试一试吧!


升级ZeroTier

升级zerotier需要先停止容器,并且移除容器,然后再拉取最新的容器:

1、查看zerotier-one状态信息:

docker ps

显示信息:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25ijo525df3435 zerotier/zerotier-synology:latest "zerotier-one" 5 weeks ago Up 9 days zt

停止容器(注意id)

docker stop 25ijo525df3435 

移除容器(使用rm)

docker container rm 25ijo525df3435 

拉取最新的容器

docker pull zerotier/zerotier-synology:latest

然后再回到上面第10步创建的步骤。

写在最后:能看到这的那一定是真爱,既如此求点点赞点点关注吧!后续带给大家更多好玩、有趣、免费的教程,带您白嫖到底!

展开阅读全文

页面更新:2024-03-12

标签:公网   局域网   容器   脚本   文件夹   路径   命令   设备   手机   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top