/PowerTunnel

Simple, scalable, cross-platform and effective solution against government censorship

Primary LanguageJavaGNU General Public License v3.0GPL-3.0


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

    --auth-password <arg>            set proxy authorization password
    --auth-username <arg>            set proxy authorization username
    --auto-proxy-setup-ie            setup proxy using Internet Explorer
    --cfg <arg>                      set preference value
    --console                        run application in console mode
    --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
    --help                           display help
    --ip <arg>                       set proxy server IP address
    --lang <arg>                     set UI language
    --minimized                      minimize UI to tray after start
    --port <arg>                     set proxy server port
    --set-ui-scale-factor <arg>      set UI scale factor
    --start                          start proxy server after load
    --upstream-auth-username <arg>   set upstream proxy password
    --upstream-proxy-host <arg>      set upstream proxy host
    --upstream-proxy-port <arg>      set upstream proxy port
    --version                        print version details

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

Bundled Plugins

Dependencies