老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. VPS相关
  4. 正文

应用Twingate进行内网穿透和异地组网

2023年8月18日 2800次阅读 0条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

Twingate是一个尚在推广期、可免费应用部署的零信任架构(ZTA,Zero Trust Architecture)网络解决方案,比较新,很多人了解的不多。Twingate一类的ZTA解决方案用例很广,涵盖内网穿透、异地组网、办公内网构建、点对点访问、安全防护、网络加速等,老E看来,结构简约、轻便灵活是其最大的特点,与Tailscale/Headscale等相比,Twingate更轻,更强调零信任基础上的身份验证和点对点连接而非中央控制。默认情况下,Twingate允许用户与受保护的资源建立对等连接,而无需任何开放的入站端口,不需要对现有客户进行任何额外部署,并且对最终用户和管理员完全透明。

1.Twingate结构

和不少ZTA解决方案一样,Twingate使用了分离组件构筑整个ZTA网络,由控制器、连接器、客户端和中继器组成。

  • 控制器

控制器是Twingate的中央协调组件。它是一个多租户组件,通过管理控制台存储配置更改,注册连接器,并向发出连接请求的客户端颁发签名授权以及其他职责。控制器由Twingate建设并提供管理界面,租户可配置,其核心功能是集中管理、身份验证、访问控制。

  • 客户端

Twingate客户端主要用于对私有资源请求的组合身份验证和授权代理。客户端的功能主要包括身份验证处理、访问控制、名称解析、隧道建立和流量代理等。

  • 连接器

很明确,Twingate将连接器定义为客户端的镜像组件,额外具有一些更简单的职责,包括连接控制器与中继器、完整性验证、本地名称解析。

  • 中继器

中继器在Twingate架构中负责中转传输数据和流量。Twingate始终尝试在客户端和连接器之间建立对等连接,以提供对资源的低延迟访问,Twingate中继连接被设定为仅作为备份方法。

2.部署概述

Twingate易于上手,对于常用的部署方式、平台对进行了充分的支持,在需要使用命令行的平台(如Linux)上的部署都会生成命令行供拷贝、粘贴使用,大大降低了ZTNA部署、应用门槛。以某网络NetworkA为例,部署Twingate可归纳为以下5个步骤:

  1. 创建NetworkA远程网络(无论是否本地,对于Twingate组网而言都是远程网络)
  2. 创建NetworkA远程网络的连接器
  3. 在NetworkA网络内计划部署为连接器的节点上运行Twingate生成的代码(安装、注册系统服务、连接自动完成)
  4. 创建NetworkA的资源并配置访问控制规则
  5. 安装客户端并访问NetworkA的资源

3.部署过程

3.1 注册试用

注册账户才能试用,默认Trial期是14天,可以试用商业版本的若干功能,不过除了用户数差异老E貌似没发现其他高级功能。Trail期间支持5用户,每用户5个设备,核心就这些。

“Sign in”或者“Try twingate for free”随便哪个入口点进去,选一个自己好用的邮箱登录,推荐额外配置的outlook。按照提示一步步完成即可,过程中需要选择或填写的内容没有什么特定要求,例如公司规模,选1000人以上和小于100人不会有什么后效区别。

3.2 创建网络

账户注册完成后,自动跳转到网络主页。单击“Add a Remote Network”已添加网络。

打开后,选择远程网络位置/类型,默认的几家云服务提供商都已列入,查询文档可知,Twingate与这几家都建立了密切的合作关系,在开通AWS EC2实例的时候,是可以搜索选择Twingate社区AMI版本镜像的,其中已经自带了Twingate连接器组件。这里选择Other”即可,其他的可以自行尝试。同时,给创建的远程网络确定个标识名。

之后点击“Add Remote Network”,远程网络创建、添加完成。

3.3 创建并部署连接器

一个网络至少可以部署一个连接器,以作为冗余备份。连接器需要保持和控制器、中继器(Relay)的连接,控制器、中继器(Relay)是由Twingate建设并供租户/用户使用,无法自托管。

远程网络就创建、添加完成后会自动跳转到网络面板,可以看到默认Twingate会为我们创建两个空的连接器,可删可改。为了避免有多余、无用的连接器,可以选择一个进行编辑修改,比如改为与远程网络名称相匹配的名称,便于识别。

点开编辑、修改的连接器(net1-connector),打开连接器配置面板。Twingate官方将连接器的配置部署分成了5个步骤,非常易于理解和上手。

