# cyfdecyf/cow

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/cyfdecyf-cow).**

8,421 stars · 1,602 forks · Go · BSD-2-Clause

## Links

- GitHub: https://github.com/cyfdecyf/cow
- awesome-repositories: https://awesome-repositories.com/repository/cyfdecyf-cow.md

## Description

This project is a Go-based HTTP proxy server designed as a censorship circumvention tool. It functions as an upstream proxy manager and SOCKS5 tunneling gateway that routes network traffic between clients and destination servers to bypass network restrictions.

The system differentiates itself through automated proxy routing, which detects unreachable websites and automatically switches traffic between direct access and a pool of parent proxies. It includes a PAC file generator to produce proxy auto-config files for browsers and integrates SSH tunneling to establish secure remote sockets.

Broader capabilities include upstream proxy load balancing, connection pooling to reduce handshake latency, and IP-based access control for restricting proxy usage. The project also monitors site connectivity and tracks visit statistics to optimize routing decisions and estimate connection timeouts.

Settings are managed through configuration files located in the executable directory.

## Tags

### Networking & Communication

- [HTTP Proxies](https://awesome-repositories.com/f/networking-communication/http-proxies.md) — Provides a Go-based HTTP proxy server that routes network traffic between clients and destination servers.
- [Censorship Bypass Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-infrastructure-configuration/network-infrastructure/traffic-routing-proxies/censorship-bypass-routing.md) — Routes network traffic through parent proxies to circumvent regional or national internet censorship.
- [Proxy Routing](https://awesome-repositories.com/f/networking-communication/request-proxies/proxy-routing.md) — Routes network traffic through a managed pool of HTTP and SOCKS5 parent proxies to access restricted content. ([source](https://github.com/cyfdecyf/cow/blob/master/main.go))
- [Censorship Circumvention Tools](https://awesome-repositories.com/f/networking-communication/censorship-circumvention-tools.md) — Functions as a tool to bypass regional network restrictions by routing blocked sites through parent proxies.
- [Direct Connection Routing](https://awesome-repositories.com/f/networking-communication/direct-connection-routing.md) — Allows specified domains to be accessed directly, bypassing the proxy to ensure connectivity to unrestricted sites. ([source](https://github.com/cyfdecyf/cow/blob/master/site_direct.go))
- [Domain Traffic Filters](https://awesome-repositories.com/f/networking-communication/domain-traffic-filters.md) — Matches network requests against domain lists to determine if traffic must be routed through a parent proxy. ([source](https://github.com/cyfdecyf/cow/blob/master/site_blocked.go))
- [Proxy Load Balancers](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-proxying-tools/network-proxy-management/proxy-load-balancers.md) — Distributes outgoing traffic across a pool of parent proxies using hashing, latency, or backup strategies. ([source](https://github.com/cyfdecyf/cow/blob/master/README-en.md))
- [Connectivity-Based Auto-Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/network-traffic-management/automated-traffic-routing/connection-aware-routing-scenes/connectivity-based-auto-routing.md) — Automatically detects unreachable websites and switches traffic between direct access and parent proxies to bypass blocks.
- [Proxy Management Systems](https://awesome-repositories.com/f/networking-communication/proxy-management-systems.md) — Manages pools of parent proxies with integrated load balancing and failure detection mechanisms.
- [Upstream Proxy Pools](https://awesome-repositories.com/f/networking-communication/proxy-pool-automation/upstream-proxy-pools.md) — Maintains and rotates a pool of upstream proxies to ensure reliable connectivity and bypass network censorship. ([source](https://github.com/cyfdecyf/cow/blob/master/main.go))
- [Dynamic Proxy Selection](https://awesome-repositories.com/f/networking-communication/traffic-proxying/proxy-traffic-management/dynamic-proxy-selection.md) — Dynamically selects the optimal proxy node based on success-rate maps and configuration lists.
- [SOCKS5 Gateway Tunnels](https://awesome-repositories.com/f/networking-communication/unix-domain-socket-support/tunneled-unix-socket-forwarding/ssh-tunneling-forwarders/socks5-gateway-tunnels.md) — Implements a SOCKS5 tunneling gateway that manages SSH tunnels for secure remote traffic forwarding.
- [Connection Pooling](https://awesome-repositories.com/f/networking-communication/connection-pooling.md) — Reuses active network connections based on host and port to reduce handshake latency. ([source](https://github.com/cyfdecyf/cow/blob/master/conn_pool_test.go))
- [Connection Pooling Mechanisms](https://awesome-repositories.com/f/networking-communication/connection-pooling-mechanisms.md) — Shares established network connections between clients to minimize handshake overhead and reduce latency.
- [SSH Tunneling Forwarders](https://awesome-repositories.com/f/networking-communication/unix-domain-socket-support/tunneled-unix-socket-forwarding/ssh-tunneling-forwarders.md) — Integrates SSH tunneling to establish secure remote sockets and local SOCKS5 proxies.

### Part of an Awesome List

- [Automated Block Detection](https://awesome-repositories.com/f/awesome-lists/devops/monitoring-and-logging/blocked-connection-monitoring/automated-block-detection.md) — Automatically detects unreachable websites and reroutes traffic through parent proxies when direct connections fail. ([source](https://github.com/cyfdecyf/cow/blob/master/README.md))
- [Blocked Connection Monitoring](https://awesome-repositories.com/f/awesome-lists/devops/monitoring-and-logging/blocked-connection-monitoring.md) — Monitors successful and failed connection attempts per domain to identify blocked websites. ([source](https://github.com/cyfdecyf/cow/blob/master/sitestat.go))

### DevOps & Infrastructure

- [Access Control Lists](https://awesome-repositories.com/f/devops-infrastructure/network-traffic-controllers/access-control-lists.md) — Uses configuration files to define domains that are permanently blocked or accessed directly. ([source](https://github.com/cyfdecyf/cow/blob/master/README.md))

### Development Tools & Productivity

- [Host Routing Statistics](https://awesome-repositories.com/f/development-tools-productivity/automatic-file-tracking/visit-history-tracking/host-routing-statistics.md) — Records successful visits and blocked attempts per host to determine the most effective routing method. ([source](https://github.com/cyfdecyf/cow/blob/master/sitestat_test.go))
- [Network Visit Histories](https://awesome-repositories.com/f/development-tools-productivity/automatic-file-tracking/visit-history-tracking/network-visit-histories.md) — Maintains a timestamped history of visited hosts and success rates to optimize proxy routing. ([source](https://github.com/cyfdecyf/cow/blob/master/README-en.md))

### Security & Cryptography

- [Access Control Lists](https://awesome-repositories.com/f/security-cryptography/access-restrictions/access-control-lists.md) — Implements access control lists to restrict proxy usage based on client IP addresses and password files.
- [Client Usage Restrictions](https://awesome-repositories.com/f/security-cryptography/access-restrictions/client-usage-restrictions.md) — Restricts proxy usage by authenticating users through password files or specific client identifiers. ([source](https://github.com/cyfdecyf/cow/blob/master/config.go))
- [SSH Tunneling](https://awesome-repositories.com/f/security-cryptography/network-infrastructure-security/web-network-security/network-security/network-routing-access-control/ssh-tunneling.md) — Establishes secure tunnels using system commands and public key authentication to create local SOCKS5 proxies. ([source](https://github.com/cyfdecyf/cow/blob/master/doc/sample-config/rc))
- [Proxy Authentication](https://awesome-repositories.com/f/security-cryptography/proxy-authentication.md) — Enforces access control on network proxy connections through credential-based validation. ([source](https://github.com/cyfdecyf/cow/blob/master/main.go))

### System Administration & Monitoring

- [Host Connectivity Statistics](https://awesome-repositories.com/f/system-administration-monitoring/host-connectivity-statistics.md) — Tracks connection success rates for hosts to optimize routing decisions and update access lists. ([source](https://github.com/cyfdecyf/cow#readme))
- [IP Access Restrictions](https://awesome-repositories.com/f/system-administration-monitoring/ip-address-blocklists/ip-access-restrictions.md) — Validates client IP addresses and requires credentials to restrict access to the proxy server. ([source](https://github.com/cyfdecyf/cow/blob/master/doc/sample-config/rc))
- [PAC Script Generators](https://awesome-repositories.com/f/system-administration-monitoring/traffic-automation-scripts/pac-script-generators.md) — Generates Proxy Auto-Configuration (PAC) files to automate routing decisions in web browsers.
