An incredibly fast proxy checker & IP rotator with ease.


mubeng

An incredibly fast proxy checker & IP rotator with ease.

ContributingWhat's newDocumentationReport Issues



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, unpack and run!

Docker

Pull the Docker image by running:

▶ docker pull kitabisa/mubeng

Source

Using Go (v1.15+) compiler:

▶ GO111MODULE=on go get 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
▶ 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 Proxy file.
-a, --address : 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 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.

NOTES:

  • Rotations are counted for all requests, even if the request fails.
    • Rotation means random, NOT 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 N value (-r/--rotate) your IP proxy will rotate.
  • 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 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
https://127.0.0.1:3128
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 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.

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

(Figure: Running mubeng as proxy IP rotator with verbose mode)

Burp Suite 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:

(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 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:

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

Known Bugs

  • Unable to run proxy IP rotator as a daemon on Windows.

Contributors

contributions

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.

Pronunciation

jv_ID/mo͞oˌbēNG/ — mubeng-mubeng nganti mumet. (ꦩꦸꦧꦺꦁ​ꦔꦤ꧀ꦠꦶ​ꦩꦸꦩꦺꦠ꧀)

Changes

For changes, see CHANGELOG.md.

License

This program is free software: you can redistribute it and/or modify it under the terms of the Apache license. Kitabisa mubeng and any contributions are Copyright © by Dwi Siswanto 2021.

Comments
  • [BUG] runtime error: invalid memory address or nil pointer dereference

    [BUG] runtime error: invalid memory address or nil pointer dereference

    Describe the bug

    When mubeng has started and i want to access a website i see this in the terminal:

    $ mubeng -f ./checked.txt -a 127.0.0.1:8089 -r 10 -m random
    
               _   v0.12.0-dev
     _____ _ _| |_ ___ ___ ___
    |     | | | . | -_|   | . |
    |_|_|_|___|___|___|_|_|_  |
                          |___|
     [email protected]
    
    2022/12/14 10:56:32 [INFO] ▶ [PID: 172398] Starting proxy server on 127.0.0.1:8089
    2022/12/14 10:56:37 [DEBU] ▶ 127.0.0.1:33226 GET https://www.youtube.com:443/
    2022/12/14 10:56:38 [DEBU] ▶ 127.0.0.1:33224 POST https://firefox.dns.nextdns.io:443/
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7c3db8]
    
    goroutine 7 [running]:
    ktbs.dev/mubeng/internal/server.(*Proxy).onRequest(0xc000209550, 0xc0003f2100, 0xc0005b1c90)
    	/home/mrrobot/mubeng/internal/server/handler.go:83 +0x458
    github.com/elazarl/goproxy.FuncReqHandler.Handle(0x5bcbe6, 0xc0000b21b0, 0xc000024412)
    	/home/mrrobot/go/pkg/mod/github.com/elazarl/[email protected]/actions.go:19 +0x22
    github.com/elazarl/goproxy.(*ReqProxyConds).Do.func1(0xc0000243f0, 0x10)
    	/home/mrrobot/go/pkg/mod/github.com/elazarl/[email protected]/dispatcher.go:216 +0x5d
    github.com/elazarl/goproxy.FuncReqHandler.Handle(0x0, 0x888698, 0x23)
    	/home/mrrobot/go/pkg/mod/github.com/elazarl/[email protected]/actions.go:19 +0x22
    github.com/elazarl/goproxy.(*ProxyHttpServer).filterRequest(0xc0000243f0, 0xc0003f2100, 0x0)
    	/home/mrrobot/go/pkg/mod/github.com/elazarl/[email protected]/proxy.go:62 +0x82
    github.com/elazarl/goproxy.(*ProxyHttpServer).handleHttps.func2()
    	/home/mrrobot/go/pkg/mod/github.com/elazarl/[email protected]/https.go:220 +0x6eb
    created by github.com/elazarl/goproxy.(*ProxyHttpServer).handleHttps
    	/home/mrrobot/go/pkg/mod/github.com/elazarl/[email protected]/https.go:190 +0x4b6
    

    and a message "Proxy server error" in the page i want to acces to in firefox.

    I already installed the certificate and checked the proxies are working.

    To Reproduce

    • Start mubeng
    • Access a website

    Screenshots

    Screenshot_20221214_111030

    Environment (please complete the following information):

    • OS: Kali Linux x86/64
    • OS version: Linux 5.19.0-kali2-amd64 Debian 5.19.11-1kali2
    • mubeng Version: mubeng version v0.12.0-dev
  • [FEATURE] Live-reload proxy pool for proxy IP rotator

    [FEATURE] Live-reload proxy pool for proxy IP rotator

    first Gotta admit it's a great piece of work❤️ There is a suggestion that I hope can be adopted. System: win11 -f ip.txt(Specify the txt file) It would be better if it was dynamic I try to use python to extract IP and modify IP.txt content. But the new txt data is not recognized after the program runs.

    A small suggestion May good luck be with you

  • [BUG] remote error: tls: unknown certificate

    [BUG] remote error: tls: unknown certificate

    Describe the bug

    Can't open HTTPS pages over proxy. remote error: tls: unknown certificate

    To Reproduce

    Start mubeng proxy and see

    Environment

    • OS: Ubuntu Linux 20.04
    • Latest mubeng version
  • Error getting https websites

    Error getting https websites

    Describe the bug

    Trying to get https://example.org through mubeng

    To Reproduce Run mubeng, try to curl -x http://mubenghost:mubengport example.org

    ./mubeng -f ../proxies.txt -a localhost:8080 -c -v
    2021/03/03 22:10:15 [INFO] ▶ [PID: 29823] Starting proxy server on localhost:8080
    2021/03/03 22:10:35 [001] WARN: Cannot handshake client example.org:443 local error: tls: bad record MAC
    

    Expected behavior

    Body of example.org site

  • [BUG] Response errors

    [BUG] Response errors

    I have two response errors context deadline exceeded (Client.Timeout exceeded while awaiting headers)

    Second error:

    goroutine 389 [running]:
    net/http.(*conn).serve.func1(0xc000153040)
            /usr/lib/go-1.15/src/net/http/server.go:1801 +0x147
    panic(0x94f400, 0xdb46d0)
            /usr/lib/go-1.15/src/runtime/panic.go:975 +0x47a
    ktbs.dev/mubeng/internal/server.(*Proxy).onRequest(0xc000199f90, 0xc00018d600, 0xc000405980, 0x0, 0x0)
            /home/misho/mubeng/internal/server/handler.go:83 +0x34a
    github.com/elazarl/goproxy.FuncReqHandler.Handle(0xc000199fa0, 0xc00018d600, 0xc000405980, 0x10, 0x10)
            /home/misho/go/pkg/mod/github.com/elazarl/[email protected]/actions.go:19 +0x3a
    github.com/elazarl/goproxy.(*ReqProxyConds).Do.func1(0xc00018d600, 0xc000405980, 0xc000045400, 0x0)
            /home/misho/go/pkg/mod/github.com/elazarl/[email protected]/dispatcher.go:216 +0xcd
    github.com/elazarl/goproxy.FuncReqHandler.Handle(0xc0001a3780, 0xc00018d600, 0xc000405980, 0x40cbbb, 0x10)
            /home/misho/go/pkg/mod/github.com/elazarl/[email protected]/actions.go:19 +0x3a
    github.com/elazarl/goproxy.(*ProxyHttpServer).filterRequest(0xc000152320, 0xc00018d600, 0xc000405980, 0xc0003afb90, 0x4)
            /home/misho/go/pkg/mod/github.com/elazarl/[email protected]/proxy.go:62 +0x74
    github.com/elazarl/goproxy.(*ProxyHttpServer).ServeHTTP(0xc000152320, 0xaa5f60, 0xc00016a700, 0xc00018d600)
            /home/misho/go/pkg/mod/github.com/elazarl/[email protected]/proxy.go:124 +0x305
    net/http.serverHandler.ServeHTTP(0xc00009a540, 0xaa5f60, 0xc00016a700, 0xc00018d600)
            /usr/lib/go-1.15/src/net/http/server.go:2843 +0xa3
    net/http.(*conn).serve(0xc000153040, 0xaa70e0, 0xc000063880)
            /usr/lib/go-1.15/src/net/http/server.go:1925 +0x8ad
    created by net/http.(*Server).Serve
            /usr/lib/go-1.15/src/net/http/server.go:2969 +0x36c
    

    I'm trying using this with colly but not working. Thx

  • [FEATURE] Rotation methods

    [FEATURE] Rotation methods

    Is your feature request related to a problem? Please describe. Gives the user the option to rotate by incremental or random method

    Describe the solution you'd like Something like --method=1/2.

    Describe alternatives you've considered If -r/--rotate is set to 0, then randomize.

    Additional context TBD

  • [BUG] Unable to use with own list

    [BUG] Unable to use with own list

    Describe the bug

    using mubeng gives error. [FTL] Error! open /home/x/proxies.txt: has no valid proxy URLs.

    To Reproduce

    run mubeng with mubeng -f /home/x/proxies.txt --check -v

    Expected behavior

    To check or to rotate with my list

    image

    If applicable, add screenshots to help explain your problem.

    Environment (please complete the following information):

    • OS: Kali Linux on WSL
    • OS version: Linux DESKTOP-E97AU3J 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 GNU/Linux
    • mubeng Version: mubeng version v0.4.5

    Additional context My list is done like this:

    https://x:1080
    https://x:1080
    https://x:1080
    https://x:1080
    https://x:1080
    

    image

  • http://mubeng/cert DONT WORK PLS HELP

    http://mubeng/cert DONT WORK PLS HELP

    2022/09/25 21:28:32 [DEBU] ▶ 170.187.203.113:49936 GET http://mubeng/cert 2022/09/25 21:28:33 [DEBU] ▶ 170.187.203.113:49936 500 Internal Server Error 2022/09/25 21:28:33 [DEBU] ▶ 170.187.203.113:49936 GET http://mubeng/favicon.ico 2022/09/25 21:28:33 [DEBU] ▶ 170.187.203.113:49936 503 Service Unavailable 2022/09/25 21:28:34 [DEBU] ▶ 170.187.203.113:49936 GET http://mubeng/cert 2022/09/25 21:28:34 [DEBU] ▶ 170.187.203.113:49936 500 Internal Server Error 2022/09/25 21:28:34 [DEBU] ▶ 170.187.203.113:49936 GET http://mubeng/favicon.ico 2022/09/25 21:28:34 [DEBU] ▶ 170.187.203.113:49936 503 Service Unavailable

  • Bump kitabisa/sonarqube-action from 1.1.0 to 1.1.1

    Bump kitabisa/sonarqube-action from 1.1.0 to 1.1.1

    Bumps kitabisa/sonarqube-action from 1.1.0 to 1.1.1.

    Release notes

    Sourced from kitabisa/sonarqube-action's releases.

    v1.1.1

    Changelog

    • Using official Sonar Scanner Docker image instead (incompatible issue #29) (#30)
    Commits
    • 10a365b Merge pull request #30 from leonardomerlin/patch-1
    • 8c154cc fix: use official sonnar scanner docker image
    • c7058a0 Use stable release tag instead of master
    • 9b52913 Merge pull request #20 from jankal/master
    • 532659c fix(entrypoint): use bash condition correctly
    • c949545 fix code-style & reference WORKSPACE dir for file detection
    • 9b7b1d0 update base image; respect sonar-project.properties
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • [BUG] Not compatible with mac?

    [BUG] Not compatible with mac?

    Describe the bug

    According to the read me, this works with mac, however neither the ARM binary nor the docker seemed to work

    To Reproduce

    Steps to reproduce the behavior:

    Try to use it on mac

    Expected behavior

    It works.

    Screenshots

    If applicable, add screenshots to help explain your problem.

    Environment (please complete the following information):

    • OS: Mac
    • OS version: 10.15.7
    • mubeng Version: Latest

    Additional context Add any other context about the problem here. Full output log is probably a helpful thing to add here.

  • Proxy manager

    Proxy manager

    Summary

    I did not like the model of random proxy selection without balancing. I suggest using a sequential model by default. And in the future, implement a random model with balancing

    Proposed of changes

    • Updating dependencies
    • Predictable distribution of requests

    How has this been tested?

    Tested in production.

    Checklist:

    • [x] My code follows the code style of this project.
    • [x] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I have followed the guidelines in our CONTRIBUTING.md document.
    • [ ] I have written new tests for my changes.
    • [x] My changes successfully ran and pass tests locally.
  • build(deps): bump github.com/briandowns/spinner from 1.15.0 to 1.20.0

    build(deps): bump github.com/briandowns/spinner from 1.15.0 to 1.20.0

    Bumps github.com/briandowns/spinner from 1.15.0 to 1.20.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump goreleaser/goreleaser-action from 3.1.0 to 4.1.0

    build(deps): bump goreleaser/goreleaser-action from 3.1.0 to 4.1.0

    Bumps goreleaser/goreleaser-action from 3.1.0 to 4.1.0.

    Release notes

    Sourced from goreleaser/goreleaser-action's releases.

    v4.1.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/goreleaser/goreleaser-action/compare/v4...v4.1.0

    v4.0.0

    What's Changed

    Full Changelog: https://github.com/goreleaser/goreleaser-action/compare/v3...v4.0.0

    v3.2.0

    What's Changed

    • chore: remove workaround for setOutput by @​crazy-max (#374)
    • chore(deps): bump @​actions/core from 1.9.1 to 1.10.0 (#372)
    • chore(deps): bump yargs from 17.5.1 to 17.6.0 (#373)

    Full Changelog: https://github.com/goreleaser/goreleaser-action/compare/v3.1.0...v3.2.0

    Commits
    • 8f67e59 chore: regenerate
    • 78df308 chore(deps): bump minimatch from 3.0.4 to 3.1.2 (#383)
    • 66134d9 Merge remote-tracking branch 'origin/master' into flarco/master
    • 3c08cfd chore(deps): bump yargs from 17.6.0 to 17.6.2
    • 5dc579b docs: add example when using workdir along with upload-artifact (#366)
    • 3b7d1ba feat!: remove auto-snapshot on dirty tag (#382)
    • 23e0ed5 fix: do not override GORELEASER_CURRENT_TAG (#370)
    • 1315dab update build
    • b60ea88 improve install
    • 4d25ab4 Update goreleaser.ts
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump github.com/go-test/deep from 1.0.7 to 1.1.0

    build(deps): bump github.com/go-test/deep from 1.0.7 to 1.1.0

    Bumps github.com/go-test/deep from 1.0.7 to 1.1.0.

    Release notes

    Sourced from github.com/go-test/deep's releases.

    v1.1.0

    New minor release, v1.1, that adds support for optional flags.

    What's Changed

    Full Changelog: https://github.com/go-test/deep/compare/v1.0.9...v1.1.0

    v1.0.9

    What's Changed

    Full Changelog: https://github.com/go-test/deep/compare/v1.0.8...v1.0.9

    Changelog

    Sourced from github.com/go-test/deep's changelog.

    v1.1.0 released 2022-12-09

    • Add optional flags: Equal(a, b, flags..) and FLAG_IGNORE_SLICE_ORDER (issue #28, PR #56) (@​alenkacz)

    v1.0.9 released 2022-12-09

    • Fixed issue #45: Panic when comparing errors in unexported fields (PR #54) (@​seveas)
    • Fixed issue #46: Functions are handled differently from reflect.DeepEqual (PR #55) (@​countcb)
    • Updated matrix to go1.17, go1.18, and go1.19 and moved testing to GitHub Actions

    v1.0.8 released 2021-10-13

    • Updated matrix to go1.15, go1.16, and go1.17
    • Added SECURITY.md and GitHub code analysis
    Commits
    • 2f12927 Merge pull request #56 from go-test/issue-28-and-flags
    • d502c9f Merge branch 'master' into issue-28-and-flags
    • b036568 Update changelog for v1.0.9
    • 55ce24e Improve docs and add a test
    • 1a1ed62 Remove dead code comment
    • f39112b Sort strings in TestSliceOrderString to avoid false positives
    • a20c9ea Implment issue 28 with FLAG_IGNORE_SLICE_ORDER
    • 47c10a1 Merge pull request #55 from go-test/cmp-func-issue-46
    • d97d7b6 Make TestNotHandled work with Go 1.17
    • 847b043 Add back TestNotHandled for 100% coverage
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump wow-actions/contributors-list from 1.0.8 to 1.1.0

    build(deps): bump wow-actions/contributors-list from 1.0.8 to 1.1.0

    Bumps wow-actions/contributors-list from 1.0.8 to 1.1.0.

    Commits
    • b9e91f9 release v1.1.0
    • ad232c1 chore: 🔧 running action on Node16
    • 7c1f693 chore: update contributors [skip ci]
    • 95488b1 chore: update contributors [skip ci]
    • cb2764f chore: update contributors [skip ci]
    • c939f09 chore: update contributors [skip ci]
    • 5b3f1aa chore: update contributors [skip ci]
    • d222304 Update README.md
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • build(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.1

    build(deps): bump golangci/golangci-lint-action from 3.2.0 to 3.3.1

    Bumps golangci/golangci-lint-action from 3.2.0 to 3.3.1.

    Release notes

    Sourced from golangci/golangci-lint-action's releases.

    v3.3.1

    What's Changed

    Full Changelog: https://github.com/golangci/golangci-lint-action/compare/v3...v3.3.1

    v3.3.0

    What's Changed

    ... (truncated)

    Commits
    • 0ad9a09 build(deps-dev): bump @​typescript-eslint/parser from 5.41.0 to 5.42.0 (#599)
    • 235ea57 build(deps-dev): bump eslint from 8.26.0 to 8.27.0 (#598)
    • a6ed001 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.41.0 to 5.42.0 ...
    • 3a7156a build(deps-dev): bump @​typescript-eslint/parser from 5.40.1 to 5.41.0 (#596)
    • 481f8ba build(deps): bump @​types/semver from 7.3.12 to 7.3.13 (#595)
    • 06edb37 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.40.1 to 5.41.0 ...
    • c2f79a7 build(deps): bump @​actions/cache from 3.0.5 to 3.0.6 (#593)
    • d6eac69 build(deps-dev): bump @​typescript-eslint/eslint-plugin from 5.40.0 to 5.40.1 ...
    • 7268434 build(deps-dev): bump eslint from 8.25.0 to 8.26.0 (#591)
    • a926e2b build(deps-dev): bump @​typescript-eslint/parser from 5.40.0 to 5.40.1 (#590)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • [BUG] Unlimited high concurrency leads to false positives in checker.

    [BUG] Unlimited high concurrency leads to false positives in checker.

    Describe the bug

    Unlimited high concurrency leads to false positives in checker.

    To Reproduce

    Use checker to validate proxy.txt.

    The last proxy is to manually verify that it is available. image

    Run mubeng's checker:

    > mubeng -f .\proxy.txt -c
    

    Expected behavior

    The last proxy should be shown as alive.

    Screenshots

    image

    Environment (please complete the following information):

    • OS: [e.g. mac, linux]
    • OS version: [uname -a]
    • mubeng Version: [mubeng -V]

    Additional context I'm guessing that the problem might be caused by unlimited waitgroup.
    Maybe should to limit the frequency of requests.

    https://github.com/kitabisa/mubeng/blob/11f59e1b598d9d4413dcc6582cbd62e9204df501/internal/checker/checker.go#L23-L47

High Performance HTTP(S) Proxy Checker Written in GO

Go Proxy Checker 中文版文档 High Performance HTTP(S) Proxy Checker Written in GO It can Batch check whether your HTTP/HTTPS proxies is valid and anonymous,

Dec 30, 2022
llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.

llb What the f--k it is? It's a very simple but quick backend for proxy servers. You can setup redirect to your main domain or just show HTTP/1.1 404

Sep 27, 2022
App with CRUD for user, with palindrome checker for user's first and last name

Run db container first, so that app does not connect to db while db has not started yet docker-compose up -d db docker-compose up -d app CRUD endpoint

Dec 9, 2021
GraspleResultNotifier - Grasple result checker with golang

Grasple result checker Environment variables TELEGRAM_GRASPLE_BOT_TOKEN: The tok

Jan 25, 2022
Simple, secure and modern Go HTTP server to serve static sites, single-page applications or a file with ease

srv srv is a simple, secure and modern HTTP server, written in Go, to serve static sites, single-page applications or a file with ease. You can use it

Sep 7, 2022
GOWS is GoLang web-socket module Provides you with ease of handling web socket connections with a few lines

GOWS GOWS is GoLang web-socket module Provides you with ease of handling web socket connections with a few lines, it supports multi-connection on one

Apr 4, 2022
An experimental Tor-Proxy serivce written in Go using Go-proxy and Go-libtor.

tor-proxy An experimental standalone tor-proxy service built with Go, using go-proxy, go-libtor and bine. This is a simple replacement to Tor's origin

Nov 9, 2022
mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together

mt-multiserver-proxy mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together. It is the successor to multiserv

Nov 17, 2022
A simple tool to convert socket5 proxy protocol to http proxy protocol

Socket5 to HTTP 这是一个超简单的 Socket5 代理转换成 HTTP 代理的小工具。 如何安装? Golang 用户 # Required Go 1.17+ go install github.com/mritd/s2h@master Docker 用户 docker pull m

Jan 2, 2023
IP2Proxy Go package allows users to query an IP address to determine if it was being used as open proxy, web proxy, VPN anonymizer and TOR exits.

IP2Proxy Go Package This package allows user to query an IP address if it was being used as VPN anonymizer, open proxies, web proxies, Tor exits, data

Sep 15, 2022
Tcp-proxy - A dead simple reverse proxy server.

tcp-proxy A proxy that forwords from a host to another. Building go build -ldflags="-X 'main.Version=$(git describe --tags $(git rev-list --tags --max

Jan 2, 2022
Proxy - Minimalistic TCP relay proxy.

Proxy Minimalistic TCP relay proxy. Installation ensure you have go >= 1.17 installed clone the repo cd proxy go install main.go Examples Listen on po

May 22, 2022
Http-logging-proxy - A HTTP Logging Proxy For Golang

http-logging-proxy HTTP Logging Proxy Description This project builds a simple r

Aug 1, 2022
Battlesnake-logging-proxy - A little proxy between the internet and your battlesnake

battlesnake-logging-proxy a little proxy between the internet and your battlesna

Feb 11, 2022
A MCBE Proxy supporting fast transfer and much more!
A MCBE Proxy supporting fast transfer and much more!

Downloads Pipelines Here you can find all the build please select the latest and click Artifacts

Oct 17, 2022
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

frp README | 中文文档 What is frp? frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it s

Jan 5, 2023
4chain is a simple、fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet.

4Chain What is 4chain? 4chain is a simple、fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. Using the ssh

Nov 1, 2022
TProx is a fast reverse proxy path traversal detector and directory bruteforcer.
TProx is a fast reverse proxy path traversal detector and directory bruteforcer.

TProx is a fast reverse proxy path traversal detector and directory bruteforcer Install • Usage • Examples • Join Discord Install Options From Source

Nov 9, 2022