# Mubeng | Fast Proxy Checker and IP Rotator Tool

**URL:** <https://onehack.st/t/mubeng-fast-proxy-checker-and-ip-rotator-tool/200664>\
**Category:** Tools & Scripts\
**Tags:** tools, privacy, freebies\
**Created:** [September 8, 2021, 10:51am UTC](https://onehack.st/t/mubeng-fast-proxy-checker-and-ip-rotator-tool/200664 "2021-09-08T10:51:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Astrid](https://onehack.st/user_avatar/onehack.st/astrid/32/174869_2.png) [@Astrid](https://onehack.st/u/Astrid)\
**Post date:** [September 8, 2021, 10:51am UTC](https://onehack.st/t/mubeng-fast-proxy-checker-and-ip-rotator-tool/200664/1 "2021-09-08T10:51:39Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/e/9/e9f73d62502be4dbca1daa140471feb91a1b0a60.jpeg)

# Features

- **Proxy IP rotator** : Rotates your IP address for every specific request.
- **Proxy checker** : Check your proxy IP which is still alive.
- **All HTTP/S methods** are supported.
- **HTTP & SOCKSv5** proxy protocols apply.
- **All parameters & URIs are passed**.
- **Easy to use** : You can just run it against your proxy file, and choose the action you want!
- **Cross-platform** : whether you are Windows, Linux, Mac, or even Raspberry Pi, you can run it very well.

# 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](https://github.com/kitabisa/mubeng/releases) and run!

## Docker

Pull the [Docker](https://docs.docker.com/get-docker/) image by running:

▶ docker pull kitabisa/mubeng

## Source

Using [Go _(v1.15+)_](https://golang.org/doc/install) compiler:

▶ GO111MODULE=on go get -u ktbs.dev/mubeng/cmd/mubeng

**NOTE:** The same command above also works for updating.

### — or

Manual building executable from source code:

▶ git clone [https://github.com/kitabisa/mubeng](https://github.com/kitabisa/mubeng) ▶ cd mubeng ▶ make build ▶ (sudo) mv ./bin/mubeng /usr/local/bin ▶ make clean

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

## 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. |
| -d, --daemon | Daemonize proxy server. |
| -c, --check | To perform proxy live check. |
| -t, --timeout | Max. time allowed for proxy server/check (default: 30s). |
| -r, --rotate `<AFTER>` | Rotate proxy IP for every `AFTER` request (default: 1). |
| -v, --verbose | Dump HTTP request/responses or show died proxy on check. |
| -o, --output | Log output from proxy server or live check. |
| -u, --update | Update mubeng to the latest stable version. |
| -V, --version | Show current mubeng version. |

#### NOTES:

- Rotations are counted for all requests, even if the request fails.
  - The rotation is incremental starting at the beginning of the list.

- Daemon mode `(-d/--daemon)` will install mubeng as a service on the (Linux/OSX) system/setting up callback (Windows).
  - Hence you can control service with `journalctl`, `service` or `net` (for Windows) command to start/stop proxy server.
  - 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.

- Verbose mode `(-v/--verbose)` and timeout `(-t/--timeout)` apply to both proxy check and proxy IP rotation actions.
- HTTP traffic requests and responses is displayed when verbose mode `(-v/--verbose)` is enabled, but
  - We **DO NOT** explicitly display the request/response body, and
  - All cookie values in headers will be redacted automatically.

- If you use output option `(-o/--output)` to run proxy IP rotator, request/response headers are **NOT** written to the log file.
- A timeout option `(-t/--timeout)` 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”.
  - Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, and “h”.

## Examples

For example, you’ve proxy pool `(proxies.txt)` as:

[http://127.0.0.1:8080](http://127.0.0.1:8080) socks5://127.0.0.1:2121 … …

> Because we use auto-switch transport, `mubeng` can accept multiple proxy protocol schemes at once.  
> Please refer to [documentation](https://pkg.go.dev/ktbs.dev/mubeng/pkg/mubeng#Transport) for this package.

### Proxy checker

Pass `--check` flag in command to perform proxy checks:

▶ mubeng -f proxies.txt --check --output live.txt

The above case also uses `--output` flag to save a live proxy into file `(live.txt)` from checking result.

[![](https://user-images.githubusercontent.com/25837540/108407803-cd2d8b00-7256-11eb-8560-f0c99042c970.png)](https://user-images.githubusercontent.com/25837540/108407803-cd2d8b00-7256-11eb-8560-f0c99042c970.png) _(Figure: Checking proxies mubeng with max. 5s timeout)_

### Proxy IP rotator

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 instead to run proxy server:

▶ mubeng -a localhost:8089 -f live.txt -r 10

The `-r` _(–rotate)_ flag works to rotate your IP for every _N_ request value you provide `(10)`.

[![](https://user-images.githubusercontent.com/25837540/108269526-b3ca0780-71a0-11eb-986c-f8e98bab8433.jpg)](https://user-images.githubusercontent.com/25837540/108269526-b3ca0780-71a0-11eb-986c-f8e98bab8433.jpg) _(Figure: Running mubeng as proxy IP rotator with verbose mode)_

### [Burp Suite](https://portswigger.net/burp/documentation/desktop/getting-started/installing-burp) Upstream Proxy

In case you want to use `mubeng` _(proxy IP rotator)_ as an upstream proxy in Burp Suite, acting in-between Burp Suite and mubeng to the internet, so you don’t need any additional extensions in Burp Suite for that. To demonstrate this:

[![](https://user-images.githubusercontent.com/25837540/107985702-24d0ba00-6ffd-11eb-9489-c19e52c921f5.jpg)](https://user-images.githubusercontent.com/25837540/107985702-24d0ba00-6ffd-11eb-9489-c19e52c921f5.jpg) _(Figure: Settings Burp Suite Upstream Proxy to mubeng)_

In your Burp Suite instance, select **Project options** menu, and click **Connections** tab. In the **Upstream Proxy Servers** section, check **Override user options** then press **Add** button to add your upstream proxy rule. After that, fill required columns _(Destination host, Proxy host & Proxy port)_ with correct details. Click **OK** to save settings.

### [OWASP ZAP](https://www.zaproxy.org/download/) Proxy Chain

It acts the same way when you using an upstream proxy. OWASP ZAP allows you to connect to another proxy for outgoing connections in OWASP ZAP session. To chain it with a mubeng proxy server:

[![](https://user-images.githubusercontent.com/25837540/108060995-41670380-708a-11eb-83ad-c781421af473.png)](https://user-images.githubusercontent.com/25837540/108060995-41670380-708a-11eb-83ad-c781421af473.png) _(Figure: Settings proxy chain connection in OWASP ZAP to mubeng)_

Select **Tools** in the menu bar in your ZAP session window, then select the **Options** _(shortcut: Ctrl+Alt+O)_ submenu, and go to **Connection** section. In that window, scroll to **Use proxy chain** part then check **Use an outgoing proxy server**. After that, fill required columns _(Address/Domain Name & Port)_ with correct details. Click **OK** to save settings.

# Limitations

Currently IP rotation runs the proxy server only as an HTTP protocol, not a SOCKSv5 protocol, even though the resource you have is SOCKSv5. In other words, the SOCKSv5 resource that you provide is used properly because it uses auto-switch transport on the client, but this proxy server **DOES NOT** switch to anything other than HTTP protocol.

# Contributors

[![contributions](https://camo.githubusercontent.com/f5054ffcd4245c10d3ec85ef059e07aacf787b560f83ad4aec2236364437d097/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636f6e747269627574696f6e732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c6174)](https://github.com/kitabisa/mubeng/issues)

This project exists thanks to all the people who contribute. To learn how to setup a development environment and for contribution guidelines, see [CONTRIBUTING.md](https://github.com/kitabisa/mubeng/blob/master/.github/CONTRIBUTING.md).

[![](https://github.com/kitabisa/mubeng/raw/master/.github/CONTRIBUTORS.svg)](https://github.com/kitabisa/mubeng/graphs/contributors)

# Pronunciation

[`jv_ID`](https://www.localeplanet.com/java/jv-ID/index.html) • **/mo͞oˌbēNG/** — mubeng-mubeng nganti mumet. (ꦩꦸꦧꦺꦁ​ꦔꦤ꧀ꦠꦶ​ꦩꦸꦩꦺꦠ꧀)

# Changes

For changes, see [CHANGELOG.md](https://github.com/kitabisa/mubeng/blob/master/CHANGELOG.md).

## GitHub:

> **[GitHub - mubeng/mubeng: An incredibly fast proxy checker & IP rotator with...](https://github.com/mubeng/mubeng)**
>
> An incredibly fast proxy checker & IP rotator with ease.
