# nitmproxy **Repository Path**: bondgit/nitmproxy ## Basic Information - **Project Name**: nitmproxy - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-29 - **Last Updated**: 2025-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![Java CI](https://github.com/chhsiao90/nitmproxy/actions/workflows/ci.yml/badge.svg)](https://github.com/chhsiao90/nitmproxy/actions/workflows/ci.yml) # Netty in the Middle An experimental proxy server based on [netty](https://github.com/netty/netty). That want to show how fast the netty is, and how the API design of netty is pretty. ## Start nitmproxy ``` > ./nitmproxy.sh --help usage: nitmproxy [--cert ] [--clientNoHttp2] [-h ] [-k] [--key ] [-m ] [-p ] [--serverNoHttp2] --cert x509 certificate used by server(*.pem), default: server.pem -h,--host listening host, default: 127.0.0.1 -k,--insecure not verify on server certificate --key key used by server(*.pem), default: key.pem -m,--mode proxy mode(HTTP, SOCKS, TRANSPARENT), default: HTTP -p,--port listening port, default: 8080 ``` ## Features ### Support Proxy - HTTP Proxy - HTTP Proxy (Tunnel) - Socks Proxy - Transparent Proxy ### Support Protocol - HTTP/1 - HTTP/2 - WebSocket - TLS ### Support Functionality - Display network traffic - Modify network traffic ## Development ### Coding Style We are using same coding style with netty, please follow the instructions from the [netty#Setting up development environment](https://netty.io/wiki/setting-up-development-environment.html) to setup. ## FAQ ### Android The built-in [Conscrypt](https://github.com/google/conscrypt) in the Android is not compatible with [Netty](https://github.com/netty/netty). The easiest way to fix is to add Conscrypt manually. **Add conscrypt-android dependency** https://search.maven.org/artifact/org.conscrypt/conscrypt-android **Configure Conscrypt SSL provider** ```java config.setSslProvider(Conscrypt.newProvider()); ``` ### For a transparent proxy, how do I port forward HTTP/HTTPS requests? ### Linux ``` sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv6.conf.all.forwarding=1 sysctl -w net.ipv4.conf.all.send_redirects=0 iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination : iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination : ``` See Linux documentation on how to persistent these changes across reboots.