42

I am looking for tools for Windows that can act as a reverse-proxy in front of a server to introduce various networking issues like jitter, delays, or packet loss.

My preference is a software solution that will work on Windows. Httpd mod_proxy doesn't appear to support such a configuration, and googling for a tool in this category is proving fruitless.

Scott Markwell
  • 742
  • 1
  • 6
  • 13

3 Answers3

58

I find clumsy wonderful :

http://jagt.github.io/clumsy/index.html

clumsy makes your network condition on Windows significantly worse, but in a managed and interactive manner.

enter image description here

Calvin1602
  • 696
  • 6
  • 5
  • This this is awesome, no install or drivers. Many other solutions either didn't work and required installing network drivers. – FarFigNewton May 02 '14 at 15:46
  • Clumsy is great, but it only lets you put a max lag time of 3000ms which isn't great. I need a tool that can let me simulate terrible Internet connectivity. – Mr Pablo Jul 21 '15 at 12:40
  • 4
    @MrPablo Just build it yourself then... See https://github.com/jagt/clumsy/blob/master/src/lag.c – Calvin1602 Jul 21 '15 at 13:08
  • I'm sure there are uses for this tool, but in my case of trying to test a WebSocket based application, it simply did not work. Still looking for a good tool to help with that specific use case. – Josh Feb 06 '18 at 01:16
  • for whatever reason the lag specified does not reflect the actual lag that gets up to 20-30, no matter if I put 3000 in the lag field. It still gets worse though but not as much as I want – Martin Asenov May 20 '18 at 12:35
  • So this tool can delay, drop, rearrange, and even _tamper_ with all network packets without even requiring an install or proxy setup? Is that... alarming to anyone else? – kdbanman Apr 07 '21 at 21:34
  • It does still rely on a kernel driver. The program uses WinDivert, and per [WinDivert's docs](https://www.reqrypt.org/windivert-doc.html#installing) "[t]he WinDivert driver is automatically (and silently) installed on demand whenever your application calls WinDivertOpen(). The calling application must have Administrator privileges." – Shane Spoor Feb 09 '22 at 08:24
2

If you're just testing how your app will repsond to ill-behaved networks, you could do worse that fire up a linux box in front of it with Wansim - I know, you wanted something ON the windows box... but probably doing the delayage there is an unfair test, as you've already bypassed a bunch of the stuff that is under test (eg how the OS & hardware handles packet loss).

I think you're not going to find web proxies to induce this sort of nastiness - far too high level.

Apologies if "testing your app's resilience" is not what you are after... thought i'd make an assumption rather than ask and forget to reply ;)

Tom Newton
  • 4,141
  • 2
  • 24
  • 28