GlobalPing 入门指南:实战篇! GlobalPing 入门指南:实战篇!

GlobalPing 入门指南:实战篇!

全球 Ping

我们去年(6周前)就介绍过GlobalPing。他们是这样描述自己的:

Globalping 是一个平台,允许任何人对分布在全球各地的探测器运行 ping、traceroute、dig 和 mtr 等网络命令。我们的目标是为所有人提供免费且简单的 API,以便他们构建有趣的网络工具和服务。

这是一个由志愿者在全球各地运行的分布式探测器集合,您可以通过其 API 使用这些探测器来分析和排查网络互联问题。该项目由@jimaek负责,您可能在jsdelivr 项目中见过他。

请注意,您无需使用 GlobalPing 硬件即可参与。您可以在 Docker 容器中运行探测程序——请参阅此处的说明

信封里装的是什么?

我的 GlobalPing 探测器装在一个带衬垫的信封里,从波兰克拉科夫寄到了。以下是里面的物品:

GlobalPing 包

其中包括:

  • GlobalPing 设备,包括已安装的 MicroSD 卡。
  • 一款5V/2A的MicroUSB适配器——包装上写着“树莓派Zero电源适配器”。
  • 一张预装了操作系统的MicroSD卡。我用的是一张Kingson CANVAS Select Plus 32GB的卡。我很难想象他们需要32GB的存储空间,但估计现在这种卡最常见,所以买这种卡比买8GB的卡便宜。
  • 一个欧标电源插头和一个美标插头转换器
  • 一根短网线
  • 指示
  • 贴纸!

注意:我的MicroSD卡在打开包装时就弹出来了。特此提醒——请确保您的卡已完全插入,否则您的设备将无法安装操作系统。

探头是一个密封的金属外壳,一侧贴有 GlobalPing 的标签。外壳尺寸约为 5.5 厘米 x 4.5 厘米 x 3 厘米高(1-3/4 英寸 x 2-1/8 英寸 x 1-1/4 英寸)。我用的是手边现有的布质卷尺,所以这些尺寸只是目测的大概值。

机身顶部有一个可用于更新的 USB 接口。点击此处了解更多信息。机身上没有开关或按钮,只有电源接口、网络接口、MicroSD 卡槽和 USB 接口。

GlobalPing 硬件

完全没必要拆开它,所以我就拆开了。这是一块小板子,上面装了一颗 NEO 512M 芯片。照片拍得不太好,抱歉——我的手机放大不了这么远。GlobalPing 公司把他们的探针描述为“金属外壳的 ARM 架构迷你电脑”。我在网上搜索的时候,在好几个板子上都看到过 Neo 512 这个模块。

GlobalPing 解构

我或许能从另一侧获取更多信息,但底部有个散热片,从侧视图来看,上面涂了导热硅脂。我不想动它,所以就到此为止了。

GlobalPing 探测

这个机箱设计得非常好。主板可以轻松地装卸,而且组装好之后也不会发出任何晃动声。

电源插头丑得像块砖头,换上美规适配器就更丑了。当然,我们不能指望开源软件项目能有苹果级别的定制设计!反正它最后也只能挂在电源插座上,看不见。

GlobalPing 插件

设置

设置很简单:插上电源线和网线即可。说明书上说完全启动大约需要3分钟。

GlobalPing 使用说明

我想知道这台设备在网络中的位置,于是我启动了它,抓取了它的 MAC 地址,然后使用我的 DHCP 服务器为其分配了一个静态 IP 地址。幸运的是,这台设备的客户端 ID 为“globalping-probe-1234”,所以很容易找到。这里的 1234 是 MAC 地址的后四位。

分配完 IP 地址后,我拔掉设备的电源又重新插上,以便识别它。

之后,我按照说明登录了它。你可以无需密码通过 SSH 连接到logs@IP_ADDRESS 。以下是登录后的信息:

 $ ssh [email protected]
无法确定主机“192.168.XX (192.168.XX)”的真实性。
ED25519 密钥指纹为 SHA256:0aM7QP6qbVaJV/4i4oGhf2v6GS18vu9YMArjBlRMkcI。
这个密钥没有其他名称。
您确定要继续连接吗(是/否/[指纹])? 是
警告:已将“192.168.XX”(ED25519)永久添加到已知主机列表中。
无法切换到主目录 /home/logs:没有该文件或目录
正在更新 /etc/ssl/certs 中的证书...
新增 0 项,移除 0 项;完成。
正在运行 /etc/ca-certificates/update.d 中的钩子...
完毕。
正在检查最新版本
当前版本 0.10.1
最新版本 0.10.1
[2023-01-01 19:21:44] [信息] [687] [常规] 以生产模式启动探针版本 0.10.1
[2023-01-01 19:21:45] [调试] [687] [常规] 已建立与 API 的连接
[2023-01-01 19:21:45] [INFO] [687] [api:connect] 已连接(美国,波特兰,北美)(纬度:45.XXXX,经度:-122.XXXX)

当我查看 GlobalPing 的 API 页面时,我看到列出了两个针对俄勒冈州波特兰市的不同探测器:

 [0.10.1] [就绪] 美国俄勒冈州波特兰市,邮编 7922 -- Comcast Cable Communications, LLC
[0.10.1] [就绪] 美国俄勒冈州波特兰市,邮编 54600 -- Peg Tech

我想我应该是第一个,因为我用的是康卡斯特(Comcast)的服务,而其他康卡斯特用户都没有用“Peg Tech”(我之前从没听说过这家公司,而且它的历史相当……丰富多彩)。7922 和 54600 是 ASN(应用服务编号)。如果我的设备有个唯一的标识符就好了,这样我就可以验证它是否正常工作。如果波特兰有很多用户,那很可能很多人都用的是康卡斯特的服务。

