Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在连接不到官方planet时无法只从moon中获取配置 #86

Closed
Tokisaki-Galaxy opened this issue Apr 6, 2024 · 10 comments
Closed
Labels
question Further information is requested

Comments

@Tokisaki-Galaxy
Copy link

您好,您所做的软件对我帮助很大,非常感谢!
我在使用的时候碰到一个问题。我已经阅读了所有开放和关闭状态的Issues,只找到一个处于开放状态的我个人认为似乎有关联的问题
#84

我的网络环境

我校园网阻止了zerotier连接到官方planet服务器,但是可以连接到自行建立的moon服务器。
我连接到校园网的时候是无法连接到官方planet服务器,但是我在电脑上可以通过设立自建的moon服务器来获取配置,正常连接到zerotier网络。
但是我在使用这个软件的时候,我首先设立了peer服务器地址,其状态为cache。其次通过移动数据网络,确认可以正常连接到zerotier上的网络。然后我想通过和电脑客户端一样的办法,断开移动数据网络,使用校园网进行连接。

碰到的问题

在连接到校园网(无法直连到官方planet服务器)的时候,点击启动。首页下面首先是ONLINE状态。
点击打开网络,status显示是Requesting Configuration,在一段时间之后变成Not Connected,并且首页变成OFFLINE。
在电脑官方客户端,这里是可以正常连接的。

客户端中peer显示

peer

