dev-sidecar/doc/wiki/加速服务使用说明.md

8.1 KiB
Raw Permalink Blame History

1. 加速服务:

  1. 什么是 加速服务

    • 加速服务代理服务它通过中间人攻击的方式将网络请求拦截下来并经过DNS加速、修改、重定向、代理等一系列的功能达到加速访问、或访问原本无法访问的站点等目的。
  2. 如何启动加速服务:

    • 点击首页的【代理服务】右侧的开关按钮,即可启动/关闭加速服务。
    • 点击首页的【系统代理】右侧的开关按钮即可将dev-sidecar设置/不设置为系统默认代理。系统只能有一个默认代理在将dev-sidecar与其他网络辅助软件共用时请谨慎开启本开关
    • 点击首页的【NPM加速】和【Git.exe代理】右侧的开关按钮即可启动/关闭dev-sidecar为对应软件提供的加速服务。如果你的电脑上并未安装NPM或Git则这两个按钮将不可用这是正常情况。

2. 根证书使用说明:

  1. 什么是根证书TODO
  2. 为什么需要安装根证书这么高风险性的步骤
  3. 如何安装根证书参见dev-sidecar【首页】的【安装根证书】按钮注意Firefox浏览器还需要一次手动导入根证书

3. 模式:

  1. 安全模式TODO
  2. 默认模式TODO
  3. 增强模式彩蛋TODO

4. 拦截功能使用和配置说明:

4.1. 拦截器类型:

1请求拦截器

请求拦截器名称 拦截器配置名 请求拦截优先级 作用
OPTIONS请求拦截器 options 101 直接响应200不发送该OPTIONS请求
快速成功拦截器 success 102 直接响应200不发送该请求
快速失败拦截器 abort 103 直接响应403不发送该请求
缓存请求拦截器 cacheXxx 104 如果缓存还生效直接响应304不发送该请求
如果缓存已过期或无缓存,则发送请求
只对GET请求生效
重定向拦截器 redirect 105 重定向到指定地址直接响应302不发送该请求
请求篡改拦截器 requestReplace 111 篡改请求头,达到想要的目的
代理拦截器 proxy 121 将请求转发到指定地址
SNI拦截器 sni 122 设置 servername用于避开GFW

2响应拦截器

响应拦截器名称 拦截器配置名 响应拦截优先级 作用
OPTIONS响应拦截器 options 201 设置跨域所需的响应头,避免被浏览器的跨域策略阻拦
缓存响应拦截器 cacheXxx 202 设置缓存所需的响应头,使浏览器缓存当前请求
只对GET请求生效
响应篡改拦截器 responseReplace 203 篡改响应头,避免被浏览器的安全策略阻拦
脚本拦截器 script 211 注入JavaScript脚本到页面中Github油猴脚本

4.2. 拦截配置说明书:

TODO内容待完善

5. 域名白名单:

选择哪些域名不会被dev-sidecar处理。

注意: 该设置与【系统代理-自定义排除域名】的区别在于:

  1. 前者只是被dev-sidecar自身忽略后者则是写入系统设置、不会被任何的系统代理处理在手动修改系统代理设置时务必小心后者可能残留的作用
  2. 在条目较多时,前者的性能不如后者,可能产生明显延迟。

在config.json的 proxy.excludeIpList:object 中设置,该字段格式如下:

注意这里点号用来作为JSON object嵌套关系的缩写冒号指明该条目的类型主要用来区分object和list并没有哪一个Object的key为 proxy.excludeIpList。为避免歧义配置中object和list的key总不应包含点号。下同

{
  "proxy": {
    "excludeIpList": {
      "example1.com": true,
      "example2.com": false,
      "example3.com": null,
      "example4.com": {
        "desc1": "域名对应字段设置为false时会被处理null会移除现有设置多用于远程配置",
        "desc2": "其他情况下就和设置true一样不会被处理。因而你可以像这样插入注释",
        "desc3": "同样的技巧可以用在其他本应设置一个bool值的地方",
        "desc4": "原则上来说config.json不支持//形式的注释,但下文为了方便阅读,还是这么写了"
      }
    }
  }
}

6. DNS服务管理

用来配置在dev-sidecar中需要的指定DNS出于保密和可靠起见建议使用DoH和DoT。
server.dns.provider:object 中设置,其中的每个条目 格式如下:

6.1. 配置 DNS-over-HTTPS简称DoH

并非被所有DNS支持但是保证只要能使用就一定匿名且可靠的DNS服务。

"cloudflare": {
  "type": "https", // 如果server上以"https://"开头指明了协议就不需要写type了
  "server": "https://1.1.1.1/dns-query",
  "cacheSize": 1000
}

6.2. 配置 DNS-over-TLS简称DoT

并非被所有DNS支持但是保证只要能使用就一定匿名且可靠的DNS服务。

"cloudflareTLS": {
  "type": "tls", // 如果server上以"tls://"开头指明了协议就不需要写type了
  "server": "1.1.1.1",
  "port": 853, // 不配置时默认端口为853
  "servername": "cloudflare-dns.com", // 需要伪造成的SNI
  //"sni": "cloudflare-dns.com", // SNI缩写配置
  "cacheSize": 1000
}

6.3. 配置 TCP 的DNS服务

并非被所有DNS支持该方法既不保密也不可靠

"googleTCP": {
  "type": "tcp", // 如果server上以"tcp://"开头指明了协议就不需要写type了
  "server": "8.8.8.8",
  "port": 53, // 不配置时默认端口为53
  "cacheSize": 1000
}

6.4. 配置 UDP 的DNS服务

所有DNS服务器均支持UDP方式但该方法既不保密也不可靠

"google": {
  "type": "udp", // 如果server上以"udp://"开头指明了协议就不需要写type了
  "server": "8.8.8.8",
  "port": 53, // 不配置时默认端口为53
  "cacheSize": 1000
}

7. DNS设置

选择哪些域名需要使用指定的DNS需要先在【DNS服务管理】中设置获取IP。
在config.json中的 server.dns.mapping:key-value 中设置,其中的每个条目格式如下:

"*.example.com": "your-dns-name"

8. IP预设置

为一些DNS无法获取的域名手动设置ip起到类似于hosts的作用仅在dev-sidecar开启时生效
在config.json中的 server.preSetIpList:object 中设置,其中的每个条目格式如下:

{
  "example.com": {
    "1.1.1.1": true, // 如果有多个IP可以继续添加
    "1.0.0.1": false, // 指定为false时不使用该IP
    "2.2.2.2": {
      "desc": "这样可以合法的在配置中插入注释。上面使用的//注释方式在文件中是不允许的"
    }
  }
}

9. IP测速

用来对从指定的DNS与IP预设置中获取到的IP测试TCP延迟也可以用来测试DoH和DoT服务器的可用性后者操作如下先在【DNS服务管理】中配置好需要测试的DNS设置然后在【IP测速】里添加一个没有设置【IP预设置】的辅助域名并选择使用需检测的DNS进行解析。
对于DoH/DoT而言由于答案不能被篡改和窃听所以辅助域名要么获得真实IP说明可用要么没有收到答案说明不可用。该方法不适用于常规TCP/UDP的DNS因为它们没有加密即使收到答案也可能被篡改而不可用
在config.json中的 server.dns.speedTest:object中设置,该条目 格式如下:

"speedTest": {
  "hostnameList": [
    "example1.com",
    "example2.com"
  ],
  "dnsProviders": [
    "your-DNS-name-used-in-test1",
    "your-DNS-name-used-in-test2"
  ]
}