Clash is an open-source rule-based proxy and networking tool written in Go that allows users to route internet traffic through multiple proxy protocols based on configurable rules. It is designed to give users fine-grained control over how different types of traffic are handled, enabling selective routing, filtering, or blocking depending on domains, IP addresses, or geographic conditions. The system supports multiple proxy protocols and can act as a local proxy server for HTTP, HTTPS, and SOCKS connections, making it compatible with a wide range of applications and devices. Clash uses a configuration-driven approach, where users define proxy groups, routing rules, and fallback strategies to optimize performance or bypass restrictions. It also includes features such as GeoIP-based routing and dynamic proxy selection, allowing traffic to be automatically directed through the most appropriate route.
Features
- Support for HTTP HTTPS and SOCKS proxy protocols
- Rule based routing using domains IP addresses and GeoIP data
- Proxy group management with load balancing and fallback strategies
- Integration with multiple proxy protocols such as Shadowsocks and VMess
- REST API for dynamic configuration and control
- Transparent proxy and tunneling capabilities including TUN support