NAS上部署ZeroTier+noVNC远程控制任意内网主机
文章目录
通过VNC的方式进行远程控制是我们经常会使用的主机管理方式之一,noVNC则解放了客户端的限制,不再局限于终端,随时随地通过网页进行操作。
ZeroTier则用于内网穿透,配合noVNC免去了控制终端需要在同一内网的限制,非常nice。
为什么是ZeroTier?
同类内网穿透的软件有很多,如Frp、NPS等,但主打p2p的仅ZeroTier,通过官方的服务器进行内网隧道的打通后便不再依赖Server端,实现点对点连接,因此速度更快。
ZeroTier
-
注册并登录ZeroTier
-
创建私有内网
默认已经给你创建好了一个,记下此处的Network ID
-
主机加入内网,这边演示2种加入的方式:
-
安装官方提供的客户端,点击前往官网下载
以Windows10系统为例,安装完成后,点击Join Network...,然后填入Network ID即可
-
通过docker安装,这里演示使用
docker-compose的方式
创建docker-compose.yml文件内容如下:
|
|
docker-compose up -d启动容器
docker-compose exec zerotier zerotier-cli join [ZeroTier Network ID]执行该命令加入内网,[ZeroTier Network ID]替换为刚刚记下的Network ID
-
在将NAS和被管理主机加入内网后,ZeroTier管理页面就能看到了,在左边红框处打勾,稍等片刻后就能在右边看到该主机的内网IP了

-
测试内网的互通
在一台主机上可以ping通另一台IP,内网建立完成
noVNC
-
在被控制的主机上安装
VNC服务端并设置登录密码,Windows用户可以安装TightVNC,这边不再展开 -
NAS通过docker的方式部署noVNC
目录结构如下:
|
|
新建token.conf文件,[name]: [ip:port]以该格式填入你需要被控制的主机,可以有多个,如:
|
|
新建Dockerfile文件,内容如下:
|
|
新建docker-compose.yml,内容如下:
|
|
- 运行
在应用目录下,执行docker-compose up -d --build来构建容器并启动
docker-compose restart重启
docker-compose down关闭
- 启动后便可以通过浏览器访问
[domain]/vnc.html?path=websockify/?token=[name],如http://192.168.1.11/vnc.html?path=websockify/?token=vnc1,更改[name]即可登录不同的主机
点击“连接”后,输入密码便可以进行远程控制了

至此本教程结束。