如何为curl设置https转发代理

8fq7wneg  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(372)

我正面临一个问题,并没有在谷歌上得到解决方案
我尝试使用curl访问代理后https网站,但失败了。
然后部署了一个tcp代理(从https://github.com/kklis/proxy中获取),并设置了环境export https_proxy=127.0.0.1:443
访问https://www.baidu.com,我刚收到connection aborted错误
下面是我如何运行代理:
./proxy -l 8111 -h www.baidu.com -p 443
并设置代理环境:
export https_proxy=127.0.0.1:8111
运行 curl :
curl -v https://www.baidu.com
得到的结果:
已重建URL到:https://www.baidu.com/
正在尝试使用127.0.0.1...
已连接到127.0.0.1(127.0.0.1)端口8111(#0)
建立到www.example.com的HTTP代理服务器通道www.baidu.com:443
连接www.baidu.com:443 HTTP/1.1
主持人www.baidu.com:443
用户代理:curl/7.47.0
代理连接:保持活动
代理连接已中止
到主机www.example.com的连接#0127.0.0.1保持不变
curl:(56)代理连接已中止
我试过添加--不安全和不工作,同样的结果。
我想这是同一个问题有人已经遇到了,仍然没有答案:https://github.com/h2non/balboa/issues/1
如果有人能帮忙,谢谢!

b4lqfgs4

b4lqfgs41#

我想我知道原因了
我捕获的数据包,使用代理访问一个https网站,curl会启动一个HTTP CONNECT方法来建立一个隧道,隧道应该在curl客户端和代理之间,但是TCP代理会将所有的消息传递到web服务器,所以web服务器会重置连接。
转发代理不应该只在客户端和Web服务器之间传递消息,它应该理解HTTP CONNECT方法
我用一个标准的foward代理- squid代替,然后成功。
希望这对你有帮助

相关问题