JA3Proxy
Customizing TLS (JA3) Fingerprints through HTTP Proxy
Usage
Building from source
git clone https://github.com/lylemi/ja3proxy
cd ja3proxy
make
./ja3proxy -port 8080 -client 360Browser -version 7.5
curl -v -k --proxy http://localhost:8080 https://www.example.com
Using docker CLI
docker run \
-v ./credentials:/app/credentials \
-p 8080:8080 \
ghcr.io/lylemi/ja3proxy:latest \
-cert /app/credentials/cert.pem \
-key /app/credentials/key.pem \
-client 360Browser \
-version 7.5
Using docker compose
See compose.yaml
docker compose up -d
CLI usage
Usage of ja3proxy:
-addr string
proxy listen host
-port string
proxy listen port (default "8080")
-cert string
proxy tls cert (default "cert.pem")
-key string
proxy tls key (default "key.pem")
-client string
utls client (default "Golang")
-version string
utls client version (default "0")
-upstream string
upstream proxy, e.g. 127.0.0.1:1080, socks5 only
-debug
enable debug
Perdefined clients and versions
for full list, see: https://github.com/refraction-networking/utls/blob/master/u_common.go
Client |
Version |
Golang |
0 |
Firefox |
55 |
Firefox |
56 |
Firefox |
63 |
Firefox |
99 |
Firefox |
105 |
Chrome |
58 |
Chrome |
62 |
Chrome |
70 |
Chrome |
96 |
Chrome |
102 |
Chrome |
106 |
iOS |
12.1 |
iOS |
13 |
iOS |
14 |
Android |
11 |
Edge |
85 |
Edge |
106 |
Safari |
16.0 |
360Browser |
7.5 |
QQBrowser |
11.1 |
Contribution
If you have any ideas or suggestions, please feel free to submit a pull request. We appreciate any contributions.
If you have any questions or suggestions, please feel free to contact us.