ZeroTier と Tailscale を使用すると、リモート アクセスが非常に簡単になるため、イントラネットへの浸透を実現するための仮想ローカル エリア ネットワークを簡単にセットアップできます。

最近 Plex を使用したため、リモート アクセスについて勉強しました。いくつか迷った後、基本的に理解できました。ここでは、私のような初心者のために、私自身の経験の一部を共有したいと思います。間違っていたらご指摘ください。

ここでいうリモートアクセスとは、LAN外部のネットワークを介してLANにアクセスし、画面共有ファイル共有リモートデスクトップリモートオンラインなどを実現することを指します。例えば在宅勤務の場合、どこからでも職場や自宅のパソコンにアクセスでき、ファイル転送だけでなく、パソコンの遠隔操作や画面共有も可能で、例えば自宅にNASサーバーを設置すれば、どこからでもリモート アクセス NAS 上のコンテンツにアクセスします。たとえば、LAN 内にプライベート オーディオビジュアル メディア ライブラリを構築した場合、リモート アクセスを通じてローカル デバイスに保存されているオーディオとビデオをどこからでも視聴できます。たとえば、別の場所にいる友達とオンライン ゲームをプレイすることができます。

リモート アクセスを実現するには、パブリック ネットワーク IP を使用する場合パブリック ネットワーク IP を使用しない場合の 2 つの状況があります。

パブリック ネットワーク IP がある場合、リモート アクセスは非常に簡単です。パブリック ネットワーク IP を介して直接アクセスでき、指定したコンテンツにアクセスするには指定したポートを追加するだけです。

ただし、グローバルな IPv4 リソースが枯渇しているため、私の国のホーム ブロードバンドには通常、プライベート ネットワーク IP が割り当てられています。パブリック ネットワーク IP が必要な場合は、オペレータに申請できます。以前は比較的簡単に申請できたかもしれませんが、現在は比較的困難です。四川電信を例に挙げます。2022 年以降、無料のパブリック IP は提供されなくなりました。パブリック IP が必要な場合は、一定の条件を満たし、ダイナミックなパブリック IP を楽しむために月額 100 元のサービス料金を支払う必要があります。 IPサービス。もちろん、各地の通信事業者のサービスには違いがありますので、まずはご自身の通信事業者に無料の公衆ネットワークIPを申請してみてください。申請が成功したら、光モデムをブリッジモードに変更し、回線をオフにしてください。 DHCPサービスと光モデムの無線ネットワークにより、ルータを使用してダイヤルアップしてインターネットにアクセスすることで、公衆網IPを介して直接リモートアクセスが可能になります。

ネットワークが IPv6 をサポートおよび有効にしており、ルーターも IPv6 をサポートしている場合は、ルーターの IPv6 機能を有効にすることができ、IPv6 を使用して取得された IP アドレスはパブリック ネットワーク IP になりますが、ほとんどのルーターが IP アドレスを使用していないという問題があります。自己構成ファイアウォールは、IPv6 リモート アクセスを自動的にブロックします。つまり、ルータの IPv6 制限を解除できない場合、IPv6 パブリック IP は役に立ちません。ルータ ファイアウォールの問題を解決するには、ファームウェアをフラッシュする必要がある場合があります。すべてのルータがこれをサポートしているわけではないため、この方法は実際にはより面倒です。あるいは、IPv6 ファイアウォールをオフにすることをサポートするルータを直接選択することもできます。ただし、現在はIPv6が普及しておらず、IPv6をサポートしていないルーターや端末も多いため、利用には制限がかかることになります。

非常に一般的な、パブリック ネットワーク IP がない状況について話しましょう。パブリック ネットワーク IP を使用せずにリモート アクセスを実現する方法は数多くありますが、今日は主に、完全に無料で無制限のイントラネット侵入ソリューションを 2 つ紹介します。

ZeroTier または Tailscale を通じてイントラネットへの侵入が可能であり、仮想 LAN/ネットワークを簡単に確立できます。つまり、任意の場所および任意のネットワークから複数のデバイスを仮想 LAN/ネットワークに追加でき、この仮想 LAN/ネットワークの下にこれらのデバイスが追加されます。デバイスの物理的な場所が制限されないため、LAN イントラネットのすべての機能を実現できます。そのため、リモート アクセスが実現され、異なるネットワーク上のデバイスは、この仮想 LAN/ネットワークを介して直接通信でき、伝送速度は、デバイス独自のネットワーク帯域制限により通信が制限される場合は、ZeroTierのサーバーや自社構築のクラウドサーバーを経由して転送することも可能です。

