>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Dart

Vernet 将智能手机和笔记本电脑变成口袋网络扫描器

每当家庭或办公网络中的某个服务出现故障时,你就要开始习惯性地使用控制台工具。你在终端里敲 arp -anmap、没完没了的 ping,还要努力记住路由器给新树莓派板子分配的是哪个 IP 地址。在桌面端,你还能勉强应付,但当你手头只有手机时,搞清楚子网情况就变得相当困难了。

我最近发现了 Open Society 组织的 Vernet 代码库。这是一个跨平台的开源网络扫描器,使用 Flutter 编写。该项目解决了一个简单的任务:将基本的网络工具整合到一个简洁的界面中,在 Android、Linux、macOS 和 Windows 上都能正常运行。

Vernet 界面截图

这款应用能做什么

开发者没有打造一个臃肿的万能工具,而是创建了一套精简实用的功能模块。

界面分为多个页面:

| 首页 | 设备列表 | 开放端口 | |---|---|---| | | | |

| Ping | DNS | 速度测试 | |---|---|---| | | | |

以下是 Vernet 主要覆盖的场景:

  • 在子网中查找设备。应用会扫描本地地址段,显示已发现主机的列表,包含 MAC 地址和设备制造商名称。
  • 端口扫描。你可以指定特定 IP 地址并检查开放的 TCP 端口,快速判断 Web 服务器、SSH 或数据库是否在线。
  • 当前连接概览。程序显示 Wi-Fi 参数,包括 BSSID,并识别外部 ISP。
  • 连接诊断。包含主机 Ping、DNS 服务器查询,以及通过 speedtest.net 进行速度测试。

项目结构

代码库使用 Dart 语言和 Flutter 框架编写。这使得移动端和桌面端的代码库保持统一。

在桌面端,应用有时需要系统依赖。例如,在 Linux 上需要 net-tools 包才能正确收集 ARP 表,否则该工具将无法将 IP 映射到 MAC 地址。

Android 版本通过 Google Play 和 F-Droid 目录分发。项目作者甚至编写了单独的指南来说明如何将 Flutter 应用发布到 F-Droid,并在代码库中留下了链接。

安装和运行

在 Android 上,安装应用最简单的方式是从 F-Droid 或 Google Play 下载。如果你需要桌面客户端,可以在代码库的 Releases 标签页下载二进制文件。

在 Linux 上运行需要以下步骤:

# Устанавливаем net-tools для команды arp
sudo apt install net-tools

# Скачиваем архив из релизов, распаковываем и запускаем
unzip vernet-linux.zip
cd bundle
./vernet

在 macOS 上,构建版本尚未经过 Apple 签名认证,因此首次启动时需要按住 Control 键,通过 Finder 右键菜单打开二进制文件。

谁会发现这个项目有用

Vernet 不太可能取代 Wireshark 或复杂的 nmap 脚本来进行严肃的安全审计。但对于那些充斥着广告、追踪器和付费订阅的专有移动扫描器(如 Fing)来说,它是一个很好的替代品。

如果你需要一个轻量级的口袋工具用于 Android,或者需要一个简洁的实用程序来快速检查端口和 IP,这个项目绝对值得收藏。源代码采用 Apache 2.0 许可证开源,因此 Dart 开发者可以参考其中 Flutter 底层网络调用的实现。

相关项目