All Projects → SadeghHayeri → Greentunnel

SadeghHayeri / Greentunnel

Licence: mit
GreenTunnel is an anti-censorship utility designed to bypass the DPI system that is put in place by various ISPs to block access to certain websites.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects
powershell
5483 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Greentunnel

greentunnel4jvm
Green Tunnel Alternative for JVM Languages
Stars: ✭ 15 (-99.39%)
Mutual labels:  dpi, socks, vpn, isp, filtering, firewall-bypass
Dpitunnel
DPITunnel is an android app made for censorship bypass
Stars: ✭ 179 (-92.77%)
Mutual labels:  dpi, proxy, vpn, socks
Brook
Brook is a cross-platform strong encryption and not detectable proxy. Zero-Configuration. Brook 是一个跨平台的强加密无特征的代理软件. 零配置.
Stars: ✭ 12,694 (+412.47%)
Mutual labels:  proxy, vpn, socks
Proxy List
Get PROXY List that gets updated everyday
Stars: ✭ 347 (-85.99%)
Mutual labels:  proxy, vpn, socks
Reflow
Content-routable socks5 proxy switcher for your entire LAN.
Stars: ✭ 170 (-93.14%)
Mutual labels:  proxy, vpn, socks
Leaf
A lightweight and fast proxy utility tries to include any useful features.
Stars: ✭ 530 (-78.6%)
Mutual labels:  proxy, vpn, socks
Gap Proxy
gap-proxy 是一个加速网络的 SOCKS5 安全代理工具。
Stars: ✭ 144 (-94.19%)
Mutual labels:  proxy, socks
Google Mirrors
Google谷歌、Wikipedia维基百科、谷歌学术镜像2021年1月最新 新增各种镜像站
Stars: ✭ 146 (-94.11%)
Mutual labels:  proxy, vpn
Beyond
BeyondCorp-inspired Access Proxy. Secure internal services outside your VPN/perimeter network during a zero-trust transition.
Stars: ✭ 151 (-93.9%)
Mutual labels:  proxy, vpn
Unfx Proxy Checker
Unfx Proxy Checker - Powerful proxy checker with huge features and beautiful design. Easy sorting and filtering by all parameters.
Stars: ✭ 158 (-93.62%)
Mutual labels:  proxy, socks
Core
OPNsense GUI, API and systems backend
Stars: ✭ 1,827 (-26.24%)
Mutual labels:  proxy, vpn
Powertunnel
Simple, scalable, cross-platform and effective solution against government censorship
Stars: ✭ 157 (-93.66%)
Mutual labels:  dpi, proxy
3proxy
3proxy - tiny free proxy server
Stars: ✭ 2,263 (-8.64%)
Mutual labels:  proxy, socks
Tinyfecvpn
A VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support. Improves your Network Quality on a High-latency Lossy Link.
Stars: ✭ 1,842 (-25.64%)
Mutual labels:  proxy, vpn
Fanqiang Book
2021科学上网指南,小白图文攻略 | 翻墙/梯子/自由上网/SSR/V2Ray/
Stars: ✭ 127 (-94.87%)
Mutual labels:  proxy, vpn
Vpngate With Proxy
vpn gate client for linux, be able to connect to open vpn server through proxy
Stars: ✭ 150 (-93.94%)
Mutual labels:  proxy, vpn
Flynet
A powerful TCP/UDP tool, which support socks5 proxy by tcp and udp, http proxy and NAT traversal. This tool can help you bypass gfw easily
Stars: ✭ 124 (-94.99%)
Mutual labels:  proxy, socks
Powertunnel Android
Simple, scalable, cross-platform and effective solution against government censorship for Android
Stars: ✭ 157 (-93.66%)
Mutual labels:  dpi, proxy
Webrtc Leak Prevent
Prevent WebRTC leaks in Chromium browsers.
Stars: ✭ 182 (-92.65%)
Mutual labels:  proxy, vpn
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 38,782 (+1465.68%)
Mutual labels:  proxy, socks

Green Tunnel

green tunnel logo

GreenTunnel bypasses DPI (Deep Packet Inspection) systems found in many ISPs (Internet Service Providers) which block access to certain websites.

green tunnel demo

How to use

Graphical user interface (GUI)

You can simply choose the suitable installation for your OS in the releases section.

Command-line interface (CLI)

You can install GreenTunnel using npm:

$ npm i -g green-tunnel

or using snap (edge version):

sudo snap install --edge green-tunnel --devmode

after installation you can run it using gt or green-tunnel commands.

$ gt --help
Usage: green-tunnel [options]
Usage: gt [options]

Options:
  --help, -h      Show help                                            [boolean]
  --version, -V   Show version number                                  [boolean]
  --ip            ip address to bind proxy server[string] [default: "127.0.0.1"]
  --https-only    Block insecure HTTP requests        [boolean] [default: false]
  --port          port address to bind proxy server     [number] [default: 8000]
  --dns-type               [string] [choices: "https", "tls"] [default: "https"]
  --dns-server        [string] [default: "https://cloudflare-dns.com/dns-query"]
  --silent, -s    run in silent mode                  [boolean] [default: false]
  --verbose, -v   debug mode                              [string] [default: ""]
  --system-proxy  automatic set system-proxy           [boolean] [default: true]

