Windows へのインストール
対応: Windows 10 21H2 以降。リリースバイナリはまだ公開していないため、ソースからビルドします。送信は Npcap のみを使い、GUI での低〜中レート利用を想定しています。高いレートが必要なときは Linux を使ってください。以下のコマンドは PowerShell 用です。
Windows から Linux の検証用ホストに wpg を入れたいだけなら、Windows 上でビルドする必要はありません。リポジトリを手元に用意し (
git clone、または GitHub の「Download ZIP」を展開)、scripts\deploy.batをダブルクリックします。ウィザードが接続先、SSH のユーザとパスワード、sudo パスワード、Web UI の管理者パスワード、送信に使うインタフェースを日本語で聞き、ホスト上で wpg をビルドしてサービスとして入れます。必要なのは Windows 10 / 11 標準の OpenSSH クライアントだけです。デプロイ を参照してください。
1. 前提ソフトウェアを入れる
-
rustup をインストールします (既定の MSVC ツールチェーンを選びます。Visual Studio Build Tools の「C++ によるデスクトップ開発」が無い場合は案内されます)。
-
Npcap をインストールします (既定のオプションのままでかまいません。WinPcap API 互換モードは不要です)。送信に必要です。
-
リポジトリを取得し、セットアップスクリプトを実行します。
git clone https://github.com/SeiyaFunaokaJP/web-packet-generator.git cd web-packet-generator .\scripts\setup.ps1 # -Just を付けるとタスクランナー just も入れるrust-toolchain.tomlで固定した Rust ツールチェーンと WASM ターゲット、scripts\versions.envで固定したバージョンのビルド済みtrunkと Npcap SDK (C:\Npcap-SDKに展開) を入れ、まだ足りないもの (C++ ビルドツール、Npcap) を表示します。PowerShell がスクリプトの実行を拒否する場合はpowershell -ExecutionPolicy Bypass -File .\scripts\setup.ps1で実行してください。SDK は Npcap バックエンド (
pcapfeature) のリンクに必要です。Windows で送信できるのはこのバックエンドだけです。自分で展開した SDK も、scripts\build.ps1がC:\npcap-sdk-<バージョン>(zip の名前のまま。複数あれば新しいもの)、環境変数NPCAP_SDKで指定したディレクトリ、SDK のLib\x64を指すLIBPCAP_LIBDIRから見つけます。SDK が無くてもビルドは成功しますが、できたwpg.exeは送信できず、build.ps1が警告します。 -
任意: Wireshark (
tshark用)。
2. ビルドする
.\scripts\build.ps1 -Release # または: just release
SDK が見つかると ==> Npcap SDK: LIBPCAP_LIBDIR=... と表示し、最後に ==> done: target\release\wpg.exe と表示されます。主な使い方は次のとおりです。
| コマンド | 結果 |
|---|---|
.\scripts\build.ps1 | デバッグビルド (target\debug\wpg.exe)。SDK が見つかれば Npcap バックエンドを組み込む |
.\scripts\build.ps1 -Release | 最適化ビルド (target\release\wpg.exe)。SDK の検出は同じ |
.\scripts\build.ps1 -NoPcap | SDK があっても Npcap バックエンドなしでビルドする (送信不可) |
.\scripts\build.ps1 -Features pcap | Npcap バックエンドを必須にする。SDK が見つからなければエラーで止まる |
Get-Help .\scripts\build.ps1 -Detailed | すべてのパラメータ |
trunk が無いとフロントエンドのビルドは警告付きで省略されます (Web UI は古い、または存在しない crates\wpg-web\dist を配信します)。
3. 権限なしで試す
.\target\release\wpg.exe doctor
.\target\release\wpg.exe render templates\examples\arp-sweep.wpg.yaml -o $env:TEMP\arp.pcapng
4. 送信を許可する
wpg doctor が Npcap をインストール済み (npcap)、Npcap バックエンドを組み込み済み (backend.pcap) と報告することを確認します。backend.pcap が fail なら build.ps1 が Npcap SDK を見つけられていないので、.\scripts\setup.ps1 を実行して (手順 1) ビルドし直してください。Npcap を既定のオプションで入れていれば、通常の PowerShell から送信できます (caps.raw_socket は ok)。「Restrict Npcap driver’s access to Administrators only」を選んで入れた場合は caps.raw_socket が fail になるので、送信するときは 管理者として PowerShell を開いて ください。権限設定 を参照してください。
5. サーバを起動する
.\scripts\run.ps1 # または: .\target\release\wpg.exe serve
既定では 127.0.0.1:8080 で待ち受け、.\templates のテンプレートを読み込みます。ブラウザで http://127.0.0.1:8080 を開き、初回ログイン に進んでください。Windows ファイアウォールが wpg.exe の許可を求めたときは、ローカル以外のアドレスに bind する場合に限り、プライベートネットワークだけを許可してください。
最初のフレームを送る
.\target\release\wpg.exe ifaces
.\target\release\wpg.exe send templates\examples\arp-sweep.wpg.yaml -i <インタフェース> --rate 1000pps
インタフェース名は wpg ifaces の表示 ({GUID}) を使います (tshark -D が表示する \Device\NPF_{GUID} でもかまいません)。Npcap のループバックアダプタ (\Device\NPF_Loopback) は Ethernet フレームを受け付けません (PacketSendPacket failed ... (50))。実ネットワークに出さずに送信を試すときは、Hyper-V の vEthernet (Default Switch) や VMware のホストオンリーアダプタなどの仮想アダプタを使い、wpg capture -i <インタフェース> --backend pcap --include-outgoing か tshark で確認してください。送信してよいのは、自分が所有する、または試験を許可されたネットワークだけです。続けて ARP スイープのチュートリアル に進んでください。
リリースアーカイブと Npcap の確認
リリースアーカイブ (wpg-<version>-x86_64-pc-windows-msvc.zip) には、Web UI と Npcap バックエンドを組み込んだ wpg.exe、サンプルテンプレート、packaging\windows\wpg-service.ps1 が入っています。コード署名はしていません。
# 確認してから、展開前に「インターネットからダウンロードした」印を外す
(Get-FileHash .\wpg-0.2.0-x86_64-pc-windows-msvc.zip -Algorithm SHA256).Hash # SHA256SUMS と比べる
Unblock-File .\wpg-0.2.0-x86_64-pc-windows-msvc.zip
Expand-Archive .\wpg-0.2.0-x86_64-pc-windows-msvc.zip -DestinationPath "C:\Program Files\wpg"
それでも SmartScreen が「Windows によって PC が保護されました」と表示した場合は、一度だけ 詳細情報 → 実行 を選びます。
Npcap は同梱していません (無償版のライセンスでは再配布できません)。wpg.exe は wpcap.dll を /DELAYLOAD でリンクしており、pcap バックエンドを初めて使うときに読み込みます。その際 System32\Npcap を自分で DLL 検索パスに加えるので、Npcap が無くても起動でき、Npcap のどちらのインストールモードでも動きます。wpg doctor と scripts\build.ps1 の両方が確認します。
wpg doctorは、Npcap が無いとnpcapのチェックを失敗にし、Npcap がインストールされているように見えるのにwpcap.dllがSystem32\NpcapにもSystem32にも無いときは警告します。対処の行に https://npcap.com/#download へのリンクが出ます。- Npcap 無しで送信すると、クラッシュせずに
Npcap is not installed; install it from https://npcap.com/#download and run wpg doctorで止まります。 wpg doctorは、wpg.exeが Npcap バックエンドなしでビルドされているとbackend.pcapを失敗にし、SDK を展開してscripts\build.ps1を再実行するよう案内します。- Npcap を管理者専用モードで入れた場合、昇格していないターミナルでは
caps.raw_socketが fail になります。管理者ターミナルで実行するか、そのオプションを外して Npcap を入れ直してください。 scripts\build.ps1もビルドの前に警告を出します。Npcap が無くてもビルドは成功しますが送信はできないため、また Npcap SDK なしでビルドするときも警告します。
起動時に wpg をバックグラウンドで動かす方法は サービスとして動かす を参照してください。