Convert Figma logo to code with AI

krlvm logoPowerTunnel

Powerful and extensible proxy server with anti-censorship functionality

1,178
77
1,178
22

Top Related Projects

GoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)

Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ

5,787

DPI bypass multi platform

Quick Overview

PowerTunnel is an open-source proxy server that allows users to bypass internet censorship and access blocked websites. It is designed to be easy to use and configure, and supports a variety of protocols and platforms.

Pros

  • Bypass Censorship: PowerTunnel enables users to access websites and online services that may be blocked or restricted by their internet service provider or government.
  • Cross-Platform Compatibility: The project supports multiple platforms, including Windows, macOS, and Linux, making it accessible to a wide range of users.
  • Variety of Protocols: PowerTunnel supports various proxy protocols, including SOCKS5, HTTP, and Shadowsocks, allowing users to choose the best option for their needs.
  • Open-Source: As an open-source project, PowerTunnel benefits from community contributions and transparency, ensuring ongoing development and improvements.

Cons

  • Potential Legal Issues: Depending on the user's location and the specific websites or services being accessed, the use of PowerTunnel may be subject to legal restrictions or consequences.
  • Performance Limitations: Like any proxy service, PowerTunnel may introduce some latency or performance degradation, which could impact the user's online experience.
  • Complexity for Non-Technical Users: While the project aims to be user-friendly, some aspects of configuration and setup may be more challenging for users with limited technical expertise.
  • Reliance on Third-Party Servers: PowerTunnel relies on third-party proxy servers, which could potentially be subject to downtime, censorship, or other issues beyond the project's control.

Getting Started

To get started with PowerTunnel, follow these steps:

  1. Download the appropriate version of PowerTunnel for your operating system from the GitHub repository.
  2. Extract the downloaded archive and run the PowerTunnel executable.
  3. In the PowerTunnel interface, select the desired proxy protocol (e.g., SOCKS5, HTTP, Shadowsocks) and enter the necessary connection details (server address, port, username, and password).
  4. Click the "Start" button to begin using the proxy.
  5. Configure your web browser or other applications to use the PowerTunnel proxy settings.

For more detailed instructions and configuration options, please refer to the PowerTunnel documentation.

Competitor Comparisons

GoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)

Pros of GoodbyeDPI

  • Supports a wider range of protocols, including HTTP, HTTPS, and DNS
  • Provides more advanced features like URL filtering and IP blocking
  • Offers a user-friendly graphical interface for easier configuration

Cons of GoodbyeDPI

  • Requires more system resources compared to PowerTunnel
  • May be less effective in certain network environments or with specific DPI techniques
  • Lacks the portability and cross-platform support of PowerTunnel

Code Comparison

PowerTunnel (krlvm/PowerTunnel):

public static void Main(string[] args)
{
    using (var server = new TunnelServer())
    {
        server.Start();
        Console.ReadLine();
        server.Stop();
    }
}

GoodbyeDPI (ValdikSS/GoodbyeDPI):

def main():
    parser = argparse.ArgumentParser(description='GoodbyeDPI')
    parser.add_argument('--mode', default='http', choices=['http', 'dns'])
    parser.add_argument('--host', default='0.0.0.0')
    parser.add_argument('--port', default=8080, type=int)
    args = parser.parse_args()

    if args.mode == 'http':
        run_http_server(args.host, args.port)
    elif args.mode == 'dns':
        run_dns_server(args.host, args.port)

Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ

Pros of BlockCheck

  • BlockCheck is a lightweight and efficient tool for checking if a website or IP address is blocked.
  • It supports multiple protocols, including HTTP, HTTPS, and DNS, allowing for comprehensive testing.
  • BlockCheck provides detailed output, including response times and error messages, which can be useful for troubleshooting.

Cons of BlockCheck

  • BlockCheck is a command-line tool, which may not be as user-friendly as a graphical interface for some users.
  • The project has fewer contributors and less active development compared to PowerTunnel.

Code Comparison

PowerTunnel:

public static void Main(string[] args)
{
    try
    {
        var config = new Config();
        config.Load();

        var app = new App(config);
        app.Run();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
    }
}

BlockCheck:

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="BlockCheck - Check if a website or IP is blocked")
    parser.add_argument("target", help="Website or IP address to check")
    parser.add_argument("-p", "--protocol", default="http", choices=["http", "https", "dns"], help="Protocol to use for the check")
    parser.add_argument("-t", "--timeout", type=int, default=10, help="Timeout for the check in seconds")
    args = parser.parse_args()

    check_target(args.target, args.protocol, args.timeout)
5,787

DPI bypass multi platform

