An incredibly fast proxy checker & IP rotator with ease.
An incredibly fast proxy checker & IP rotator with ease.
Contributing • What's new • Documentation • Report Issues
It's fairly simple, there is no need for additional configuration.
mubeng has 2 core functionality:
This is useful to avoid different kinds of IP ban, i.e. bruteforce protection, API rate-limiting or WAF blocking based on IP. We also leave it entirely up to user to use proxy pool resources from anywhere.
So, you don't need any extra proxy checking tools out there if you want to check your proxy pool.
Simply, download a pre-built binary from releases page and run!
Pull the Docker image by running:
▶ docker pull ghcr.io/mubeng/mubeng:latestUsing Go compiler:
▶ go install -v github.com/mubeng/mubeng@latestManual building executable from source code:
▶ git clone https://github.com/mubeng/mubeng
▶ cd mubeng
▶ make build
▶ (sudo) install ./bin/mubeng /usr/local/binFor usage, it's always required to provide your proxy list, whether it is used to check or as a proxy pool for your proxy IP rotation.
▶ mubeng [-c|-a :8080] -f file.txt [options...]Here are all the options it supports.
▶ mubeng -h| Flag | Description |
|---|---|
-f, --file <FILE> |
Proxy file. |
-a, --address <ADDR>:<PORT> |
Run proxy server. |
-A, --auth <USER>:<PASS> |
Set authorization for proxy server. |
| -d, --daemon | Daemonize proxy server. |
| -c, --check | To perform proxy live check. |
-g, --goroutine <N> |
Max. goroutine to use (default: 50). |
--only-cc <AA>,<BB> |
Only show specific country code (comma separated). |
| -t, --timeout | Max. time allowed for proxy server/check (default: 30s). |
-r, --rotate <AFTER> |
Rotate proxy IP for every AFTER request (default: 1). |
| --rotate-on-error | Rotate proxy IP and retry failed HTTP requests. |
| --remove-on-error | Remove proxy IP from proxy pool on failed HTTP requests. |
--max-errors <N> |
Max. errors allowed during rotation (default: 3). |
Use this with --rotate-on-error. |
|
| If value is less than 0 (e.g., -1), rotation will | |
| continue indefinitely. | |
--max-redirs <N> |
Max. redirects allowed (default: 10). |
--max-retries <N> |
Max. retries for failed HTTP requests (default: 0). |
-m, --method <METHOD> |
Rotation method (sequent/random) (default: sequent). |
| -s, --sync | Sync will wait for the previous request to complete. |
| -v, --verbose | Dump HTTP request/responses or show died proxy on check. |
-o, --output <FILE> |
Save output from proxy server or live check. |
| -u, --update | Update mubeng to the latest stable version. |
| -w, --watch | Watch proxy file, live-reload from changes. |
| -V, --version | Show current mubeng version. |
NOTES:
|
mubeng uses built-in certificate authority by GoProxy. With mubeng proxy server running, the generated certificate can be exported by visiting http://mubeng/cert in a browser.
Installation steps for CA certificate is similar to other proxy tools.
For example, you've proxy pool (proxies.txt) as:
|
Because we use auto-switch transport,
mubengcan accept multiple proxy protocol schemes at once.
Please refer to documentation for this package.
Pass --check flag in command to perform proxy checks:
▶ mubeng -f proxies.txt --check --only-cc AU,US,UK --output live.txtThe above case also uses --output flag to save a live proxy of specific country code with --only-cc flag (ISO-3166 alpha-2) into file (live.txt) from checking result.
(Figure: Checking proxies mubeng with max. 5s timeout)
You can customize the output format of the proxy checker using the --output-format flag with fasttemplate syntax:
▶ mubeng -f proxies.txt --check --output-format "{{proxy}} | {{country}} | {{duration}}"Available template variables:
| Variable | Description | Example |
|---|---|---|
{{proxy}} |
Full proxy URL | http://192.168.1.1:8080 |
{{protocol}} |
Proxy protocol scheme | http, https, socks5 |
{{host}} |
Proxy host/IP address | 192.168.1.1 |
{{port}} |
Proxy port | 8080 |
{{ip}} |
External IP address | 203.0.113.1 |
{{country}} |
Country code | US, UK, AU |
{{city}} |
City name | New York, London |
{{org}} |
Organization/ISP | Google Inc. |
{{region}} |
Region/State | California, England |
{{timezone}} |
Timezone | America/New_York |
{{loc}} |
Latitude,Longitude | 40.7128,-74.0060 |
{{hostname}} |
Hostname | example.com |
{{duration}} |
Response time | 245ms |
Examples:
# JSON-like format
▶ mubeng -f proxies.txt --check --output-format '{"proxy":"{{proxy}}","country":"{{country}}","duration":"{{duration}}"}'
# CSV format
▶ mubeng -f proxies.txt --check --output-format "{{proxy}},{{country}},{{city}},{{duration}}"
# Custom detailed format
▶ mubeng -f proxies.txt --check --output-format "[{{country}}] {{proxy}} ({{org}}) - {{duration}}"When using --output-format, the formatted output is applied to both console display and file output (when using -o/--output flag).
Furthermore, if you wish to do proxy IP rotator from proxies that are still alive earlier from the results of checking (live.txt) (or if you have your own list), you must use -a (--address) flag inst
No open issues yet, or sync has not completed.