SkillAgentSearch skills...

Mubeng

An incredibly fast proxy checker & IP rotator with ease.

Install / Use

/learn @mubeng/Mubeng

README

<h1 align="center"> <br> <a href="#"><img src="https://user-images.githubusercontent.com/25837540/107883163-dbf70380-6f1f-11eb-856f-e69e733313e5.png" width="400px" alt="mubeng"></a> </h1> <h4 align="center">An incredibly fast proxy checker & IP rotator with ease.</h4> <p align="center"> <a href="https://golang.org"><img src="https://img.shields.io/badge/made%20with-Go-brightgreen"></a> <a href="https://goreportcard.com/report/github.com/mubeng/mubeng"><img src="https://goreportcard.com/badge/github.com/mubeng/mubeng"></a> <a href="https://github.com/mubeng/mubeng/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-yellowgreen"></a> <a href="#"><img src="https://img.shields.io/badge/platform-osx%2Flinux%2Fwindows-green"></a> <a href="https://github.com/mubeng/mubeng/releases"><img src="https://img.shields.io/github/release/mubeng/mubeng"></a> <a href="https://github.com/mubeng/mubeng/issues"><img src="https://img.shields.io/github/issues/mubeng/mubeng"></a> </p> <p align="center"> <a href="https://github.com/mubeng/mubeng/blob/master/.github/CONTRIBUTING.md">Contributing</a> • <a href="https://github.com/mubeng/mubeng/blob/master/CHANGELOG.md">What's new</a> • <a href="https://pkg.go.dev/github.com/mubeng/mubeng/pkg/mubeng">Documentation</a> • <a href="https://github.com/mubeng/mubeng/issues/new/choose">Report Issues</a> </p>

Features

  • Proxy IP rotator: Rotates your IP address for every specified request.
  • Proxy checker: Verifies the availability of your proxy IPs.
  • Supports all HTTP/S methods.
  • Compatible with HTTP, SOCKS v4(A), v5, and Amazon API Gateway proxy protocols.
  • Passes all parameters and URIs.
  • User-friendly: Simply run it against your proxy file and select the desired action.
  • Cross-platform: Runs seamlessly on Windows, Linux, Mac, and even Raspberry Pi.

Why mubeng?

It's fairly simple, there is no need for additional configuration.

mubeng has 2 core functionality:

1. Run proxy server as proxy IP rotation

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.

2. Perform proxy checks

So, you don't need any extra proxy checking tools out there if you want to check your proxy pool.

Installation

Binary

Simply, download a pre-built binary from releases page and run!

Docker

Pull the Docker image by running:

▶ docker pull ghcr.io/mubeng/mubeng:latest

Source

Using Go compiler:

▶ go install -v github.com/mubeng/mubeng@latest

— or

Manual building executable from source code:

▶ git clone https://github.com/mubeng/mubeng
▶ cd mubeng
▶ make build
▶ (sudo) install ./bin/mubeng /usr/local/bin

Usage

For 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.

<center> <a href="#"><img alt="kitabisa mubeng" src="https://github.com/user-attachments/assets/3c19e328-cfd7-43f7-bf83-b3996671fc67" width="80%"></a> </center>

Basic

▶ mubeng [-c|-a :8080] -f file.txt [options...]

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. |

<table> <td> <h4>NOTES:</h4> <ul> <li>Rotations are counted for all requests, even if the request fails. <!-- <ul> <li>The rotation is incremental starting at the beginning of the list.</li> <li>Rotation means random, <b>NOT</b> choosing a proxy after/increment from proxy pool. We do not set up conditions if a proxy has been used. So, there is no guarantee if your request reaches the <i>N</i> value <code>(-r/--rotate)</code> your IP proxy will rotate.</li> </ul> --> </li> <li>The proxy server runs asynchronously by default, so it doesn't guarantee that your requests after <i>N</i> (which is <i>N+1</i> and so on) will rotate the proxy IP, instead use the <code>-s/--sync</code> flag to wait for requests to the previous proxy to complete.</li> <li>Daemon mode <code>(-d/--daemon)</code> will install mubeng as a service on the (Linux/OSX) system/setting up callback (Windows). <ul> <li>Hence you can control service with <code>journalctl</code>, <code>service</code> or <code>net</code> (for Windows) command to start/stop proxy server.</li> <li>Whenever you activate the daemon mode, it works by forcibly stop and uninstalling the existing mubeng service, then re-install and starting it up in daemon.</li> </ul> </li> <li>Verbose mode <code>(-v/--verbose)</code> and timeout <code>(-t/--timeout)</code> apply to both proxy check and proxy IP rotation actions.</li> <li>HTTP traffic requests and responses is displayed when verbose mode <code>(-v/--verbose)</code> is enabled, but <ul> <li>We <b>DO NOT</b> explicitly display the request/response body, and</li> <li>All cookie values in headers will be redacted automatically.</li> </ul> </li> <li>If you use output option <code>(-o/--output)</code> to run proxy IP rotator, request/response headers are <b>NOT</b> written to the log file.</li> <li>A timeout option <code>(-t/--timeout)</code> value is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "5s", "300ms", "-1.5h" or "2h45m". <ul> <li>Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", and "h".</li> </ul> </li> <li>The max. errors <code>(--max-errors)</code> ≠ max. retries <code>(--max-retries)</code>.</li> <ul> <li>The max. retries <code>(--max-retries)</code> apply to retrying a failed HTTP request with the same proxy.</li> <li>Meanwhile, max. errors <code>(--max-errors)</code> refer to the total failed HTTP requests from the proxies used.</li> <li>For example, once the max. retries <code>(--max-retries)</code> are reached <i>(if supplied)</i>, the error is counted, and the proxy IP will rotate for the same failed HTTP request until the max. errors <code>(--max-errors)</code> are reached, whereas max. retries <code>(--max-retries)</code> <b>DO NOT</b> trigger a proxy rotation.</li> </ul> <li>If the value of max. errors <code>(--max-errors)</code> is less than <b>0</b> (e.g. <b>-1</b>), rotation will continue indefinitely.</li> </ul> </td> </table>

Install SSL Certificate

mubeng uses built-in certificate authorit

View on GitHub
GitHub Stars2.1k
CategoryDevelopment
Updated1d ago
Forks232

Languages

Go

Security Score

100/100

Audited on Mar 26, 2026

No findings