Giter Club home page Giter Club logo

powertunnel-android's Introduction


PowerTunnel for Android

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

Telegram channel
Looking for the PC version?

License Latest release Downloads Help on the Wiki
PowerTunnel User Interface PowerTunnel User Interface PowerTunnel User Interface

The Android version of PowerTunnel is built on top of incredible NetGuard's VPN Server that intercepts traffic and directs it through the local PowerTunnel proxy

You can't publish the app on the Google Play Store without permission: it is a violation of the license and the DMCA.

What is it

PowerTunnel is an extensible proxy server built on top of LittleProxy that does not require root-access to work.

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, it 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 with support for Android.

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 APK, you can build PowerTunnel from source with Android Studio. It is also available in F-Droid via IzzyOnDroid repo (details, versions 1.x are also available).

Using proxy instead of VPN

If you want to use PowerTunnel only with a single app, you can change mode from VPN to Proxy in PowerTunnel settings and configure the app manually to make it route its traffic via the proxy server.

VPN mode is supported on Android 5 Lollipop and higher.

Configuring DPI circumvention

DPI circumvention can be configured in LibertyTunnel settings - open plugins page and tap to the gear opposite to LibertyTunnel plugin.

Configuring DNS

To configure DNS, open plugins page and tap to the gear opposite to DNS plugin.

You are able to choose between pre-installed Google and Cloudflare DNS (DoH) providers or add yours.

Enabling AdBlock

AdBlock is disabled by default. To enable, open plugins page and check the box next to AdBlock plugin, then restart PowerTunnel.

Bundled Plugins

  • LibertyTunnel - anti-censorship plugin for PowerTunnel
  • DNS Resolver - DNS Resolver with DNS over HTTPS (DoH) support
  • AdBlock - simple, but efficient ads and trackers blocker

Dependencies

powertunnel-android's People

Contributors

atrate avatar dependabot-preview[bot] avatar dependabot[bot] avatar imgbot[bot] avatar krlvm avatar metezd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

powertunnel-android's Issues

Поддержка intercepted proxy ?

Попробовал через iptables перенаправить запросы конкретного приложения (браузера) на прокси

iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner --uid-owner 10189 -m tcp -j REDIRECT --to-ports 8085
iptables -t nat -I OUTPUT -p tcp --dport 443 -m owner --uid-owner 10189 -m tcp -j REDIRECT --to-ports 8085

но похоже прокси не работает в intercepted-режиме :

Bad Request to URI: /

Run proxy without VPN

Hello.

Can you add proxy mode to use PowerTunnel without local VPN service with another applications that create VPN?

In Russian Доброго времени суток.

Можете запилить режим прокси помимо VPN'а ? Многие браузеры имеют настройки прокси и нет особой нужды включать локальный VPN. Это так же подойдёт для ситуации, когда уже работает софт, использующий локальный режим VPN. В таком случае режим прокси в PowerTunnel + прокси в браузере будет единственной рабочей схемой.

VPN что-то не работает на LineageOS 14.1 (Android 7.1)

Я пытался что-то делать, даже по умолчанию запускать, оно не работало никак, вообще, кроме режима работы, как прокси. Уведомление о попытке запуска VPN даже не поступает. (Версия 1.9 и ниже тоже не работают)
2021-01-07-21-30-40 (1).txt

Если что-то я не понял и сглупил, то прошу меня понять и простить. Если этого лога недостаточно, то я ещё один добавлю, для расшинрения знаний по проблеме.

Shortcut Problem on Android TV

Hello;
I tried this app on my Android TV(SONY Smart TV), and I noticed there is no any shortcut after installing the app!
You can just run it once after installation using the installation wizard. Also I checked the TV app list from Settings > Storage and it was not there neither.

Нужна возможность отключения моргания светодиодом.

Нужна возможность отключения моргания светодиодом (либо вообще убрать подобную фичу, имхо).

У меня оба смарта со светодиодами и на одном смарте PowerTunnel после старта прокси моргает синим, а на другом зелёным цветом. Моргать будет продолжать, пока не залезешь в панель уведомлений.

При включении опции модификации SNI не предлагается установка сертификата.

При включении SNI всего один раз за всё время использования была предложена установка сертификата (узнал об этой возможности вчера). Установку отменил, а повторно вызвать не смог. Даже pm clear приложения не помог. В директории

/data/data/ru.krlvm.powertunnel.android/files/

лежат файлы