Pros of Zapret

  • Zapret provides a user-friendly graphical interface, making it more accessible for non-technical users.
  • The project is actively maintained, with regular updates and bug fixes.
  • Zapret supports a wide range of platforms, including Windows, macOS, and Linux.

Cons of Zapret

  • Zapret may have a larger attack surface due to its more complex codebase and additional features.
  • The project's reliance on external dependencies, such as OpenVPN, could introduce potential security vulnerabilities.
  • Zapret may have a higher resource footprint compared to PowerTunnel, which is a more lightweight solution.

Code Comparison

PowerTunnel:

public static void Main(string[] args)
{
    var app = new App();
    app.Run();
}

Zapret:

if __name__ == "__main__":
    main()

Both code snippets represent the entry point of the respective applications, but they use different programming languages (C# for PowerTunnel and Python for Zapret).

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README


PowerTunnel

Powerful and extensible proxy server

Telegram channel
Check out the Android version!

License Latest release Downloads Help on the Wiki
PowerTunnel User Interface

What is it

PowerTunnel is an extensible proxy server built on top of LittleProxy.

PowerTunnel provides an SDK that allows you to extend its functionality however you like, and even handle encrypted HTTPS traffic (powered by LittleProxy-MITM), which can be especially useful in web development. PowerTunnel has an Android version, so any plugin you write can work on almost all devices.

PowerTunnel was originally developed and is best known as a censorship bypass tool. This functionality has been spun off in the LibertyTunnel plugin which is installed by default, just like DNS Resolver with DNS over HTTPS support.

Anti-censorship tool

Digital censorship has become widespread in authoritarian and developing countries: governments install DPI - Deep Packet Inspection systems - for Internet Service Providers, which allows analyzing and blocking traffic to websites they don't want you to see, forcing you to use slow and often paid proxies or VPN services with dubious privacy policy.

PowerTunnel is an active DPI circumvention utility - it works only on your PC and do not route your traffic through some third-party webservers. It creates a local proxy server on your device and diverts your HTTP(S) traffic there, where PowerTunnel modifies your traffic in a special way to exploit bugs in DPI systems which makes it possible to bypass the lock - without (significantly) slowing down your Internet connection.

Anti-censorship module can be configured in Plugins window - it is called LibertyTunnel.

In this sense, PowerTunnel is a free cross-platform implementation of GoodbyeDPI written in Java.

Please, note that PowerTunnel does not change your IP address.

Configuring

Downloading PowerTunnel

PowerTunnel binary can be downloaded from the Releases page.

If you don't trust the prebuilt binaries, you can build PowerTunnel from source - it is using Gradle build system.

Launching PowerTunnel

PowerTunnel is a portable Java application, and it does not require additional steps to get it working.

You need to install Java to run PowerTunnel.

PowerTunnel can be started by double-clicking the executable .jar file or by starting it from command line (see below).

After the first launch, PowerTunnel will create directories for storing plugins and configuration files.

Installing plugins

To install a plugin, just place its .jar file into plugins directory.

Please, make sure you do not have installed different versions of the same plugin.

Configuring plugins

Installed plugins can be configured from the user interface - click the "Plugins" button of main window to see the list of plugins.

Launch arguments

You can specify some params that will override settings through CLI:

$ java -jar PowerTunnel.jar -help

    --help                            display help
    --start                           start proxy server after load
    --console                         run application in console mode
    --ip <arg>                        set proxy server IP address
    --port <arg>                      set proxy server port
    --auth-username <arg>             set proxy authorization username
    --auth-password <arg>             set proxy authorization password
    --upstream-proxy-host <arg>       set upstream proxy host
    --upstream-proxy-port <arg>       set upstream proxy port
    --upstream-auth-password <arg>    set upstream proxy password
    --upstream-auth-username <arg>    set upstream proxy username
    --upstream-proxy-protocol <arg>   set upstream proxy protocol [HTTP/SOCKS4/SOCKS5]
    --minimized                       minimize UI to tray after start
    --set-ui-scale-factor <arg>       set UI scale factor
    --auto-proxy-setup-ie             setup proxy using Internet Explorer [Windows]
    --disable-auto-proxy-setup        disable auto proxy setup
    --disable-native-skin             disable platform native UI skin
    --disable-tray                    disable tray mode
    --disable-ui-scaling              disable UI scaling
    --disable-updater                 disable Update Notifier
    --enable-logging                  enable logging to file
    --lang <arg>                      set UI language
    --cfg <arg>                       set preference value
    --version                         print version details

If you need to set a certain plugin preference, use -cfg pluginID.preferenceKey [value]

Bundled Plugins

Dependencies