我遇到了一个问题,没有在Google上找到解决方法
我尝试使用curl访问代理后面的https网站,但失败。
没有代理或没有ssl的访问就是成功。然后,我部署了一个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.baidu.com:443的HTTP代理隧道
连接www.baidu.com:443 HTTP / 1.1
主持人:www.baidu.com:443
用户代理:curl / 7.47.0
代理连接:保持活动
代理CONNECT中止
与主机127.0.0.1的连接#0保持不变
curl:(56)代理CONNECT已终止
我尝试添加-不安全并且不起作用,结果相同。
我认为这与某些人遇到的问题相同,但仍然没有答案: https://github.com/h2non/balboa/issues/1
谢谢任何人的帮助!
答案 0 :(得分:0)
我想我知道原因
我捕获了数据包,使用代理访问https网站,curl将启动HTTP CONNECT方法以建立隧道。隧道应该在curl客户端和代理之间,但是TCP代理会将所有消息传递到Web服务器,因此Web服务器将重置连接。
转发代理不应该只是在客户端和Web服务器之间传递消息,还应该了解HTTP CONNECT方法
我使用标准的前向代理-鱿鱼代替,然后成功。
希望这会有所帮助