Skip to content

说明 ​

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]目标端口

注意 ​

  1. 当 GlobalTunnel 为 true 时,所有流量都使用 Tunnel 模式
  2. UDP 流量通过 Tunnel(CONNECT) 转发到 ANet 服务器代理