Windows向けClumsyの代替ツール
Clumsyは多くの人が最初に見つけるツールで、優れたものです。無料でMITライセンス、対話式で、このツールと同じWinDivertドライバーの上に作られています。必要なことができるなら、それを使ってください。このページは、それではできない場合の話です。
どれを選ぶにしても確かめたいこと
| 質問 | なぜそれがツール選びを左右するのか |
|---|---|
| 1つのアプリケーションだけに当てられますか? | そうでないと、作業中のマシン全体に影響します。リモートセッションも、ドキュメントを読んでいるブラウザも含めてです。 |
| コマンドラインはありますか? | パイプラインはチェックボックスをクリックできません。コマンドラインがなければ、ネットワークテストをビルドに組み込むことはできません。 |
| 実行は再現可能ですか? | 再生できないランダムなパケットロスは、他の人が再現できないバグ報告を生みます。 |
| 自分で止まりますか? | 止め忘れないように覚えておく必要があるツールは、動かしっぱなしにされます。 |
| 実際に何をしたかがわかりますか? | カウンターと接続一覧があれば、「遅く感じた」が数字になります。 |
このツールが提供するもの
- プロセス、PID、アドレス、ポートによる絞り込み。プロセスツリーをたどるので、30個の子プロセスを持つブラウザも1つの対象のままです。
- 同じ実行ファイルがそのままコマンドラインで、あらゆる結果に終了コードがあり、NDJSON出力にも対応しているので、CIで使えます。
- シード付きの実行:同じシードなら、同じランダムなパケットロスとジッターが再生されます。
- 用意済みのプロファイル:3G、LTE、衛星、混雑したカフェ、機内Wi-Fi、56kのダイヤルアップモデム。数値を当てずっぽうで決めず、現実味のある出発点から始められます。
- 時間指定のセッションとスクリプト化されたシナリオ。アプリを見ている間に、劣化の内容が自動で変わります。
- ライブビュー:グラフ、カウンター、どの接続が影響を受けたかを示す接続テーブル。
- 英語、ポーランド語、簡体字中国語のインターフェース。テレメトリは一切ありません。
ほかのツールから来た方へ
この話題になると必ず4つの名前が挙がりますが、互換ではありません。
| ご存じのもの | どんなものか | ここで期待できること |
|---|---|---|
| tcとnetem | Linuxの答えで、カーネルに組み込まれ、コマンドラインで操作します。WANエミュレーションで検索するとよく出てくるものです。 | Windowsには tc がありません。これが精神的に最も近いものです。同じ種類の劣化、終了コード付きのコマンドライン、そしてキューイング規律の代わりのドライバーです。 |
| Clumsy | 同じWinDivertドライバー上の、無料でMITライセンスの、対話式のWindowsツールです。 | ウィンドウとフィルターだけで足りるなら、こちらを選んでください。プロセス単位の絞り込み、シード付きの実行、パイプラインから呼べるコマンドラインが必要なら、こちらへ。 |
| NetLimiter | アプリケーションごとの帯域を恒久的に管理する、商用のWindows製品です。 | 仕事が別物です。これは試験用の計測器で、しばらく入れてから切るものであり、劣化させるのは速度だけではありません。 |
| FiddlerまたはCharles | 通過する通信を検査、書き換え、速度制限できるプロキシです。 | これも別の仕事です。プロキシは自分が中継するものを整形し、データを見ます。これは接続そのものを整形し、UDPやプロキシをまったく通らないものも含みます。 |
端的に言えば、コマンドライン付きで、1つのWindowsアプリケーションのためのネットワークエミュレーターが欲しいなら、探している形のツールはこれです。アプリケーションのデータを読んだり変更したりしたいならプロキシが必要で、Linuxなら、すでにnetemがあります。
ほかのものを使うべきとき
正直に伝えるほうが、がっかりするダウンロードよりも安上がりです。
- LinuxまたはmacOSを使っている。これはWindows専用で、今後もそうです。Windowsのドライバーの上に作られているからです。Linuxでは
tcとnetemが標準的な答えで、追加のソフトウェアは要りません。 - マシン全体の帯域を恒久的に管理したい。アプリケーションごとに、テストではなく製品機能として管理したい場合です。それはNetLimiterのような商用のトラフィック制御ツールの役目です。これは試験用の計測器で、しばらく入れてから切る前提です。
- 管理者権限が得られない。パケットの取得には管理者権限が必要です。これを回避する方法はなく、回避できると謳うツールはあなたの通信を取得していません。
- 回線を劣化させるのではなく、アプリケーションのデータを検査して書き換えたい。それはプロキシの仕事です。