Bean Network Tester

只針對一個應用,而不是整台機器

沒有目標時,電腦上的每個連線都會受影響,包括你正在使用的遠端桌面,以及用來下載修復程式的下載。有了目標,只有一個處理程序會得到糟糕的網路,其他一切照常進行。

按處理程序

在Process中輸入一個名稱,或者傳入 --target。僅寫名稱時按片段匹配,所以 chrome 會匹配 chrome.exe:

BeanNetworkTester.exe --loss 10 --target chrome.exe

它會跟隨處理程序樹,這對會派生子處理程序的程式很重要:瀏覽器為每個分頁開啟一個處理程序,這些處理程序也會受到影響。

這個欄位可以接受不止一個名稱,也可以同時接受不止一種內容:

你輸入的內容含義
chrome.exe,firefox.exe兩個應用。
chrome,!chromedriverChrome,但絕不包括驅動程式。排除優先。
my*.exe所有以「my」開頭的程式。
re:^node\.exe$正規表示式,用於萬用字元不夠用的情形。
4812單一處理程序 ID。
>1000所有大於 1000 的處理程序 ID。

按位址或連接埠

有時關注的單位不是應用,而是某一台伺服器。這些參數接受同樣的列表、範圍和排除語法,並支援 CIDR 和 IPv6:

BeanNetworkTester.exe --latency 300 --dst-ip 10.0.0.0/24 --dst-port 443
BeanNetworkTester.exe --loss 20 --dst-port "!53"

第二條值得了解:除 DNS 之外的所有流量。把目標排除某個連接埠,往往比列出你想要的那些連接埠更容易。

按名稱指定處理程序,在它重啟後依然有效

在會話執行期間重啟應用,按名稱指定的目標會重新找到新處理程序。按處理程序 ID指定的目標則做不到,因為那個 ID 屬於已經結束的處理程序。Windows 之後把同一個 ID 分配給的另一個程式同樣不會受到影響。如果你的測試會重啟被測物件,請按名稱指定目標。

不應忽視的警告

在開啟影響、沒有可瞄準的目標且沒有時間限制的情況下啟動,視窗和命令列都會提示:這會影響這台機器上的每個連線。這是警告,而不是拒絕,有時這正是你想要的。如果不是,請設定目標或 --duration,而STOP始終會把一切恢復原狀。

接下來

準備好故意搞壞自己的網路了嗎?

下載 Windows 版