All Projects → wweir → Sower

wweir / Sower

Licence: mit
Sower is a cross-platform intelligent transparent proxy solution.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Sower

Dowse
The Awareness Hub for the Internet of Things
Stars: ✭ 139 (-64.45%)
Mutual labels:  router, dns, dhcp
Glider
glider is a forward proxy with multiple protocols support, and also a dns/dhcp server with ipset management features(like dnsmasq).
Stars: ✭ 1,710 (+337.34%)
Mutual labels:  dns, http-proxy, dhcp
noddos
Noddos client
Stars: ✭ 78 (-80.05%)
Mutual labels:  dns, router, dhcp
Nettygateway
NettyGateway is a HTTP proxy server with flexible routing rules.
Stars: ✭ 73 (-81.33%)
Mutual labels:  router, http-proxy
Netdot
Network Documentation Tool
Stars: ✭ 180 (-53.96%)
Mutual labels:  dns, dhcp
Flutter thrio
flutter_thrio makes it easy and fast to add flutter to existing mobile applications, and provide a simple and consistent navigator APIs.
Stars: ✭ 717 (+83.38%)
Mutual labels:  router, cross-platform
Esp wifimanager
This is an ESP32 / ESP8266 WiFi Connection Manager with fallback web configuration portal. Use this library for configuring ESP32, ESP8266 modules' WiFi, etc. Credentials at runtime. You can also specify static DNS servers, personalized HostName, fixed or random AP WiFi channel. With examples supporting ArduinoJson 6.0.0+ as well as 5.13.5- .
Stars: ✭ 125 (-68.03%)
Mutual labels:  dns, dhcp
React Router Relay
[Deprecated] Relay Classic integration for React Router
Stars: ✭ 561 (+43.48%)
Mutual labels:  relay, router
Uwebsockets
Simple, secure & standards compliant web server for the most demanding of applications
Stars: ✭ 13,412 (+3330.18%)
Mutual labels:  router, cross-platform
Mirror
Deploy Google and Wikipedia mirror with one command using now.sh.
Stars: ✭ 93 (-76.21%)
Mutual labels:  certificate, http-proxy
pi-ap
Raspberry Pi Access Point: This repo automates the configuration of hostapd, dnsmasq, dhcpcd & wpa_supplicant to transform a Pi into a wireless AP. Requirements: a Pi, an Ethernet cable and a DHCP-enabled port on a router with a 'net connection or a switch connected to this router.
Stars: ✭ 69 (-82.35%)
Mutual labels:  router, dhcp
Ddoor
DDoor - cross platform backdoor using dns txt records
Stars: ✭ 168 (-57.03%)
Mutual labels:  dns, cross-platform
Dnsmasqweb
基于DNSmasq的DNS解析、以及DHCP地址分配系统
Stars: ✭ 166 (-57.54%)
Mutual labels:  dns, dhcp
Nogo
A cross-platform network-wide ad/site blocker with a simple web control panel.
Stars: ✭ 143 (-63.43%)
Mutual labels:  dns, cross-platform
zonemanager
Central DNS/DHCP database with replication to Amazon Route53, BIND, MikroTik routers and other services.
Stars: ✭ 29 (-92.58%)
Mutual labels:  dns, dhcp
http-connection-lifecycle
Complete and detailed explanation of HTTP connection lifecycle
Stars: ✭ 43 (-89%)
Mutual labels:  dns, router
Skipper
An HTTP router and reverse proxy for service composition, including use cases like Kubernetes Ingress
Stars: ✭ 2,606 (+566.5%)
Mutual labels:  router, http-proxy
Ona
OpenNetAdmin IP Address Management (IPAM) system
Stars: ✭ 116 (-70.33%)
Mutual labels:  dns, dhcp
Crypt Le
Crypt::LE - Let's Encrypt / Buypass / ACME client and library in Perl for obtaining free SSL certificates (inc. generating RSA/ECC keys and CSRs). HTTP/DNS verification is supported out of the box, easily extended with plugins, easily dockerized.
Stars: ✭ 277 (-29.16%)
Mutual labels:  dns, certificate
Found Relay
Relay integration for Found
Stars: ✭ 258 (-34.02%)
Mutual labels:  relay, router

sower

GitHub release Actions Status Docker Cloud Build Status GitHub issue GitHub star GitHub license

中文介绍见 Wiki

The sower is a cross-platform intelligent transparent proxy tool.

The first time you visit a new website, the sower will detect if the domain is accessible and add it in the dynamic detect list. So, you do not need to care about the rules, sower will handle it intelligently.

Sower provider both http_proxy/https_proxy and DNS-based proxy. All these kinds of proxy support intelligent router. You can also port-forward any TCP request to remote, such as SSH / SMTP / POP3.

You can enjoy it by setting http_proxy or your DNS without any other settings.

If you already have another proxy solution, you can use it's socks5(h) service as a parent proxy to enjoy the sower's intelligent router.

Installation

To enjoy the sower, you need to deploy sower on both server-side and client-side.

The installation script has been integrated into the sower. You can install sower as system service by running ./sower -install 'xxx' in terminal on the three most popular operating system platforms: Linux / Windows and masOS.

Server

If you already have another proxy solution with socks5h support, you can skip server-side.

At the server-side, the sower runs just like a web server proxy. It redirects HTTP requests to HTTPS and proxy https requests to the upstream HTTP service. You can use your certificate or use the auto-generated certificate by the sower.

What you must set is the upstream HTTP service. You can set it by parameter -s, eg:

# sower -s 127.0.0.1:8080

Client

The easiest way to run it is:

# sower -c aa.bb.cc # the `aa.bb.cc` can also be `socks5h://127.0.0.1:1080`

But a configuration file is recommended to persist dynamic rules in client side.

There are 3 kinds of proxy solutions, they are HTTP(S)_PROXY / DNS-based proxy / port-forward.

HTTP(S)_PROXY

An HTTP(S)_PROXY listening on :8080 is set by default if you run sower as client mode.

DNS-based proxy

DNS-based solution is not recommanded now, for incompatible with TLS 1.3 esni extention. DNS flush logic has been dropped, you should flush your dns cache manually in Windows and macOS.

You can set the dns_serve_ip field in the configuration file to start the DNS-based proxy. You should also set the value of dns_upstream as your default DNS in OS.

If you want to enjoy the full experience provided by the sower, you can take sower as your private DNS on a long-running server and set it as your default DNS in your router.

port-forward

The port-forward can be only setted in configuration file, you can set it in section client.port_mapping, eg:

[client.port_mapping]
":2222"="aa.bb.cc:22"

Architecture

  relay   <--+       +-> target
http service |       |   service
     +-------+-------+----+
     |    sower server    |
     +----^-------^-------+
          80     443
301 http -+       +----- https
to https          |     service
               protected
                by tls
          socks5  |
 dns <---+   ^    |  +--> direct
relay    |   |    |  |   request
     +---+---+----+--+----+
     |    sower client    |
     +----^--^----^---^---+
          |  |    |   |
    dns --+  +    +   +-- port
            80  http(s)  forward
           443  proxy
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].