Lựa chọn thay thế Clumsy cho Windows
Clumsy là công cụ hầu hết mọi người tìm thấy đầu tiên, và nó tốt: miễn phí, giấy phép MIT, có giao diện tương tác và xây trên cùng trình điều khiển WinDivert mà công cụ này dùng. Nếu nó làm được điều bạn cần, hãy dùng nó. Trang này nói về những trường hợp nó không làm được.
Cần tìm gì, dù bạn chọn công cụ nào
| Câu hỏi | Vì sao nó quyết định việc chọn công cụ |
|---|---|
| Có nhắm được vào một ứng dụng không? | Nếu không, bạn làm suy giảm cả máy đang làm việc, gồm phiên từ xa và trình duyệt bạn đang đọc tài liệu. |
| Có dòng lệnh không? | Pipeline không bấm được vào ô đánh dấu. Không có dòng lệnh thì một bài kiểm tra mạng không bao giờ thành một phần của bản build. |
| Một lần chạy có lặp lại được không? | Mất gói ngẫu nhiên không phát lại được tạo ra những báo cáo lỗi mà không ai khác tái hiện nổi. |
| Nó có tự dừng không? | Một công cụ cần bạn nhớ tắt sẽ bị để chạy mãi. |
| Bạn có biết nó thực sự đã làm gì không? | Bộ đếm và danh sách kết nối biến “có cảm giác chậm” thành con số. |
Công cụ này mang lại gì
- Nhắm theo tiến trình, PID, địa chỉ hoặc cổng, theo dõi cả cây tiến trình, nên một trình duyệt với ba mươi tiến trình con vẫn chỉ là một mục tiêu.
- Cùng một tệp thực thi chính là dòng lệnh, với mã thoát cho mọi kết quả và đầu ra NDJSON, nên chạy được trong CI.
- Lần chạy có seed: cùng seed phát lại cùng sự mất gói và jitter ngẫu nhiên.
- Cấu hình mẫu có sẵn: 3G, LTE, vệ tinh, quán cà phê đông người, wifi trên máy bay, modem 56k, nên bạn bắt đầu từ thứ đáng tin thay vì đoán số.
- Phiên theo thời gian và kịch bản có sẵn, để sự suy giảm tự thay đổi trong khi bạn theo dõi ứng dụng.
- Chế độ xem trực tiếp: biểu đồ, bộ đếm và bảng kết nối cho thấy kết nối nào đã bị tác động.
- Giao diện bằng tiếng Anh, tiếng Ba Lan và tiếng Trung giản thể, và không có telemetry dưới bất kỳ hình thức nào.
Nếu bạn đến từ công cụ khác
Bốn cái tên luôn xuất hiện khi bàn về chủ đề này, và chúng không thay thế được cho nhau.
| Bạn biết | Nó là gì | Nên mong đợi gì ở đây |
|---|---|---|
| tc với netem | Câu trả lời của Linux, có sẵn trong nhân và điều khiển từ dòng lệnh. Thường là kết quả khi tìm kiếm mô phỏng WAN. | Windows không có tc. Đây là thứ gần nhất về tinh thần: cùng loại suy giảm, dòng lệnh có mã thoát, và một trình điều khiển thay cho bộ lập lịch hàng đợi. |
| Clumsy | Một công cụ Windows miễn phí, giấy phép MIT, có giao diện tương tác, trên cùng trình điều khiển WinDivert. | Hãy chọn nó khi chỉ cần một cửa sổ và một bộ lọc. Đến đây khi cần nhắm theo từng tiến trình, lần chạy có seed và dòng lệnh mà pipeline gọi được. |
| NetLimiter | Một sản phẩm Windows thương mại để quản lý băng thông theo từng ứng dụng, lâu dài. | Một việc khác. Đây là dụng cụ kiểm thử: bật một lúc rồi tắt, và nó làm suy giảm nhiều hơn tốc độ rất nhiều. |
| Fiddler hoặc Charles | Các proxy có thể xem, viết lại và điều tiết lưu lượng đi qua chúng. | Cũng là việc khác. Một proxy định hình thứ nó làm proxy và thấy dữ liệu. Công cụ này định hình chính kết nối, kể cả UDP và mọi thứ không bao giờ đi qua proxy. |
Nói thẳng ra: nếu bạn cần một bộ giả lập mạng cho một ứng dụng Windows, có dòng lệnh, đây là loại công cụ bạn đang tìm. Nếu muốn đọc và sửa dữ liệu ứng dụng, bạn cần một proxy, và nếu dùng Linux thì bạn đã có netem.
Khi nào nên dùng thứ khác
Thành thật về việc này rẻ hơn một lần tải làm người ta thất vọng.
- Bạn dùng Linux hoặc macOS. Đây chỉ dành cho Windows và sẽ luôn như vậy, vì nó xây trên một trình điều khiển Windows. Trên Linux,
tcvớinetemlà câu trả lời chuẩn và không cần phần mềm bổ sung. - Bạn muốn quản lý băng thông lâu dài cho cả máy, theo từng ứng dụng, như một tính năng sản phẩm chứ không phải một bài kiểm tra. Đó là việc của các công cụ định hình lưu lượng thương mại như NetLimiter. Công cụ này là dụng cụ kiểm thử: nó nhằm được bật một lúc rồi tắt.
- Bạn không có được quyền quản trị. Bắt gói tin cần nó. Không có cách nào vòng qua, và công cụ nào nói khác thì không bắt lưu lượng của bạn.
- Bạn cần xem và viết lại dữ liệu ứng dụng thay vì làm suy giảm đường truyền. Đó là việc của proxy.