Comments (3)
Hi there!
If you have a draft PR ready, please just send it. It's easier to talk about concrete code (even if not finished/polished) than hypothentical changes.
Generally speaking, mitmproxy's current design does not lend itself very well to simulating bad network conditions. Most proxy modes are based on regular sockets, so it's hard to drop or delay individual packets. With WireGuard mode it's maybe a bit different, but I feel that could/should maybe be a completely separate project? Again, if you have a simple proof of concept let's look at that and take it from there. 😃
from mitmproxy.
Hi there! 你好呀!
If you have a draft PR ready, please just send it. It's easier to talk about concrete code (even if not finished/polished) than hypothentical changes.如果您已准备好 PR 草稿,请直接发送。谈论具体代码(即使尚未完成/完善)比假设的更改更容易。
Generally speaking, mitmproxy's current design does not lend itself very well to simulating bad network conditions. Most proxy modes are based on regular sockets, so it's hard to drop or delay individual packets. With WireGuard mode it's maybe a bit different, but I feel that could/should maybe be a completely separate project? Again, if you have a simple proof of concept let's look at that and take it from there. 😃一般来说,mitmproxy 当前的设计不太适合模拟恶劣的网络条件。大多数代理模式都基于常规套接字,因此很难丢弃或延迟单个数据包。使用 WireGuard 模式可能有点不同,但我觉得这可以/应该是一个完全独立的项目?再说一次,如果您有一个简单的概念证明,让我们看看并从那里开始。 😃
Thank you for your prompt response and valuable feedback.
I'm glad to inform you that I have already implemented this feature in my customized version, and it's working well. It's important to note that the implementation is at the network layer rather than the application layer, which allows for packet-level simulation.
I understand your concerns about the complexity of simulating bad network conditions within the current design of mitmproxy. However, with the network layer implementation, we can create a more realistic simulation that could prove useful for developers and testers.
I will make time to prepare a draft PR with the current implementation for you to review. Looking forward to your feedback.
Best,
from mitmproxy.
Awesome, thanks. Feel free to just dump non-working stuff in a PR that illustrates what you are doing, I don't need a polished PR to evaluate. :)
from mitmproxy.
Related Issues (20)
- Constant exceptions in callback StreamReaderProtocol.connection_made... at asyncio.streams.py when using transparent mode HOT 11
- `Couldn't parse: falling back to Raw` for empty JSON array HOT 4
- AttributeError: 'ClientPlayback' object has no attribute 'options' HOT 2
- Mitmdump: invalid mode specification HOT 3
- QUIC Connection Migration HOT 3
- mitmproxy crashed error after application connects to a websocket
- mitmdump can't handle example.com? HOT 6
- mitmproxy crashes when starting HOT 3
- mitmdump reverse-proxied WebSockets leak memory HOT 5
- mitmproxy crashes while handling the Discord gateway HOT 1
- Allow arbitrary replay concurrency (client_replay_concurrency other than 1 and -1) HOT 2
- Wrong host displayed in mitmweb intercepted request
- Unable to `brew install mitmproxy` on MacOS HOT 2
- Tutorial audio is not working HOT 2
- CONNECT request triggers `response` hook HOT 2
- Support custom wireguard options HOT 1
- Transparent proxy not working on macOS HOT 1
- HTTP Request with Client Certificate doesn't work with IIS server (but works properly with other vendors)
- Console Freezes on Incorrect Timestamps in Flows HOT 3
- Duplicate answers in DNS queries HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mitmproxy.