这个盒子密封得很好。以下是本地 nmap 扫描结果:

 root@rundeck:~# nmap -p1-65535 192.168.XX
Nmap 7.80 (https://nmap.org) 于太平洋标准时间 2023 年 1 月 2 日 09:53 启动
Nmap扫描报告,目标地址为192.168.XX
主机已启动(延迟 0.00089 秒)。
未显示:65534 个关闭端口
港口  国家服务
22/tcp 打开  SSH
MAC地址:02:3F:30:36:XX:XX(未知)

Nmap扫描完成:扫描了1个IP地址(1个主机在线),耗时3.35秒。

使用 GlobalPing 进行游戏

除了查看日志之外,你实际上无法在设备上进行任何操作,但你可以使用API 。我登录后发现,全球共有 579 个探测器可用。

前十次我尝试使用“波特兰”的位置 ping google.com 时,它都使用了我邻居的 ISP,他的 ISP 是“Peg Tech”(WordPress 会篡改 JSON,抱歉):

 PING google.com (142.250.72.206) 56(84) 字节的数据。
来自 sfo03s21-in-f14.1e100.net (142.250.72.206) 的 64 字节:icmp_seq=1 ttl=113 time=1.60 ms
来自 sfo03s21-in-f14.1e100.net (142.250.72.206) 的 64 字节:icmp_seq=2 ttl=113 time=1.58 ms
来自 sfo03s21-in-f14.1e100.net (142.250.72.206) 的 64 字节:icmp_seq=3 ttl=113 time=1.58 ms

--- google.com ping 统计信息 ---
已发送 3 个数据包,已接收 3 个数据包,丢包率为 0%,耗时 402 毫秒
rtt 最小值/平均值/最大值/标准差 = 1.575/1.585/1.602/0.011 毫秒
{
  "id": "5oNHmcDO4VGdxJN7",
  "type": "ping",
  "状态": "已完成",
  "createdAt": "2023-01-01T19:42:48.316Z",
  “updatedAt”: “2023-01-01T19:42:49.104Z”
  “探针计数”:1,
  “结果”: [
    {
    “探测”: {
    “大陆”: “NA”,
    “地区”: “北美洲”,
    “国家”: “美国”,
    "状态": "或",
    “城市”: “波特兰”,
    "asn": 54600,
    经度:-122.6684,
    纬度:45.5242,
    “网络”: “Peg Tech”
    标签:[],
    解析器:[
      “8.8.8.8,
      8.8.4.4
      ]
    },
    “结果”: {
      "rawOutput": "PING google.com (142.250.72.206) 56(84) 字节的数据。\n来自 sfo03s21-in-f14.1e100.net (142.250.72.206) 的 64 字节:icmp_seq=1 ttl=113 time=1.60 ms\n来自 sfo03s21-in-f14.1e100.net (142.250.72.206) 的 64 字节:icmp_seq=2 ttl=113 time=1.58 ms\n来自 sfo03s21-in-f14.1e100.net (142.250.72.206) 的 64 字节:icmp_seq=3 ttl=113 time=1.58 ms\n\n--- google.com ping 统计信息 ---\n已发送 3 个数据包,已接收 3 个数据包,丢包率 0%,耗时 402 毫秒\nrtt 最小值/平均值/最大值/标准差 = 1.575/1.585/1.602/0.011 毫秒”
      "resolvedAddress": "142.250.72.206",
      "已解析主机名": "sfo03s21-in-f14.1e100.net",
      “时间安排”:[
        {
        "ttl": 113,
        "rtt": 1.6
        },
        {
        "ttl": 113,
        "rtt": 1.58
        },
        {
        "ttl": 113,
        "rtt": 1.58
        }
      ],
      "stats": {
      “最小值”:1.575,
      “最大值”:1.602,
      “平均值”:1.585,
      损失:0
        }
      }
    }
  ]
}

将 ASN 设置为 7922 后,我以为流量来自我的设备。但后来我发现流量来自伊利诺伊州,而 Comcast 也在那里运营。所以我添加了一个城市过滤器,一切就恢复正常了。我的设备日志显示:

 [2023-01-01 19:38:56] [调试] [687] [常规] 已收到 EYTkITWoJw8Fv6nM 的 ping 请求

请注意,GlobalPing表示“我们的项目正在积极开发中,尚未准备好投入生产使用”,所以我们对这个项目还处于早期阶段。

全球探测网络

首先需要注意的是,这 570 个探测器并非全部都是实际的硬件探测器。GlobalPing 可以在 Docker 容器中运行。据@jimaek称,列出的探测器中只有大约 150 个是 GlobalPing 的硬件探测器。

如果要运行 GlobalPing 探测,请点击这里

以下是截至 2023 年 1 月 1 日,根据 API 页面上显示的列表,列出所有拥有 10 个或以上探测器的国家/地区:

  • 美国152号公路
  • RU 61
  • NL 38
  • DE 27
  • GB 26
  • CA 18
  • FR 17
  • PL 16
  • JP 15
  • 13
  • AU 11
  • BR 11
  • SG 11
  • ES 10

以下是截至 2023 年 1 月 1 日 579 个在线站点的完整区域细分:

  • 欧盟288号
  • NA 171
  • AS 83
  • SA 18
  • OC 14
  • AF 5

美国和欧盟占据榜单主导地位,我并不感到意外。俄罗斯位列第二倒是让我有些惊讶。大洋洲的排名除了一个新西兰人之外,其余都是澳大利亚人;非洲的排名除了一个开普敦之外,其余都是约翰内斯堡人。不过,看到如此多元化的全球排名还是很不错的,我相信随着项目的推进,这些排名数字会不断增长并趋于平衡。