在这里,第一步的部署方法选择10项可选,默认是docker,也是官方为了追求最大的兼容性和支持度。这里可以自行选择,无论什么方法都会在第四步给出具体的命令行或其他操作内容。选择Linux后,进入第二步,生成Token。OAuth验证Token流,Access Token、Refresh Token都会由系统生成,当然,需要登录授权。

Token生成后,直接拷贝第四步由系统生成的命令行,粘贴到计划部署为连接器的主机上运行。粘贴、运行过程本文略过。

主机运行粘贴的指令后,会自动安装连接器组件、创建由systemd守护的系统服务、自动启动并连接控制器、中继器。在Twingate管理版面可以实时查看连接器状态。尽管中继转发只是作为备份手段,但连接器仍然需要保持和中继器的连接,目前来看,Twingate可以实现秒连。

3.4 创建资源

在网络(Network)面板,点击“Create Resource”创建资源及定义访问控制规则。需要选择、确定远程网络、名称标识、资源内容。已有的远程网络在左上角选择后,定义资源名称,再配置资源内容和访问控制规则。

资源内容配置上,Twingate也体现了易于上手的特点,没有什么艰涩的专有名词。灵活度上,支持IP、FQDN、网段等多种方式,可以设定别名(Alias)和端口(Ports),默认是所有端口都允许(Allow)。配置好后点击“Create Resource”,在访问控制策略对话面板中对用户、组对资源的访问权限进行自定义,这里直接采用默认的Everyone均可访问。点击“Add Group”完成资源和访问控制规则的配置。

3.5 安装配置客户端

Twingate客户端下载地址如下:

https://www.twingate.com/download

官方支持的客户端基本囊括了所有主流平台,Linux分支基本也都可以适配Linux版本的客户端。

Windows下,因为TAP接口的安装,需要重启。重启后Twingate自动加载启动,登陆验证。验证完成后,可以在任务栏打开Twingate,连接正常的情况下,网络、资源、访问控制规则等会列出,也可以点击“Open in Admin Console...”打开对应的浏览器管理面板,进行配置和管理。

3.6 重复与访问控制

3.2-3.4是针对一个网络(无论是远程公网还是本地私网)的配置,要配置另一个网络,纳入“大内网”,就是对3.2-3.4部署工作的重复和轮回,没有什么额外需要注意的。Twingate目前还算鲁棒,有问题删除重来,不会对账户和基础网络产生破坏性影响。真正有必要尝试的是访问控制和身份验证。访问控制之前已经说明,对整个网段的支持确实可以简化大量配置工作,但在业务环境下也会带来不小的访问控制压力。家宽用户,是可以直接使用内网网段来定义访问控制规则的。

集成身份验证支持的也比较丰富,Google workspace、Azure AD、Onelogin等等,ZTNA解决方案基本上也都支持上述这些Vendor的集成验证。如果考虑名称管理,可能Azure AD更加适合,Azure官方也相应文档阐述指引。

4.其他

要保障一次部署成功,需要注意几点:

  • 客户端版本保持最新,官方更新很快;
  • 连接器主机的出站流量需要放行443、30000-31000端口,注意是出站,一般不会有问题;
  • 不要使用其他TAP设备或驱动,官方发布过已知的冲突;
  • 不能把私网IP搞混了。

可能是目前用户规模不大,Twingate的隧穿成功率很高,部署后实时在线,资源访问响应速度也很快,但速度和正常的代理还是无法相提并论,基本上是半速运行。对于Twingate的底层工作原理,了解几个关键字即可,分别是分割隧道、TAP、QUIC、TUN、“名称”解析。TAP接口是Twingate工作的基础,客户端和连接器、控制器都会参与“名称”解析,Twingate支持借助Azure AD维护名称空间,解析后连接,连接失败会自动切换为TUN模式以保障成功率,协议上官方明确是基于QUIC,采用了分割隧道对流量进行安全保护。零信任解决方案,是不能进行本地分流的,这是基本常识,分流了就不是ZTNA了。所以,如何分流让本地访问bypass连接器是个愚蠢的问题,还是要先考虑下什么是零信任,而TAP又是个二层设备,无论如何都会前置拦截。同时,不可否认,很多软件和解决方案都非常优秀,但言必称Tailscale/Headscale、Cloudflare Access、Wirguard、WARP,有自己的应用偏好很正常,但非要挑挑毛病,就属于卖弄无知了,简中世界的互联网认知也就这样吧。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: vpn 内网穿透 虚拟专用网络
最后更新:2024年5月28日

老E

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

站内搜索
归档
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 6 月

Copyright ©2023-2025 Appscross. All Rights Reserved.