次に、ZeroTier と Tailscale のそれぞれの操作手順について説明します。

ゼロティア

01. ZeroTier公式 Web サイトアカウントを登録します。

02. 登録されたメールボックスに移動して確認メールを確認し、確認します

03. 確認後、前の Web ページを更新して、ZeroTier Central管理センターに入ります

04. 「ネットワークの作成」をクリックして仮想ネットワークを作成します

05. 作成が完了すると、次のインターフェイスが表示されます。赤いボックスは、仮想ネットワーク ID であるネットワーク ID です。他のデバイスが仮想ネットワークに参加するには、この ID が必要です。赤いボックス内の任意の場所をクリックして、ネットワーク設定

06.赤いボックス内の仮想ネットワークの名前を変更します。カスタマイズすることも、変更する必要はありません。デフォルトはプライベート プライベート ネットワークです。ネットワークに参加するには認証が必要です。デフォルトのままにしてください。次の IPv4 自動割り当てでは、仮想ローカル エリア ネットワークの IP アドレス ネットワーク セグメントを選択できます。仮想ローカル エリア ネットワークに参加する各デバイスには、このネットワーク セグメント内の仮想 IP アドレスが割り当てられ、各デバイスはこの仮想 IP アドレスを使用して、このネットワーク セグメントをデフォルトのままにすることも、自分で選択することもできます。

この時点で、仮想ローカル エリア ネットワークが設定されているので、デバイスを追加できるようになります。

07. 「ダウンロード ページ」を右クリックして新しいタブを開き、デバイス用のクライアントをダウンロードし、オペレーティング システムに応じてダウンロードしてインストールするクライアントを選択します(iOS ユーザーは App Store で直接検索、ダウンロード、インストールできますが、これには米国地域のアカウントが必要です。Android ユーザーはインストール パッケージを検索して自分でダウンロードしてインストールできます。デバイス上のアプリは ZeroTier One と呼ばれます)

08. デバイスにログインする必要はなく、アプリも非常にシンプルで、各システムの操作は基本的に同じです。MacOS を例にとると、 ZeroTier を実行すると、メニュー バーにアイコンが表示されますにネットワーク ID をコピーして貼り付け、「参加」をクリックする接続されます。切断する場合は「切断」をクリックするか、プログラムを直接終了してください

以 iOS 为例,打开 ZeroTier One 后点击右上角的加号,点击「Accept」,将 Network ID 粘贴过来,点击打开「Enable Default Route」后面的开关,点击「Add Network」,虚拟网络就添加成功了,点击该网络后面的开关即可开启或关闭虚拟局域网,开启后顶部状态栏上会显示「VPN」图标。(过程中可能会请求系统授权,同意即可)

09. 如果你想邀请其他人加入你的虚拟局域网,和他人的设备进行文件共享或远程访问,只要请他们在设备上安装 ZeroTier 或者 ZeroTier One 的客户端,然后参考上面的方式直接通过你的虚拟局域网 ID 即可加入你的虚拟局域网,你也可以继续添加自己的其他设备,每个虚拟局域网最多可以添加 25 个设备

10. 注意上方设备加入虚拟局域网后需要经过管理员也就是虚拟网络创建者的授权才可以进行访问,进入 ZeroTier Central 管理中心在 Members 部分可以看到已经加入网络的设备,设备前方显示红色虚线表示未对其授权,该设备无法访问虚拟局域网内的其他设备,点击勾选设备前方的方框可对其进行授权,授权后的设备前方显示绿色实线,扳手后方是设备的虚拟地址,可在「Name/Description」处为设备修改名称,后方的「Managed IPs」是设备在虚拟局域网内的虚拟内网 IP 地址,设备之间互相访问就是使用这个虚拟内网 IP 地址,支持指定 IP,一般使用默认即可,后方是上一次访问的时间,最后是物理 IP 地址。

