VernetでスマートフォンとノートPCをポケットネットワークスキャナーに
家庭やオフィスのネットワークでサービス障害が発生するたびに、コンソールユーティリティを使ったルーティンが始まります。ターミナルでping、traceroute、nslookupを実行し、ルーターが新しいRaspberry Piボードに割り当てたIPアドレスを思い出そうとします。デスクトップではまだこれで済みますが、phoneしか持っていない場合、サブネットの状況把握が 格段に難しくなります。
最近、Open Society organizationのVernetリポジトリを見つけました。Flutterで書かれたクロスプラットフォームのネットワークスキャナーで、オープンソースコードです。このプロジェクトはシンプルな課題を解決しています:基本的なネットワークユーティリティを、Android、Linux、macOS、Windowsで同様に動作する1つのクリーンなインターフェースにまとめることです。

このアプリでできること
肥大化したオールインワンツール 대신、開発者たちは必須のユーティリティセットを作成しました。
インターフェースはいくつかの画面に分かれています:
| Home | Device List | Open Ports |
|---|---|---|
|
|
|
|
| Ping | DNS | Speed Test |
|---|---|---|
|
|
|
|
Vernetがカバーする主なシナリオは次のとおりです:
- サブネット上のデバイス検索。アプリがローカルアドレス範囲をスキャンし、MACアドレスと機器メーカー名を含む検出されたホストのリストを表示します。
- ポートスキャン。特定のIPアドレスを指定して開いているTCPポートを確認し、Webサーバー、SSH、データベースが起動しているかをすぐに判断できます。
- 現在の接続概要。プログラムがBSSIDを含むWi-Fiパラメータを表示し、外部ISPを識別します。
- 接続診断。ホストping、DNSサーバー クエリ、speedtest.netによる速度測定が含まれています。
プロジェクトの構造
リポジトリはFlutterフレームワークを使用してDartで書かれています。これにより、モバイルとデスクトップの両方のビルドでコードベースが統一されています。
デスクトップでは、アプリでシステム依存関係がたまに必要になります。例えば、Linuxでは適切なARPテーブル収集にnet-toolsパッケージが必要で、そうでなければユーティリティがIPをMACアドレスにマッピングできません。
AndroidビルドはGoogle PlayとF-Droidカタログで配布されています。プロジェクト作者はF-DroidへのFlutterアプリの公開に関する別ガイドを書いており、リポジトリにリンクが残されています。
インストールと実行
Androidでは、アプリをインストールする最も簡単な方法はF-DroidまたはGoogle Playからです。デスクトップクライアントが必要な場合は、バイナリはリポジトリのReleasesタブで利用できます。
Linuxで実行するには次の手順が必要です:
# Устанавливаем net-tools для команды arp
sudo apt install net-tools
# Скачиваем архив из релизов, распаковываем и запускаем
unzip vernet-linux.zip
cd bundle
./vernet
macOSでは、ビルドがまだAppleによる notarizationを受けていないため、最初の起動時にControlキーを押しながらFinderコンテキストメニューからバイナリを開く必要があります。
誰がこのプロジェクト役立つ
Vernetは真剣なセキュリティ監査にWiresharkや詳細なnmapスクリプトを置き換える可能性は低いでしょう。しかし、最近広告、トラッカー、有料サブスクリプション而过負荷になっているFingのようなproprietaryモバイルスキャナーの優れた代替手段です。
Android用の軽量ポケットツールや、ノートPCでの素早いポートとIPチェック用のクリーンなユーティリティが必要な場合は、プロジェクト必ずブックマークする価値があります。ソースコードはApache 2.0ライセンスの下でオープンされているため、Dart開発者はFlutterでの低レベルネットワークコールの実装を確認できます。
関連プロジェクト