好好活就是有意义的事,有意义的事就是好好活
基于Zero-Tier实现流畅的跨内网 Windows  远程桌面控制(二)
基于Zero-Tier实现流畅的跨内网 Windows 远程桌面控制(二)

基于Zero-Tier实现流畅的跨内网 Windows 远程桌面控制(二)

前言

本文继承自前文:

https://kingdo.club:8081/2022/01/06/%e5%9f%ba%e4%ba%8ezero-tier%e5%ae%9e%e7%8e%b0%e6%b5%81%e7%95%85%e7%9a%84%e8%b7%a8%e5%86%85%e7%bd%91windows-%e8%bf%9c%e7%a8%8b%e6%a1%8c%e9%9d%a2%e6%8e%a7%e5%88%b6%e4%b8%80/

如果你直对如何实现内网穿透感兴趣, 那么只看此文也可!

内网穿透工具

其实有很多啦, 开源的, 闭源的, 国内的, 国外的:

花生壳, wireguard, ddnsto, ngrok, frp 甚至是 ssh!

但是其实上述我一个也没用过, 也没听过, 是我加的一个微信群里有个人说的!

我只用过Zero-Tier, 初见即终身, 所为叹为观止, 所谓沧海巫山!

哈哈哈哈哈哈哈哈, 不吹了, 其优点极其强大:

  • 简单!

你只需要执行一行命令即可!

  • 免费!

内网穿透的前提是, 你有一台大家都能访问的服务器, Zero-Tier免费提供给你

  • 高效!

基于对等网络实现设备互联; 可自定义根节点; 全球各大洲都部署服务器, 既是最远的连接也能保持100ms以内的延迟

  • 跨平台!

是的, 他就是如此好用, 多希望是我们国产的服务啊!

Tier-Zero内网穿透的原理

如何连通

如果你有兴趣, 可以去阅读其协议设计的白皮书:

Protocol Design Whitepaper | ZeroTier Documentation

这里其实没有透漏很多细节, 但是用了颇多专业的网络词汇, 我也不是很懂!

我只能按我的理解, 去大体的描述一下是怎么个过程.

我们还是沿用上一篇文章中的拓扑结构:

如图所示, 用户可以在Zero-Tier的根服务中搭建一个自己的私有网段, 然后将自己需要互连的设备加入到这个网段!

每当我们的设备成功的加入了我们的私有网段, 就表示此设备构建了一条到达根节点的通路!

假设,以上三个设备均加入到了我们的私有网段, 现在Lab-Win11需要连接Bed-Win10:

  1. 一开始, Lab-Win11并没有达到Bed-Win10的连接, 因此会向上转发, 首先到达月亮根节点(如果有的话),如果月亮节点无法联通两个设备, 则继续向上传递, 直到到达地球根节点
  2. 根节点将如何到达A的通路告知B, 将如何到达A的通路告知B
  3. A, B将会根据根节点提供的信息, 来打通并构建对等网络, 这里非常关键的一点, Lab-Win11和Bed-Win10其实都在同一个校园网当中, 因此对等网络将会很快的建立, 并且路径非常短
  4. 当A与B再次相互访问时, 将会直接走之前构建的通路

所以Zero-Tier的存在一方面是为了帮助我们建立这个通路, 另一方面, 如果两个设备始终没有公用的通道, 那么将会借助根节点进行通讯!

我们可以在路由器Bedroom Router中看到, 用于建立对等网络的配置:

因此Lab-Win11和Bed-Win10其实并不会通过根节点, 所以延迟非常的低!

行星根节点与卫星根节点

行星根节点,即地球节点有且只有一个, 是Tier-Zero为我们搭建的全球互通的服务, 但是在国内访问其实是有较大延迟的, 因此我们可以自己搭建卫星节点, 即月亮节点. 设备将会首先通过卫星节点来构建通路, 如果成功的话, 就不会再经过行星节点!

一般建议搭建两个卫星节点, 一个用于内网的互连互通, 一个用于公网的互联互通. 即:

  1. 我们在华科校园网的内网中的一个服务器上搭建一个月亮节点, 那么我们校内的所有设备, 都可以仅仅利用这个节点进行穿透!
  2. 我们可以在阿里云\腾讯云中购买一个服务器, 用于做一个月亮节点, 从而实现低延迟的互连!

使用

步骤概要

明白了上面的内容, 我们就知道,我们需要的操作包括:

  1. 在Zero-Tier中创建一个网络
  2. 让我们的设备加入这个网络
  3. 搭建Moon节点(可选)

访问ZeroTier – Global Area Networking, 注册账号并登录

创建网络, 我们将获得一个Network ID

下载客户端

加入网络

Windows:

Linux

sudo zerotier-one join ##############

回到官网的界面, 授权设备的加入

只要选中auth下面的选框, 等待一会, 就可以看到自动为此设备分配了IP

此时我们在设备上可以看到这个IP:

至此, 所有工作完成!

搭建Moon节点

如何搭建其实并不复杂, 我不想写了,有点累, 希望大家自己探索吧!

这里附上一些可参考的资料:

Private Root Servers | ZeroTier Documentation

zerotier简明教程 – Jiajun的编程随想

ZeroTier 搭建 moon 服务器 – Yogile – 博客园 (cnblogs.com)

后记

实际上Windows远程桌面,也是可以跨平台的, 可以用来控制Linux等, 但是其效果比不上Windows之间的相互控制.

此外, 我们也可以使用手机端的客户端进行远程控制, 当然这也需要手机端的Zero-Tier的支持:

详细的内容, 可以查看官方的手册:

欢迎使用 Windows Server 2016 中的远程桌面服务​docs.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/welcome-to-rds

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注