11. 以上图为例,在我授权 iPhone8 访问虚拟局域网后,假如我在局域网外要通过 iphone8 访问 iMac 的共享文件夹,只要使用 iphone8 在「文件」App 里通过 smb://192.168.195.173 连接服务器即可;如果我想访问 iMac 上的 Plex 服务器只要在浏览器访问 192.168.195.173:32400 即可;如果我想使用远程桌面操控家里的 iMac 只要在 iPhone8 打开 VNC Viewer 使用 192.168.195.173 连接这台 iMac 即可。总之你在局域网里能做的大部分工作通过虚拟局域网都可以实现,我这里用的是 iPhone,当然你也可以使用电脑或其他设备访问虚拟局域网内的设备,前提是设备开启了共享和远程访问。

同时 ZeroTier 也为有更多需求的用户提供了付费服务。

Tailscale

01. Tailscale 仅支持通过谷歌微软GitHub 账号授权登录,建议使用 GitHub 账号登录,若没有请先注册一个 GitHub 账号(微软账号可能需要用手机注册),然后登录 Tailscale。

02. 登录后为如下界面,请根据自己的操作系统下载并安装客户端。(MacOS 及 iOS 需要美区账号,安卓用户可自行搜索安装包下载安装)

03. 安装完成后请运行 Tailscale 客户端,点击「Get Started」,点击「Sign in to your network」,跳转网页登录你的账号,返回客户端点击「Yes, start on log in」,意思是开机启动,如果不需要开机启动请选择「No, I will manually start Tailscale」,在有需要的时候手动开启客户端,现在你的设备就已经成功加入你的虚拟网络了,点击「Close」关闭窗口,你会在菜单栏看到 Tailscale 图标。

04. 此时回到引导设置页,设备已经出现在右侧了,前方是设备名称,后方是虚拟 IP 地址,Tailscale 是无需手动配置的,设备安装客户端并登录后会自动加入虚拟组网,接下来继续在其他需要远程访问的设备上安装客户端并登录即可。

以 iOS 为例,打开客户端点击「Get Started」登录你的账号,使用 GitHub 授权,登录后界面最上方是启用和关闭按钮,就是虚拟组网的开关,跟着是本机的名称和虚拟 IP,下方显示的是你的其他设备,格式也是名字在上,虚拟 IP 在下,接下来就可以通过其他设备的虚拟 IP 进行远程访问了。

05. MacOS 通过菜单栏的图标可进行操作,最上面是虚拟组网的开关,跟着显示的是当前登录的账号,点击Admin Console」可进入网页版管理中心,可以查看连接设备名称、虚拟 IP、操作系统、连接状态等信息,点击设备可以对其详情进行查看和管理。在菜单栏图标点击 Network Devices - My Devices 也可查看虚拟组网接入的设备,点击设备名称可直接复制设备的虚拟 IP。

06. 若要与他人共享自己的设备请将鼠标移至设备最后方的三个小圆点上,会出现「Share…」按钮,点击弹出分享窗口,点击「Generate & copy invite link」可生成邀请链接,将链接发送给你的好友,好友接受邀请后你的这台设备就会出现在他的虚拟组网里,他就可以单向访问你的这台设备了,如果要实现双向访问你还需要通过他的设备的邀请链接将他的设备加入你的虚拟组网。(每个访问虚拟组网的设备都需要安装客户端并登录账号,每个虚拟组网初始最多可接入20个设备,每邀请一个人双方都会增加两个设备位)

07. 上面讲到的都是给每个设备分配一个虚拟 IP,然后互相访问,如果在外面想访问本地局域网的设备还有一个方式,可以使用局域网内的一台设备做虚拟网关,设置一个虚拟路由,将你的本地局域网作为这个虚拟网关的子网,这样就可以通过虚拟网关访问本地局域网的所有设备,直接通过你的本地 IP 访问即可,就不需要为每个设备都安装客户端加入虚拟组网了。

不过这个设置有一点小门槛,如果对网络不太懂,可能设置起来会有些困难,但官方也有相应的指导说明,除此之外 Tailscale 还有很多高级功能和付费功能。对于个人用户来说,一般免费版本就可以满足需求了,如果是机构或者企业也可以选择付费的版本。

文章写的有点长,其实操作是非常简单的,ZeroTier 和 Tailscale 都是非常好的内网穿透解决方案,他们的原理都是搭建一个虚拟网络设备经过授权连接到这个虚拟网络后就可以互相访问就像在同一个局域网内一样。但实际上 ZeroTier 和 Tailscale 使用的技术并不相同,操作方式上也略有差别。

