# fingerproxy
**Repository Path**: gospider007/fingerproxy
## Basic Information
- **Project Name**: fingerproxy
- **Description**: No description available
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-02
- **Last Updated**: 2025-10-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
A crawler-focused forward proxy with fingerprint spoofing
---
Fingerproxy is a fully featured Golang-based forward proxy app with browser fingerprint spoofing. With just a few lines of code, you can enable powerful fingerprint proxy capabilities. It provides unified support for HTTP/1, HTTP/2, WebSockets protocols.
## The fingerprints used in the project are generated from: [fp](https://github.com/gospider007/fp)
# features
* True forward proxy transmission, implemented no differently from an IP proxy server
* Simultaneous support for HTTP, HTTPS, and SOCKS5 proxy protocols on the same port
* Automatic upgrade to HTTP/2
* Simulate TLS fingerprints, HTTP/2 fingerprints, and Order headers fingerprints
* Parameter configuration via request headers, such as fingerprint settings and proxy settings
* TCP stream compression, supporting zstd, br, gzip, deflate, snappy, minlz, and other algorithms to reduce bandwidth usage
* Request body compression, enforcing server support for zstd, br, gzip, deflate, and other compressed responses to reduce bandwidth usage
# Fingerproxy CLI Usage
| Flag | Description |
| ------------------------ | -------------------------------------- |
| `-mimt-root-cert string` | Path to the MITM root certificate file |
| `-mimt-root-key string` | Path to the MITM root key file |
# headers key table
| headers key |headers value |
| --- | --- |
| `Gospider007-Fingerproxy-Spec` | Browser fingerprint with [fp](https://github.com/gospider007/fp) |
| `Gospider007-Fingerproxy-Proxy` | IP Proxy |
| `Gospider007-Fingerproxy-SpecId` | Fingerprint configuration |
| `Gospider007-Fingerproxy-ForceHttp1` | Force HTTP/1 protocol |
| `Gospider007-Fingerproxy-ForceHttp3` | Force HTTP/3 protocol |
## Gospider007-Fingerproxy-SpecId
| Gospider007-Fingerproxy-SpecId | Browser | Platform |
| --- | --- | --- |
| Chrome_Mac_arm64_137 | Chrome | Mac |
| Firefox_Mac_arm64_140 | Firefox | Mac |
| Safari_Mac_arm64_18 | Safari | Mac |
# quick start
## Installation
### github
```bash
pip install --force-reinstall git+https://github.com/gospider007/fingerproxy.git
```
### gitee
```bash
pip install --force-reinstall git+https://gitee.com/gospider007/fingerproxy.git
```
## Run FingerProxy
```
fingerproxy
```
## Stop FingerProxy
```
fingerproxy_stop
```
## Example Output:
```
listening on: 127.0.0.1:8080
```
## Uninstall
```bash
pip uninstall fingerproxy
```
# Once the server is running on http://127.0.0.1:8080, you can make requests using any HTTP client:
### curl
```bash
curl -k "https://tools.scrapfly.io/api/fp/anything" \
-x "http://127.0.0.1:8080" \
-H "Gospider007-Fingerproxy-SpecId: Chrome_Mac_arm64_137"
```
### python
```python
import requests
proxies = {
'http': 'http://127.0.0.1:8080',
'https': 'http://127.0.0.1:8080',
}
headers = {
'Gospider007-Fingerproxy-SpecId': 'Chrome_Mac_arm64_137',
}
response = requests.get('https://tools.scrapfly.io/api/fp/anything', headers=headers, proxies=proxies, verify=False)
print(response.text)
```
### golang
```go
package main
import (
"crypto/tls"
"fmt"
"io"
"log"
"net/http"
"net/url"
)
func main() {
req, _ := http.NewRequest("GET", "https://tools.scrapfly.io/api/fp/anything", nil)
req.Header.Set("Gospider007-Fingerproxy-SpecId", "Chrome_Mac_arm64_137")
resp, err := (&http.Client{Transport: &http.Transport{
Proxy: func(r *http.Request) (*url.URL, error) {
return url.Parse("http://127.0.0.1:8080")
},
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}}).Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}
```
### nodejs
```js
import axios from 'axios';
const response = await axios.get('https://tools.scrapfly.io/api/fp/anything', {
headers: {
'Gospider007-Fingerproxy-SpecId': 'Chrome_Mac_arm64_137'
},
proxy: {
protocol: 'http',
host: '127.0.0.1',
port: 8080
}
});
console.log(response.data)
```
### php
```php
* WeChat (Chinese): gospider007
## Sponsors
If you like and it really helps you, feel free to reward me with a cup of coffee, and don't forget to mention your github id.
Wechat
|
Alipay
|
## License
This project is licensed under the Mozilla Public License 2.0 (MPL-2.0) with additional author attribution requirements.
See the [LICENSE](./LICENSE) file for details.