powertunnel-root-ca.p12
powertunnel-root-ca.pem
который из них тот самый сертификат ? Попробую поставитьь вручную. Или это не то ?

Должен ли моргать светодиод на 4.2.2 при активации режима прокси (не VPN) ?

Ранее я поднимал похожий вопрос, но тогда диод моргал зелёным, да и было это очень похоже на отработку некой функции моргания диодом для VPN-режима, где всё происходило аналогично и в другом софте. Сейчас, на смарте с 4.2.2 он моргает красным и продолжает моргать, пока не дёрнешь панель уведомлений. Когда проводил тесты после очередных палок в колёса от провайдера моргание диодом изрядно набило оскомину, когда пришлось часто перезапускать PT :( На смарте с андроидом 5.1 подобных проблем с диодом нет.

Doesn't work in android tv

I have installed power tunnel apk in android tv (Mi TV) but it doesn't work... Should i setup any options setting?

Support for forwarding traffic over an upstream proxy server

As on the purpose of using PowerTunnel with an upstream proxy, the problem with using only TunProxy is that it doesn't have the DNS-over-HTTPS feature and a nice GUI with all the options that you've implemented in PowerTunnel (e.g. quick connect button, while a solution like VPN Client Pro has that button). Plus, I don't have to use Intra alongside the actual TunProxy to both use a proxy and encrypt the DNS (you cannot use multiple VPN connections in Android).

The authorization support is also a nice feature, but what I really think is useful if you could implement it, would be HTTPS proxy support (proxy over SSL); e.q. using https_proxy directive in Squid proxy server. That way, the government cannot inspect the ongoing traffic, as it's always being encrypted. This is what the closed-source UPX Browser is using internally. I have also asked for this on a similar project called DPITunnel, which would be an awesome functionality to have.

Additionally, if you could implement conditional forwarding using a list (kind of like how the government domains list exists), then we can apply DPI obfuscation methods (like Host header modifications or SNI modifications) on domains that can be bypassed that way; then forward everything else to the proxy server. I can confirm that some domains work with PowerTunnel's method, but several others need to be forwarded to the proxy server.

P.S. Alternatively, instead of HTTPS proxy, an HTTP proxy over Chisel can be used, which is awesome since it can work over Cloudflare and similar services. There's already socks support for chisel -- but I believe the HTTP proxy is superior in this case.

Sorry for the long comment!

Originally posted by @DRSDavidSoft in #23 (comment)

Главное окно PowerTunnel не влезает целиком на экран

Главное окно PowerTunnel не влезает целиком на экран, приходится постоянно скроллить. Касается это портретного и альбомного режимов.
2020 12 17_10 49 35
2020 12 17_10 49 56

до кучи, в настройках в портретном режиме не видно опций с длинными заголовками, приходится переворачивать смарт в альюомный режим. Имхо, надо сделать по логн-тапу по опции в портретном режиме подсветку flash-сообщением (или типа того) с полным текстом опции.
2020 12 17_10 54 48

PowerTunnel на 4.2.2 игнорирует сертификат, установленный в системное хранилище

На 4.2.2 я решил пойти по уже проторенной на смарте с 5.1 дорожке и воткнуть сертификат в /system/etc/security/cacerts/ дабы не маяться с пин-кодами, паролями и прочим. Вот только после втыкания сертификата (в списке сертификатов он появился и активен) PT его игнорирует и предлагает установить "пользовательскую" версию. На 5.1 "системный" сертификат без проблем подхватывается.

Возникает дубликат окна после старта PowerTunnel, его сворачивания и вызова из панели уведомлений.

После старта PowerTunnel, его сворачивания и вызова из панели уведомлений и последующем нажатии софт-тач кнопки "назад" видно, что сворачивается дубль окна, повторное нажатие кнопки сворачивает программу окончательно.

Благо дубликат всего один.

Недавно в другом приложении словил подобное и там дубликаты плодились каждый раз при открытии приложения из панели уведомлений. Поэтому тут глаз и зацепился за аналогичную оказию.

F-Droid inclusion

Hi @krlvm

Since this app is MIT licensed, are you considering the fact to add it to F-Droid? There is a strong community behind.

You can find some documentation here.

Netflix doesn't work on Android TV

The app unblocks Netflix on my Pixel 3 device but doesn't work when I sideload it to my Android TV.

device: Android TV Xiaomi TV 4A
OS: Android 9

Лог-файл/лог для локализации проблем ?

Это issue я тоже решил открыть базируясь на вопросах поднятых в соседней ветке, связанными с проблемами открытия сайтов при включённой модификации SNI.

Ведение лога было бы очень полезно в подобных случаях, имхо. Особенно, если учесть насколько широко позволяет логгировать события десктопная версия.

Support iptables

Hello, thank you developer for awesome project.
Many advanced users has ROOTED device now-day and it very useful to add ability iptables traffic rule to redirect all traffic through reverse proxy instead VPN mod for less battery usage.
Thank you again!

Для прокси нужна возможность регулировать ip и порт.

Для прокси нужна возможность регулировать ip и порт.

С портом на случай, если окажется занят, а ip на cлучай использования ProxyTunnel'я на смарте/плеере и т.д. как средства обхода блокировки другими устройствами (т.е. слушать 0.0.0.0 вместо 127.0.0.1). В последнем случае возможность поднять порт "повыше" при любом раскладе была бы не лишней :)

Connection

Hi

Does this connect to a server hosted by someone or is it just creating a tunnel for the connection?

Cheers

Netflix App support on Android TV

hello is it possible to make it useable on netflix on android tv?
the apk for android tv is diffrent from tablet or mobile
on table the apk is com.netflix.mediaclient
but on the android tv is com.netflix.ninja

im able to install the application on the tv
aplication work fine but the app netflix ninja cannot connect to internet if the app is running
but netflix mediaclient works perfectly on the tv

i can use netflix mediaclient but lost remote control function. need to add mouse to control everything.

is it possible to support netflix on tv?

How to setup PowerTunnel to work with AdGuard?

PowerTunnel v1.8.2
Adguard v4.0 nightly 6 (24)

Configure PT to run as proxy, start local proxy. For debugging purposes, disabled all PT settings.

In Adguard go to Settings>Network>Proxy and Enable. PowerTunnel entry is autoconfig:d, check settings anyway and set as http proxy on localhost:9000.

When Adguard is Disabled, you can go to settings and check connection for the PowerTunnel proxy and it will report connection is successful. However if you enable Adguard, no internet access.

I suspect DNS issues and played around with DNS settings in both apps but could not get it to work.

How I can install cert with adb command [ROOTED device] ?!

I've two devices with Android 9 and 10, I cant install cert on android 9 (but installed on Android 10)

I did copy powertunnel-root-ca.p12 & powertunnel-root-ca.pem files to /system/etc and issue the command as root shell:
am start -n com.android.certinstaller/.CertInstallerMain -a android.intent.action.VIEW -t application/x-x509-ca-cert -d file:///system/etc/powertunnel-root-ca.pem
but I got error "certificate not installed error!"

next: I did copy the powertunnel-root-ca.pem file to /system/etc/security/cacerts/ff3efaef.0 (as my random hash name) but I got error in app:
image

I've ROOT access to my devices, so the question is:
How I can install it manually with adb and root access?

Регулирование ttl ?

Ростелеком опять что-то натворил и большая часть решений по обходу отвалилась. Под win работает Goodbye DPI с ключами

-4 --set-ttl 4

В PowerTunnel возможно организовать регуляцию ttl и аналоги ключей из "четвёрки" Goodbye DPI ?

Custom DNS Port

My ISP captures port 53, is it possible to specify alternate port for the DNS?

Chromebook Usage Prevents Linux Traffic

When I install this software on my Lenovo AMD64 Chromebook, which basically runs three different OSs, I have issues with Crostini Linux. The following describes what happens with each OS...

  1. Apps running in the Android environment (like a version of Firefox downloaded from the Google Play store) work well.
  2. The native Chrome browser in the ChromeOS itself works well.
  3. Apps running in the Linux environment (like a DEB version of Firefox) can no longer access any websites at all.

Any thoughts on why this would be the case, or suggestions on how I could adjust the code so that it will allow all web traffic to pass through the VPN and proxy on Chromebook, regardless of the OS?

Локальный socks - прокси ?

Обнаружил, что правило

iptables -t nat -I OUTPUT -p tcp --dport 443 -m owner --uid-owner 10173 -m tcp -j REDIRECT --to-ports 9040

применённое для прозрачного редиректа https - траффика на порт socks-прокси TOR'a вполне себе работает. На http-прокси polipo/PowerTunnel без проблем редиректится только с 80-го порта. С 443-м портом затык.

Установка сертификата для модификации SNI по принципу AdGuard

Ну и последнее issue, что хотелось бы вынести в отдельное issue из соседнего треда - это предложение по установке сертрфиката по тем же принципам, что в AdGuard

Т.е. я имел ввиду сделать отдельный раздел или типа того, где есть тумблер для включения SNI. Дёргаешь тумблер - чекается установлен ли сертификат и если да - включается. Нет - предлагаеся установка. Плюс можно сделать такую же "альтернативную" установку в бразеры, которые не зависят от системных сертификатов типа firefox'a или oper'ы classic. Плюс в дополнение можно сделать сохранение сертификата на накопитель. В общем всё по лекалам AdGuard'a ))) т.к. сейчас манипуляции с сертификатом не слишком удобны, о чём я и писал выше :

А то поначалу мне нужен был SNI, но не нужна установка сертификата из-за чего PT хоть и запускал прокси, но попап с установкой сертификата не убирал. А если я закрывал попап, то прокси вырубался.

И если используются браузеры с собственными сертификатами, как firefox, то нужен ещё один тумблер для включения SNI без установки сертификата. Имхо.

Proxy Server + authentication

Hi. Great app. One question, can I use it with a USA proxy server? Meaning can I use it to connect to a paid-premium proxy server so i can unblock Netflix and other websites? Also does this support proxy authentication (username:password)

Where and how would I log the returned HTML?

I am trying to see if I can, inside the PowerTunnel app, log the HTML that is returned.

While PowerTunnel is running in an Android virtual device via Android Studio, if I open Chrome browser and go to a URL, where or how could I Log.d() the HTML that has been returned for the webpage? Which function would be the best place to get the HTML? And how would I obtain it? Or, is it even available at all? If it is not available, is there some way to obtain the title of the webpage? Or, at minimum, the full URL (not just the domain)?

This is not a bug with your software. My goal right now is to learn more about how proxies work in Java, particularly in Android devices... and I'm having a great deal of difficulty understanding it all.

Thank you for any assistance or suggestions you can provide! Or even a good tutorial you can point me to!

Allow to start proxy on boot

Hi, First I want to thank you for making this tool available on Android, recently Indian ISP's have increased censorship efforts and block websites randomly, archive.org, wetransfer etc using DPI and this tool has made the web accessible again.

Anyways I use PowerTunnel with Blokada (Custom DNS and Filtering ads). Every time the device is rebooted, I loose internet connection as I have setup proxy for my Wi-Fi connection, it would be amazing if you would consider adding an autostart function.

Regards,

BitTorrent Protocol Support.

Does PowerTunnel support downloading torrents?

When I'm using PowerTunnel Can ISPs Detect My Torrent Traffic?

Свободный вход в настройки при активном PT и его автоперезапуск при изменении настроек ?

Провайдер вставил очередные палки и понадобилось мне погонять PT в разных режимах. В итоге это превратилось в муторную задачу - запустить PT, проверить доступ, остановить PT, зайти в настройки, запустить PT ...

Можно сделать свободный вход при активном PT и его автоперезапуск при изменении настроек, как это реализовано в AdGuard например ?

Live DNS logs in the app

It would be nice to see live DNS log in the app and connection going in and out through power tunnel.

Не работает модификация SNI

Базируясь на соседней ветке, решил открыть отдельное issue по данному вопросу и перенести обсуждение сюда т.к. на на смарте с 4.2.2 запрос при включённой модификации SNI тоже не заработал (напомню, на десктопе фейк-хост для меня сработал). Если на смарте с 5.1 через PT ловил 502 Bad Gateway (curl) и ERR_TUNNEL_CONNECTION_FAILED (хром), то на 4.2.2 в curl всё встаёт колом

curl --cacert /data/data/ru.krlvm.powertunnel.android/files/powertunnel-root-ca.pem -x '127.0.0.1:8085' -sviL 'https://rutracker.org'
* Rebuilt URL to: https://rutracker.org/
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8085 (#0)
* Establish HTTP proxy tunnel to rutracker.org:443
> CONNECT rutracker.org:443 HTTP/1.1
> Host: rutracker.org:443
> User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0
> Proxy-Connection: Keep-Alive
> 
^C

а в хроме валится

Не удается получить доступ к сайту Превышено время ожидания ответа от сайта rutracker.org. Попробуйте сделать следующее:

Проверьте подключение к Интернету.
ERR_CONNECTION_TIMED_OUT

Без модификации SNI запрос по https быстро "соскакивает", напарываясь на DPI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.