Appearance
说明
HTTP 代理,将 TCP、DNS 通过 HTTP/Tunnel(CONNECT) 代理,UDP 通过 Tunnel(CONNECT) 转发到 ANet 服务器代理。
支持 WebSocket 模式、全局 Tunnel 模式等高级功能。
配置示例
json
{
"HttpAddr": "",
"TunnelAddr": "",
"HttpAddrs": ["127.0.0.1:8080"],
"TunnelAddrs": [],
"DestAddrsStrategy": "",
"FFHost": "dm.toutiao.com",
"HttpDnsAddr": "",
"TcpDnsAddr": "",
"HttpTCPPool": {},
"TunnelTCPPool": {},
"HttpModify": {},
"TunnelModify": {},
"ANetServerAddr": "",
"ServerKey": "",
"DnsMode": "",
"WsMode": "",
"GlobalTunnel": false
}参数说明
HttpAddr: HTTP 代理地址(单地址)
- 类型:字符串
- 说明:HTTP 代理服务器的地址和端口
- 格式:
"IP:端口"或"域名:端口" - 默认值:无
TunnelAddr: Tunnel 代理地址(单地址)
- 类型:字符串
- 说明:Tunnel(CONNECT) 代理服务器的地址和端口
- 格式:
"IP:端口"或"域名:端口" - 默认值:无
HttpAddrs: HTTP 代理地址列表
- 类型:字符串数组
- 说明:HTTP 代理服务器的地址和端口列表,支持多地址负载均衡
- 格式:
"IP:端口"或"域名:端口" - 默认值:无
TunnelAddrs: Tunnel 代理地址列表
- 类型:字符串数组
- 说明:Tunnel(CONNECT) 代理服务器的地址和端口列表
- 格式:
"IP:端口"或"域名:端口" - 默认值:无
DestAddrsStrategy: 目标地址策略
- 类型:字符串
- 说明:当
DestAddrs目标地址包含域名时使用,域名解析策略 - 可选值:
"":空值,实时解析域名"IP":启动时将域名解析为 IPv4 和 IPv6,后续不再次解析域名"IPV4":启动时将域名仅解析为 IPv4,后续不再次解析域名"IPV6":启动时将域名仅解析为 IPv6,后续不再次解析域名
- 默认值:
""
FFHost: 伪装域名
- 类型:字符串
- 说明:用于 TLS 伪装的 SNI 域名
- 默认值:
"dm.toutiao.com"
HttpDnsAddr: HTTP DNS 地址
- 类型:字符串
- 说明:自定义 HTTP DNS 解析地址
- 默认值:
"119.29.29.29:80"
TcpDnsAddr: TCP DNS 地址
- 类型:字符串
- 说明:自定义 TCP DNS 解析地址
- 默认值:
"114.114.114.114:53"
HttpTCPPool: HTTP TCP 连接池配置
- 类型:对象
- 说明:HTTP 代理的 TCP 连接池配置
- 详细配置:见 TCP连接池配置
TunnelTCPPool: Tunnel TCP 连接池配置
- 类型:对象
- 说明:Tunnel 代理的 TCP 连接池配置
- 详细配置:见 TCP连接池配置
HttpModify: HTTP 请求头修改
- 类型:对象
- 说明:修改 HTTP 代理请求的请求头
- 详细配置:见下方 HttpModify 配置
TunnelModify: Tunnel(CONNECT) 请求头修改
- 类型:对象
- 说明:修改 Tunnel(CONNECT) 请求的请求头
- 详细配置:见下方 HttpModify 配置
ANetServerAddr: ANet 服务端地址
- 类型:字符串
- 说明:当遇到无法代理的数据时,通过 ANet 进行代理
- 默认值:无
ServerKey: ANet 代理验证密钥
- 类型:字符串
- 说明:用于验证 ANet 代理身份的密钥
- 默认值:无
DnsMode: DNS 模式
- 类型:字符串
- 说明:DNS 解析模式
- 默认值:无
WsMode: WebSocket 模式
- 类型:字符串
- 说明:WebSocket 代理模式
- 默认值:无
GlobalTunnel: 全局 Tunnel 模式
- 类型:布尔值
- 说明:是否所有流量都使用 Tunnel(CONNECT) 模式
- 默认值:
false
HttpModify
HttpModify 用于修改 HTTP 请求头,支持以下参数:
json
{
"DelLine": ["User-Agent", "Accept"],
"AddLine": ["X-Custom-Header: value"],
"StrRep": {
"old-string": "new-string"
},
"RegRep": {
"Host: .*": "Host: dm.toutiao.com"
},
"EStrRep": {
"[H]": "dm.toutiao.com",
"[U_EN]": "dm.toutiao.com",
"[URL_EN]": "dm.toutiao.com"
},
"ERegRep": {
"Host: .*": "Host: [H]"
},
"SetFirst": "GET / HTTP/1.1"
}DelLine: 删除请求头行
- 类型:字符串数组
- 说明:删除指定的 HTTP 请求头行,支持前缀匹配
AddLine: 新增请求头行
- 类型:字符串数组
- 说明:在请求头末尾新增指定的行
- 支持关键字:
[M]、[URL]、[URL_EN]、[U]、[U_EN]、[LINK]、[LINK_EN]、[V]、[H]、[H_NOPORT]、[PORT]
StrRep: 字符串替换
- 类型:对象(键值对)
- 说明:将请求头中的特定字符串替换为指定值
- 支持关键字:同上
RegRep: 正则替换
- 类型:对象(键值对)
- 说明:使用正则表达式匹配并替换请求头内容
EStrRep: 转义字符串替换
- 类型:对象(键值对)
- 说明:将请求头中的特定字符串替换为指定值,键和值都支持关键字替换
- 支持关键字:同上
ERegRep: 转义正则替换
- 类型:对象(键值对)
- 说明:使用正则表达式匹配并替换,键和值都支持关键字替换
- 支持关键字:同上
SetFirst: 设置请求首行
- 类型:字符串
- 说明:替换 HTTP 请求的第一行(如
GET / HTTP/1.1) - 支持关键字:同上
支持的关键字
| 关键字 | 说明 |
|---|---|
[M] | 请求方法(GET/POST/CONNECT 等) |
[URL] | 完整 URL |
[URL_EN] | URL 编码后的完整 URL |
[U] | URI 路径 |
[U_EN] | URL 编码后的 URI 路径 |
[LINK] | 链接地址 |
[LINK_EN] | URL 编码后的链接地址 |
[V] | HTTP 版本 |
[H] | 目标主机(含端口) |
[H_NOPORT] | 目标主机(不含端口) |
[PORT] | 目标端口 |
注意
- 当
GlobalTunnel为true时,所有流量都使用 Tunnel 模式 - UDP 流量通过 Tunnel(CONNECT) 转发到 ANet 服务器代理