Files
anytls-go/readme.md
2026-05-08 20:36:15 +08:00

80 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AnyTLS
一个试图缓解 嵌套的TLS握手指纹(TLS in TLS) 问题的代理协议。`anytls-go` 是该协议的参考实现。
- 灵活的分包和填充策略
- 连接复用,降低代理延迟
- 简洁的配置
[用户常见问题](./docs/faq.md)
[协议文档](./docs/protocol.md)
[URI 格式](./docs/uri_scheme.md)
## 快速食用方法
为了方便,示例服务器和客户端默认采用不安全的配置,该配置假设您不会遭遇 TLS 中间人攻击(这种情况偶尔发生在网络接入层,在骨干网络上几乎不可能实现);否则,您的通信内容可能会被中间人截获。
### 示例服务器
```
./anytls-server -l 0.0.0.0:8443 -p 密码
```
`0.0.0.0:8443` 为服务器监听的地址和端口。
服务端可通过环境变量自定义 TLS 证书:
```
ANYTLS_SERVER_CERT_FILE=/path/to/fullchain.pem \
ANYTLS_SERVER_KEY_FILE=/path/to/privkey.pem \
./anytls-server -l 0.0.0.0:8443 -p 密码
```
- `ANYTLS_SERVER_CERT_FILE`: 证书文件路径PEM
- `ANYTLS_SERVER_KEY_FILE`: 私钥文件路径PEM
- 两者都不设置时,服务端会继续使用自动生成的临时证书(默认行为不变)。
也可通过命令行参数指定证书:
```
./anytls-server -l 0.0.0.0:8443 -p 密码 \
-cert-file /path/to/fullchain.pem \
-key-file /path/to/privkey.pem
```
- `-cert-file`: 证书文件路径PEM
- `-key-file`: 私钥文件路径PEM
- 参数优先级高于环境变量;若参数和环境变量均未设置,则回退到自动生成临时证书。
### 示例客户端
```
./anytls-client -l 127.0.0.1:1080 -s 服务器ip:端口 -p 密码
```
`127.0.0.1:1080` 为本机 Socks5 代理监听地址,理论上支持 TCP 和 UDP(通过 udp over tcp 传输)。
v0.0.12 版本起,示例客户端可直接使用 URI 格式:
```
./anytls-client -l 127.0.0.1:1080 -s "anytls://password@host:port"
```
### sing-box
https://github.com/SagerNet/sing-box
它包含了 anytls 协议的服务器和客户端。
### mihomo
https://github.com/MetaCubeX/mihomo
它包含了 anytls 协议的服务器和客户端。
### Shadowrocket
Shadowrocket 2.2.65+ 实现了 anytls 协议的客户端。