This repository has been archived on 2024-09-06 . You can view files and clone it, but cannot push or open issues or pull requests.

This commit adds an updated function that adjusts the TTL values of DNS records are based on the minimum TTL the value found in the records list so that all records share the same TTL value. This ensures consistency in the cache expiry time for all records to prevent caching issues.
Clash
A rule-based tunnel in Go.
Features
- Local HTTP/HTTPS/SOCKS server with authentication support
- Shadowsocks(R), VMess, Trojan, Snell, SOCKS5, HTTP(S) outbound support
- Built-in fake-ip DNS server that aims to minimize DNS pollution attack impact. DoH/DoT upstream supported.
- Rules based off domains, GEOIP, IP-CIDR or process names to route packets to different destinations
- Proxy groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select proxy based off latency
- Remote providers, allowing users to get proxy lists remotely instead of hardcoding in config
- Transparent proxy: Redirect TCP and TProxy TCP/UDP with automatic route table/rule management
- Hot-reload via the comprehensive HTTP RESTful API controller
Premium
Premium core is proprietary. You can find their release notes and pre-built binaries here.
- gvisor/system stack TUN device on macOS, Linux and Windows (ref)
- Policy routing with Scripts
- Load your rules with Rule Providers
- Monitor Clash usage with a built-in profiling engine. (Dreamacro/clash-tracing)
Getting Started
Documentations are available at GitHub Wiki.
Development
If you want to build a Go application that uses Clash as a library, check out the GitHub Wiki.
Credits
License
This software is released under the GPL-3.0 license.
Description
Languages
Go
99.2%
Makefile
0.7%
Dockerfile
0.1%