Examples:
  gt
  gt --ip 127.0.0.1 --port 8000 --https-only
  gt --dns-server https://doh.securedns.eu/dns-query
  gt --verbose 'green-tunnel:proxy*'

ISSUES:  https://github.com/SadeghHayeri/GreenTunnel/issues

for debug use verbose option:

$ green-tunnel --verbose 'green-tunnel:*'

Docker

$ docker run -p 8000:8000 sadeghhayeri/green-tunnel

envs

  • PORT
  • HTTPS-ONLY
  • VERBOSE
  • SILENT
  • DNS_TYPE
  • DNS_SERVER

usage:

$ docker run -e 'PORT=1000' -p 8000:1000 sadeghhayeri/green-tunnel

On Raspberry Pi

$ docker run -p 8000:8000 sadeghhayeri/green-tunnel:arm

If you want to make container keep running when reboot:

$ docker run -d --restart unless-stopped -p 8000:8000 sadeghhayeri/green-tunnel:arm

Please make sure port 8000 is not blocked on Raspberry Pi firewall. (sudo ufw allow 8000 comment Green-Tunnel)

To use it on your other device, set http proxy to <Raspberry Pi IP Address>:<PORT>. (PORT = 8000)

Tested on

  • MacOS Catalina with node 12
  • Ubuntu 18.04 with node 8
  • Windows 10 with node 8

FAQ

How does it work?

HTTP

There are gaps in providers in DPI. They happen from what the DPI rules write for ordinary user programs, omitting all possible cases that are permissible by standards. This is done for simplicity and speed. Some DPIs cannot recognize the HTTP request if it is divided into TCP segments. For example, a request of the form

GET / HTTP/1.0`
Host: www.youtube.com
...

we send it in 2 parts: first comes GET / HTTP/1.0 \n Host: www.you and second sends as tube.com \n .... In this example, ISP cannot find blocked word youtube in packets and you can bypass it!

HTTPS

Server Name Indication (SNI) is an extension to TLS (Transport Layer Security) that indicates the actual destination hostname a client is attempting to access over HTTPS. For this Web Filter feature, SNI hostname information is used for blocking access to specific sites over HTTPS. For example, if the administrator chooses to block the hostname youtube using this feature, all Website access attempts over HTTPS that contain youtube like www.youtube.com in the SNI would be blocked. However, access to the same hostname over HTTP would not be blocked by this feature. GreenTunnel tries to split first CLIENT-HELLO packet into small chunks and ISPs can't parse packet and found SNI field so bypass traffic!

DNS

When you enter a URL in a Web browser, the first thing the Web browser does is to ask a DNS (Domain Name System) server, at a known numeric address, to look up the domain name referenced in the URL and supply the corresponding IP address. If the DNS server is configured to block access, it consults a blacklist of banned domain names. When a browser requests the IP address for one of these domain names, the DNS server gives a wrong answer or no answer at all. GreenTunnel use DNS over HTTPS and DNS over TLS to get real IP address and bypass DNS Spoofing.

Development notes

GreenTunnel is an open-source app and I really appreciate other developers adding new features and/or helping fix bugs. If you want to contribute to GreenTunnel, you can fork this repository, make the changes and create a pull request.

However, please make sure you follow a few rules listed below to ensure that your changes get merged into the main repo. The rules listed below are enforced to make sure the changes made are well-documented and can be easily kept track of.

  • ⇄ Pull requests and ★ Stars are always welcome.
  • For bugs and feature requests, please create an issue.
  • Make sure your pull request has an informative title. You should use prefixes like ADD:, FIX:, etc at the start of the title which describes the changes followed by a one-line description of the changes. Example: ADD: Added a new feature to GreenTunnel
  • Commits in your fork should be informative, as well. Make sure you don't combine too many changes into a single commit.

TODO List

  • enable/disable proxy on windows
  • HTTPHandler
  • add CLI arguments
  • catch all exceptions
  • add preferences menu
  • fix close button

Donation

Love GreenTunnel? Please consider donating to sustain our activities.

DOGECOIN!: DTGjx8KKDCUkSEbtVHgQx1GYEnNaVVuXLa
BITCOIN: bc1qknjsmsa98lljwxjwl4pmjh48s8su8r8ajkqd8w
ETHEREUM: 0x018fbf3fAC7165b2c85f856cC90E2d9410415150
LITECOIN: ltc1q5tfprazpkzjvzf5shgprkpkhnnku3p72feutxt
RIPPLE/XRP: rt6ZTkKdBVYzBee9CpQsDTsewnTbAoV13



Donate with Bitcoin Donate with Ethereum Donate with Ripple

License

Licensed under the MIT license. See LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].