All Projects → net-reflow → Reflow

net-reflow / Reflow

Content-routable socks5 proxy switcher for your entire LAN.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Reflow

Brook
Brook is a cross-platform strong encryption and not detectable proxy. Zero-Configuration. Brook 是一个跨平台的强加密无特征的代理软件. 零配置.
Stars: ✭ 12,694 (+7367.06%)
Mutual labels:  proxy, vpn, socks5, socks
Exodus
network proxy and tunnel (VPN)
Stars: ✭ 432 (+154.12%)
Mutual labels:  proxy, socks5, tap
Proxy List
Get PROXY List that gets updated everyday
Stars: ✭ 347 (+104.12%)
Mutual labels:  proxy, vpn, socks
Psiphon
A multi-functional version of a popular network circumvention tool
Stars: ✭ 169 (-0.59%)
Mutual labels:  proxy, socks5, socks
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 (-27.06%)
Mutual labels:  proxy, socks5, socks
Socks5
A full-fledged high-performance socks5 proxy server written in C#. Plugin support included.
Stars: ✭ 286 (+68.24%)
Mutual labels:  proxy, socks5, socks
Daze
Daze is a tool to help you link to the Internet.
Stars: ✭ 580 (+241.18%)
Mutual labels:  proxy, socks5, socks
Jsocksproxy
SOCKS proxy written in Java
Stars: ✭ 19 (-88.82%)
Mutual labels:  proxy, socks5, socks
Docker Dante Telegram
dante config builder for Telegram SOCKS-proxy & Dockerfile for building image with such proxy
Stars: ✭ 16 (-90.59%)
Mutual labels:  proxy, socks5, socks
Freess
免费ss账号 免费shadowsocks账号 免费v2ray账号 (长期更新)
Stars: ✭ 6,544 (+3749.41%)
Mutual labels:  proxy, vpn, socks5
Tor Socks Proxy
🐳 Tiny Docker(🤏 10MB) image as 🧅 Tor SOCKS5 proxy 🛡
Stars: ✭ 218 (+28.24%)
Mutual labels:  proxy, socks5, socks
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 38,782 (+22712.94%)
Mutual labels:  proxy, socks5, socks
Greentunnel
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.
Stars: ✭ 2,477 (+1357.06%)
Mutual labels:  proxy, vpn, socks
Socks5
SOCKS Protocol Version 5 Library in Go. Full TCP/UDP and IPv4/IPv6 support
Stars: ✭ 321 (+88.82%)
Mutual labels:  proxy, socks5, socks
Dpitunnel
DPITunnel is an android app made for censorship bypass
Stars: ✭ 179 (+5.29%)
Mutual labels:  proxy, vpn, socks
Leaf
A lightweight and fast proxy utility tries to include any useful features.
Stars: ✭ 530 (+211.76%)
Mutual labels:  proxy, vpn, socks
Blinksocks
A framework for building composable proxy protocol stack.
Stars: ✭ 587 (+245.29%)
Mutual labels:  proxy, protocol, socks5
V2ray Core
A platform for building proxies to bypass network restrictions.
Stars: ✭ 13,438 (+7804.71%)
Mutual labels:  proxy, vpn, socks5
3proxy
3proxy - tiny free proxy server
Stars: ✭ 2,263 (+1231.18%)
Mutual labels:  proxy, socks5, socks
Fanqiang Book
2021科学上网指南,小白图文攻略 | 翻墙/梯子/自由上网/SSR/V2Ray/
Stars: ✭ 127 (-25.29%)
Mutual labels:  proxy, vpn

Reflow: One proxy to rule them all

This program let you make full use of all your proxies, VPNs, and interfaces, automatically.

Features

  • Route ip packets to proxies

    It operates on the network layer, so you can stop worrying about proxy support in applications. You can use a socks5 proxy wherever you want. And you won't forget to use your privacy-enhanced VPNs, ever.

  • Detect protocol metadata for finer-grained control

    In addtion to ip address and port, protocol (HTTP, TLS, SSH, etc.) metadata (domain name, user-agent, etc.) are detected.

  • Prefix-match domain names and ip subnets

    Use a trie or prefix tree to sort domains and addresses into zones, because they have a natural hierarchical ownership structure

  • Use a tree diagram to configure any routing strategy

    Any decision-making process that can be expressed as a cascade of conditional statements can be used. Use all the protocol information to make intelligent routing decisions. Privacy, speed, low cost, choose any three.

  • Selectively proxy DNS queries depending on the domain name

  • Drop traffic to domains or ip address known to serve only ads and tracking

    It handles tens of thousands of domains with ease even on an OpenWrt device

Installation

After you have the nightly version of Cargo installed.

Clone the project git clone https://github.com/net-reflow/reflow

and run cargo install, the binary will be installed in ~/.cargo/bin/reflow

You can now run it using reflow --config path, where path is the directory containing all the configuration

A good starting point for the configuration is reflow.conf

What does the Decision Tree do in a proxy?

This is where the power of reflow shows, you'll get a basic idea by looking at an example with comments:

any[
    # when your computer wants to make a connection to the internet
    # reflow inspects the first packets, thoroughly
    # first, it checks the domain, (if the application layer protocol uses a domain)
    cond domain {
      # if it's listed as one of "secret-sites" (including sub-domains) in configuration
      # use the proxy defined as privacyproxy
      secret-sites => privacyproxy
      # block traffic to known ad servers by domain
      # "reset" is a built-in option, which means drop the connection
      adservers => reset
      # you can chain rules, the following will only match when the domain is in https-only and the protocol is http
      # otherwise, this "cond domain" section doesn't match, and rules following it will be tried
      https-only => cond protocol {
        http => reset
      }
    }

    # next look at ip addresses
    cond ip {
        # you can use workvpn0 to access your working environment
        worknet => workvpn0
        # "direct" is a another built-in option, meaning use the existing default route 
        homelan => direct
    }
    # if the rules above hasn't produced a match, continue to check the protocol
    cond protocol {
      ssh => any [
        cond ip  {
        # some ssh hosts may be only accessible through a certain proxy
            mars => moon
        }
        # another example of combing conditions: when the protocol is ssh AND the port is 22
        cond port eq 22 => proxy1
        # this will always match sucessfully for ssh traffic
        direct
      ]
    }
    # catch-all rule for everything else
    direct
]

The enclosing any[ and ] means rules listed inside it will be tried one by one

Configuration

Example configuration and documentation is provided at reflow.conf

Contributing

Please try it and give any kind of feedback by opening issues

Development

Here're some features being developed or considered:

  • Built-in tun support, add UDP support
  • Support more protocols
  • Chaining proxies
  • Add Dns over https or tls support
  • Add Dns cache

Make a Donation

BTC: bc1q8cxs2e3wf525f958zgxzq4skl94nfzwuuq97qz

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