我的一点点猜测(瞎猜

似乎是电脑官方客户端可以通过获取到moon服务器地址之后,通过连接到moon服务器与其他LEAF取得通信。
但是在您的软件上,似乎这里没有正常实现,无法通过连接预先缓存的moon服务器来与其他LEAF通信。
我猜测如果不是这个问题,可能是因为 #84 提到的,无法自动尝试连接的问题,因为电脑官方客户端也是有时候需要几次尝试才能连上,但是我手机上多次尝试,并没有成功连接,所以关系可能不大,只是我自己想法罢了。

@Tokisaki-Galaxy
Copy link
Author

客户端中的peer显示
之前上传的图片似乎无法显示,重新上传

@Tokisaki-Galaxy
Copy link
Author

您可能会感兴趣的一些信息。
我在my.zerotier.com上面看到我的手机设备在启动连接后,虽然手机上一直显示请求配置,但是网页显示为LESS THAN A MINUTE,但是随着手机上出现Not Connected和OFFLINE的提示后,my.zerotier.com也提示离线。

@kaaass kaaass added the question Further information is requested label Apr 7, 2024
@kaaass
Copy link
Owner

kaaass commented Apr 7, 2024

感谢报告!从你的截图来看 APP 已经成功连接 Moon 了,但是没有成功获取到网络配置。

考虑到你在使用官方 Controller,可以尝试下把 Moon 节点 join 到你的网络中。如果是用 Docker 建立的 Moon 可以 docker exec 一个 Shell 去 join。

@Tokisaki-Galaxy
Copy link
Author

感谢您的回复。
我两台moon服务器在此之前都是裸机安装官方的安装包,系统环境ubuntu。并且已经作为节点加入到网络之中。
另外问题的复现应该比较好复现,我两台安卓设备在连接到校园网环境下均出现这个问题。如果需要更多配置或者日志我都可以提供。

@kaaass
Copy link
Owner

kaaass commented Apr 7, 2024

Hmmm,关键是能否连接到你 Network ID 前 10 位的那个 Peer。你目前可以在 Peer List 里面看到这个节点吗?如果有的话用的是什么 Path 呢?此外就是你的 Moon 节点机器的 /var/lib/zerotier-one/peers.d 中有没有这个 Peer 对应的文件。

我目前倾向于认为 PC 端会持续尝试连接这个 Peer 直到成功,而 APP 失败多次后就放弃了。但具体还需要我再确认下,以及这个行为对 APP 来说是不是比较合理也值得讨论讨论。

@Tokisaki-Galaxy
Copy link
Author

Tokisaki-Galaxy commented Apr 7, 2024

您所提到的Network ID前10位的节点,我在电脑上可以看到

xxd49af6c2 1.12.2 LEAF      -1 DIRECT   2854     199252   35.209.27.253/35935     #真的见鬼,为啥延时都-1连不上还显示DIRECT

然后手机上在激活链接的时候,peer里面此节点状态是Latency:-1ms,路径是relay。然后在超时后peer里面不再显示任何连接。在激活客户端连接的时候,我可以在Moon服务器里面看到您的客户端的peer文件。但是这个文件似乎好像曾经连接过就会生成,不会自动删除。

另外我发现一些好玩的事情,手机在peer里面显示的信息,无法连接到Network ID 前 10 位的那个 Peer,但是多次尝试有几次可以连接到网络中的其他一个leaf(path为真实IP地址,似乎是直连).

最后,我发现似乎您的客户端里面如果意外断开连接(网络里面是NotConnect),外面显示的依然是绿色,似乎是没有即使更新。私以为如果可以更改为意外断开连接显示灰色会更好些。

@kaaass
Copy link
Owner

kaaass commented Apr 7, 2024

目前看起来应该是和 Controller 的连通性问题了。我的建议是来都来了要不要试试自建 Controller(逃)

如果意外断开连接(网络里面是NotConnect),外面显示的依然是绿色,似乎是没有即使更新

NotConnect 是表示单个网络无法连接,网络列表底部的 ONLINE 是表示能否连接到 Zt 的 VL1 网络(Planet 或 Moon)。不过由于现在同一时间只能连接一个网络所以确实非常迷惑,我想想怎么改改

@Tokisaki-Galaxy
Copy link
Author

Tokisaki-Galaxy commented Apr 7, 2024

非常感谢您的建议。我对这点其实有点困惑,网上关于这方面的资料较少。
我只找到这两个https://docs.zerotier.com/controller/和https://github.com/zerotier/ZeroTierOne/tree/dev/controller。
这几天进行的搜索,其他非官方的渠道只找到了planet,moon方面的,对单独controller方面的说法较少,如果您抽时间解答我几个问题我会非常感谢

  • 能否在使用官方planet服务器后建立自己的controller(因为我看到网上大部分教程都是使用ztncui后自建planet,我因为没有长期稳定IP(云服务器续费太贵了,经常换。另一个理由是因为电脑上没法并存官方和自建planet)不太想自建planet
  • planet和controller不是一体的,能否使用ztncui自建controller,而不使用ztncui的planet(仍使用官方planet,因为看这个好像支持这样做,但是网上没前例)
  • 能否迁移my.zerotier.com上的网络到ztncui上?(感觉九成没可能,但是还想问问)

另外,之前我说的那个

如果意外断开连接(网络里面是NotConnect),外面显示的依然是绿色,似乎是没有即使更新

是指每个网络在首页右侧的那个长得像滑动开关的地方,在意外断开的时候显示仍然是绿色的,即使点进去是NotConnected。不是指首页下面的ONLINE/OFFLINE。

@kaaass
Copy link
Owner

kaaass commented Apr 8, 2024

Planet/Moon 是 Zerotier VL1 层的设施,主要用来辅助 Peer 之间的连接建立。Controller 是 VL2 层的设施,主要用来保存虚拟网的配置。一个虚拟网中的设备首先要接入 VL1 与 Controller 沟通,最后才能接入 VL2 中的一个虚拟网。

  1. 当然可以,不做 Planet 那步就可以。自建 Planet 与官方的其实不互斥,只是目前的工具没写入官方 Planet,所以要改改代码。然而不追求全自建其实没必要建 Planet,Moon 和 Planet 没有区别,用 Moon 就可以。
  2. 和问题 1 一样。ztncui 实际也不会创建 planet,只是部分第三方 Docker 镜像包含了这个功能。
  3. 不行,网络 ID 不可能保持不变。网络配置理论上可以迁移,但是目前也没人写脚本。

是指每个网络在首页右侧的那个长得像滑动开关的地方,在意外断开的时候显示仍然是绿色的,即使点进去是NotConnected

其实没有 “意外断开”。目前开关其实和 PC 端的 Join 是一个意思,因此如果某一个 VL2 虚拟网加入失败,网络的状态虽然会变成 NotConnected,但并不会自动 Leave 网络。此外,只要有任意一个开关是打开状态,VL1 就会保持连接。

不过确实这个逻辑挺反直觉的,尤其是现在只能 Join 一个网络。不过 v1 可能不会有比较大的逻辑调整了,可能改改显示文本。v2 再重新设计下。

@Tokisaki-Galaxy
Copy link
Author

非常感谢您的解答,我去试试自己建立一个Controller,这方面的信息真的挺少的,您回复帮助了我很多。真的非常感谢!!

Repository owner locked and limited conversation to collaborators Apr 8, 2024
@kaaass kaaass converted this issue into discussion #87 Apr 8, 2024

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants