NaiveProxy优化

代理链

之前在部署那边有个配置upstream 可以配置上游代理链条,使用方法很简单,直接配置好上游的服务器然后在upstram https://<用户名>:<密码>@<上游网址>
代理链的优势:

  1. 拯救被墙的服务器
  2. 优化线路速度
  3. 可以随时变更中转机
  4. 隐藏实际服务器

缺点:

  1. 消耗双边流量

完整线路:你的电脑——|墙|——服务器(中转机)——上游服务器(落地机)——谷歌
后段路程是固定的,所以延迟就看你本地运营商和中转机之间的速度。中转机的位置可以在墙内也可以在墙外,看个人能力。中转机被封的话,只要换一个就可以,这样就不会出现一封封锁一大堆主机的情况。

完整配置

上游配置-落地机配置:

1
2
3
4
5
6
7
8
9
10
11
12
:443, xxxx.xxxx.com { # 443必须的,否则无法执行,逗号后面有个空格,别忘记了。
route {
forward_proxy {
basic_auth <用户名> <密码>
hide_ip
hide_via
}
file_server {
root /usr/share/caddy/share # 可以在之前的网页路径下随便放一个index网页
}
}
}

下游配置-中转机配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
:443, xxxx.xxxx.com { # 443必须的,否则无法执行,逗号后面有个空格,别忘记了。
route {
forward_proxy {
basic_auth <用户名> <密码>
hide_ip
hide_via
upstram https://<用户名>:<密码>@<上游网址>
}
file_server {
root /usr/share/caddy/share # 可以在之前的网页路径下随便放一个index网页
}
}
}

最后说下速度:
链式后速度:
01博客模板-2023-05-31-13-52-45

自建speedtest速度-套上了cloudfare的CDN:
117-NaiveProxy优化-2023-05-31-13-55-32
速度快了点,但是延迟也高了点,毕竟是转发再转发一层。而cloudfare它拥有大量的服务器,可以直接用最快的服务器代理。这样最大的好处就是拯救哪些被墙的服务器又一条路子。就是流量要两边损耗。
当然如果有想法的人可以在中转机写下脚本,增加一个负载均衡。

性能调优

NaiveProxy的作者写下了一些参数优化,分为服务器和本地:
服务器:

  1. 使用BBR
    1
    sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
  2. 关闭tcp_slow_start_after_idle,作者说是可以稍微提高持久连接
    1
    sudo sysctl -w net.ipv4.tcp_slow_start_after_idle=0
  3. 增加发送缓存大小
    1
    sudo sysctl -w net.ipv4.tcp_notsent_lowat=16384
  4. 关闭TCP Fast Open,这个会会产生独特的流量特征

本地:

  1. 增加Chrome的最大代理连接数:chrome默认的代理连接数是32,可以增加连接数以获得更快的速度,但是需要注意最大值是99.
    Linux的更改:

    1
    2
    sudo mkdir -p /etc/chromium/policies/managed
    echo '{ "MaxConnectionsPerProxy": 99 }' | sudo tee /etc/chromium/policies/managed/proxy.json

    macOS的修改:

    1
    defaults write com.google.Chrome MaxConnectionsPerProxy -int 99

    最后是Windows的修改:

    1. 在浏览器地址栏输入:
    1
    chrome://policy/
    1. 右上角搜索MaxConnectionsPerProxy
      117-NaiveProxy优化-2023-05-31-15-10-34
    2. 看下数值,如果为0,说明你系统没有导入过政策,需要去官方下载一个模板,模板文件windows下examples下有个注册表导入文件,右键使用记事本打开,然后复制下面内容(当然你可以直接在上面修改直至只剩下下面内容):
      1
      2
      3
      4
      5
      Windows Registry Editor Version 5.00
      ; chrome version: 114.0.5735.91

      [HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome]
      "MaxConnectionsPerProxy"=dword:00000020
    3. 如果你的数值为32,这说明你安装时候已经导入过模板了,那么你直接到HKEY_LOCAL_MACHINE 或者 HKEY_CURRENT_USERSoftware\Policies\Google\Chrome值:MaxConnectionsPerProxy,十进制,改为99即可
      117-NaiveProxy优化-2023-05-31-15-09-05
    4. 回到浏览器,点击重新加载政策,看到99即证明成功了,chrome政策有很多,喜欢的话可以研究一下,主要是公司用来防止员工上一些奇奇怪怪的东西控制:
      117-NaiveProxy优化-2023-05-31-15-27-34

总结

一日一技,无论是链式代理,还是性能调优,不会带来那种十分巨大的提升,但是在用户众多或者环境特殊的情况下,多了解服务器的上限也是好的,增加了代理连接数可以在浏览器开的多的情况下带来优化。适合自己需求的才是最好的。


官方性能调优
chrome增加proxy连接说明