使用代理时Symfony Panther出现ERR_TUNNEL_CONNECTION_FAILED错误
解决Symfony Panther配置代理后出现ERR_TUNNEL_CONNECTION_FAILED的问题
ERR_TUNNEL_CONNECTION_FAILED错误的核心是Chrome无法通过指定代理建立到目标网站的隧道连接,以下是常见原因及解决办法:
代理服务器不可用或配置错误
先验证代理主机和端口的正确性,用curl手动测试代理能否访问目标站点:curl -x http://your_proxy_host:your_proxy_port https://target_site.com如果curl请求失败,说明代理本身存在故障,需检查代理服务状态或联系提供商。
代理需要身份认证
若代理要求用户名密码验证,当前配置缺少认证参数,需添加--proxy-auth到参数数组:$args = [ '--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36', '--window-size=1600,1100', '--no-sandbox', '--proxy-server=http://' . config('services.panther.proxy_host') . ':' . config('services.panther.proxy_port'), '--proxy-auth=' . config('services.panther.proxy_user') . ':' . config('services.panther.proxy_pass') ];代理协议与目标站点不匹配
若目标站点是HTTPS但代理仅支持HTTP,或反之,会导致隧道建立失败。可尝试去掉--proxy-server中的协议前缀,直接使用host:port形式:'--proxy-server=' . config('services.panther.proxy_host') . ':' . config('services.panther.proxy_port')ChromeDriver与Chrome版本不兼容
你使用的Chrome版本为77.0.3865.90,需确保ChromeDriver版本与之严格对应。版本不匹配会导致代理配置失效,需下载对应版本的ChromeDriver替换现有文件。系统网络规则限制
服务器防火墙、SELinux或iptables规则可能阻止Chrome连接代理端口,需检查并调整网络规则,允许出站连接到代理的指定端口。
内容的提问来源于stack exchange,提问作者xslibx
相关产品推荐
相关产品推荐

