NaiveProxy优化
代理链
之前在部署那边有个配置upstream
可以配置上游代理链条,使用方法很简单,直接配置好上游的服务器然后在upstram https://<用户名>:<密码>@<上游网址>
。
代理链的优势:
- 拯救被墙的服务器
- 优化线路速度
- 可以随时变更中转机
- 隐藏实际服务器
缺点:
- 消耗双边流量
完整线路:你的电脑——|墙|——服务器(中转机)——上游服务器(落地机)——谷歌
。
后段路程是固定的,所以延迟就看你本地运营商和中转机之间的速度。中转机的位置可以在墙内也可以在墙外,看个人能力。中转机被封的话,只要换一个就可以,这样就不会出现一封封锁一大堆主机的情况。
完整配置
上游配置-落地机配置:
1 | :443, xxxx.xxxx.com { # 443必须的,否则无法执行,逗号后面有个空格,别忘记了。 |
下游配置-中转机配置:
1 | :443, xxxx.xxxx.com { # 443必须的,否则无法执行,逗号后面有个空格,别忘记了。 |
最后说下速度:
链式后速度:
自建speedtest速度-套上了cloudfare的CDN:
速度快了点,但是延迟也高了点,毕竟是转发再转发一层。而cloudfare它拥有大量的服务器,可以直接用最快的服务器代理。这样最大的好处就是拯救哪些被墙的服务器又一条路子。就是流量要两边损耗。
当然如果有想法的人可以在中转机写下脚本,增加一个负载均衡。
性能调优
NaiveProxy的作者写下了一些参数优化,分为服务器和本地:
服务器:
- 使用BBR
1
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
- 关闭tcp_slow_start_after_idle,作者说是可以稍微提高持久连接
1
sudo sysctl -w net.ipv4.tcp_slow_start_after_idle=0
- 增加发送缓存大小
1
sudo sysctl -w net.ipv4.tcp_notsent_lowat=16384
- 关闭TCP Fast Open,这个会会产生独特的流量特征
本地:
-
增加Chrome的最大代理连接数:chrome默认的代理连接数是32,可以增加连接数以获得更快的速度,但是需要注意最大值是99.
Linux的更改:1
2sudo mkdir -p /etc/chromium/policies/managed
echo '{ "MaxConnectionsPerProxy": 99 }' | sudo tee /etc/chromium/policies/managed/proxy.jsonmacOS的修改:
1
defaults write com.google.Chrome MaxConnectionsPerProxy -int 99
最后是Windows的修改:
- 在浏览器地址栏输入:
1
chrome://policy/
- 右上角搜索
MaxConnectionsPerProxy
- 看下数值,如果为0,说明你系统没有导入过政策,需要去官方下载一个模板,模板文件windows下examples下有个注册表导入文件,右键使用记事本打开,然后复制下面内容(当然你可以直接在上面修改直至只剩下下面内容):
1
2
3
4
5Windows Registry Editor Version 5.00
; chrome version: 114.0.5735.91
[HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome]
"MaxConnectionsPerProxy"=dword:00000020 - 如果你的数值为32,这说明你安装时候已经导入过模板了,那么你直接到HKEY_LOCAL_MACHINE 或者 HKEY_CURRENT_USER下
Software\Policies\Google\Chrome
值:MaxConnectionsPerProxy,十进制,改为99即可
- 回到浏览器,点击重新加载政策,看到99即证明成功了,chrome政策有很多,喜欢的话可以研究一下,主要是公司用来防止员工上一些奇奇怪怪的东西控制:
总结
一日一技,无论是链式代理,还是性能调优,不会带来那种十分巨大的提升,但是在用户众多或者环境特殊的情况下,多了解服务器的上限也是好的,增加了代理连接数可以在浏览器开的多的情况下带来优化。适合自己需求的才是最好的。