ZeroTier 只有虚拟网络创建者需要用账号登录,要访问虚拟网络的设备都需要安装客户端但不用登录;每个注册用户可以创建的虚拟网络没有上限,但每个虚拟网络最多只可接入 25 个设备;虚拟网络的管理员可以查看所有接入设备的信息,并对其进行管理,而接入网络的其他设备除了网络 ID 是无法获取虚拟网络的其他信息的;访问虚拟网络接入的其他设备需要管理员告知其他设备的虚拟 IP 并对其进行授权;数据传输正常情况下是两个设备直接加密通信,但是如果网络情况不好或者受到其他限制可能会通过 ZeroTier 服务器进行中转,如果不想使用 ZeroTier 的服务器也可以使用其他服务器进行中转。

Tailscale 的每个用户都需要使用账号登录,每个账号登录后会自动创建一个虚拟网络,不支持新建虚拟网络;使用账号登录后会自动加入虚拟网络,每个虚拟网络初始可添加 20 个设备,但是每邀请一个设备加入自己的网络就会新增 2 个设备位;支持一个虚拟子网,可把一个局域网设置为虚拟子网,这个局域网内的所有设备可以访问虚拟网络但不需要安装客户端也不用登录账号;如果是自己的设备可以直接通过虚拟 IP 互相访问,若要访问他人的设备需要通过邀请链接将他人的设备加入自己的虚拟网络,同理要把自己的设备共享给别人也需要通过邀请链接把自己的设备分享出去;数据传输是两个设备直接加密通信,也可以自建中转服务器。

简单说,如果自己个人使用,用 Tailscale 给自己的每个设备安装客户端并登录就可以了,用 ZeroTier 还需要给每个设备添加虚拟网络,但也不算麻烦;如果只是偶然需要与他人进行远程共享,使用 ZeroTier 只要对方安装客户端再添加虚拟网络就可以互相访问了,而 Tailscale 需要对方先注册账号,再通过你的邀请链接加入你的虚拟组网,这样对方才可以访问你的设备,如果你要访问他的设备还需要对方再邀请你加入他的虚拟组网,其实有点麻烦。

专业的术语我不太懂,但就使用体验上来看,ZeroTier 应该是搭建了虚拟局域网,所有设备的虚拟 IP 都在同一个网段,接入虚拟局域网的所有设备都可以使用虚拟 IP 互相访问,因为设备是不需要登录的,所以经过授权设备就直接进入虚拟局域网了。而 Tailscale 搭建的是虚拟组网,每个设备的虚拟 IP 都在不同的网段,但在同一个虚拟组网内的设备可以互相访问,可是 Tailscale 的分享邀请是单向的,因为每个账号都有一个独立的虚拟网络,我把我的设备分享给对方后,我的设备就被添加到了对方的虚拟网络中,但是对方的设备并不会出现在我的虚拟网络里,所以他可以通过他的虚拟网络访问我共享的设备,但是我无法访问他的设备,需要对方邀请后才可以将对方的设备加入我的虚拟网络。

这个差异你也可以说 Tailscale 更安全,你也可以说他更麻烦。因为虽然加入 ZeroTier 的虚拟局域网可以访问网内的所有设备,但是设备的虚拟 IP 只有管理员知道,即使邀请他人加入虚拟局域网,对方也不会知道虚拟局域网内其他设备的虚拟 IP,他甚至都无法查看他自己的虚拟 IP,一切权限都在管理员这里,如果只想让对方访问某个特定的设备只要给其他设备取消授权就万无一失了。加入他人虚拟网络的这一方如果不想对方访问自己的设备或某些内容,只要关闭这些内容的共享功能即可。

相比之下提到安全只能说在传输方式上 Tailscale 更安全,因为你的数据是完全不会经过 Tailscale 服务器的,而 ZeroTier 是有可能的,但是如果你使用其他服务器进行中转,那么这两个也没有太大的区别。关于稳定性方面,因为本人没有测试环境,所以无法提供信息,初步感受没有太大差别。

总而言之,这两个都挺好的,ZeroTier 比较方便与他人共享Tailscale 相对更加安全,也许可以这样理解吧,使用体验差别不算太大,都是不限流、不限速的,即使是用于 4K 视频的串流也完全不卡,而且是免费的,相较一些收费的内网穿透工具,我觉得这两个还是很不错的选择。

おすすめ

転載: blog.csdn.net/u010567698/article/details/128742538
おすすめ