字里行间

curl 报错 47 就该换节点吗?先查重定向循环

curl 提示 47,往往表示跟随重定向时达到限制。这与“连接不上代理端口”是不同现象。先看服务器把请求引向哪里,再决定是否需要换节点。

只对你有权访问的公开小页面操作。不要把订阅令牌、Cookie 或账号密码带进这轮诊断,也不要拿付款、注册或上传请求测试跳转。

两个网页地址反复跳转后停下检查链条的示意

示意图:达到跳转边界后检查实际链条,不无限追加请求。

先保存入口与错误原文

curl 官方手册将 47 列为重定向次数过多;--max-redirs 用于限制跟随次数。达到你设置的较小上限,不一定已经证明网站有循环,需要查看实际链条。

记录当前 URL、时间、curl 版本、节点和命令。浏览器能打开也不是直接反证:浏览器可能执行页面脚本或使用已登录状态,而 curl 不会自动执行网页里的 JavaScript 跳转。这一点可参照 everything curl 的重定向说明。

做一轮有边界的公开页面检查

下面在 Windows PowerShell 使用示例域名说明命令结构,不预先声称它会跳转。运行前确认当前目录没有要保留的同名文件:

curl.exe -q --location --max-redirs 5 --proto-redir '=https' --connect-timeout 10 --max-time 20 --dump-header redirect-check-headers.txt --output redirect-check-body.html https://example.com/
$LASTEXITCODE

这个示例最多跟随五次,只接受 HTTPS 跳转,不携带认证。遇到 HTTP 跳转可能因协议限制而停止,应记录这个真实原因;不能把所有非零退出码都写成 47。示例中的五次只是诊断边界,不是网站必须遵守的标准。

查看响应头中各次状态与 Location。相对地址需要结合该次请求地址理解;头文件也可能包含 Cookie 等敏感字段,分享前逐项脱敏。

三种情况分别处理

观察到的链条 下一步
两个地址来回出现或同一地址反复出现 检查原入口,向站方提供脱敏链条
各地址不同,达到自设上限才停止 核对正式访问流程是否确实需要更长链
进入登录页、验证页或陌生域名 先核对访问条件与目标来源

不要直接改成无限跳转,也不要使用会把认证扩展给其他目标的信任选项来“修复”。若正式文档确实要求更多跳转,再按已确认流程有限调整,并重新核对最终页面。

什么时候才需要对照节点

先固定相同公开 URL、命令和网络,仅更换一个候选节点,记录是否仍出现同一链条。两个节点都重复同样的跳转,只能说明这轮观察一致;还需结合站方状态与入口条件定位。

验收应包括:错误原文、实际跳转链、最终 URL、响应正文是不是所需页面,以及原本的小任务能否完成。机场推荐中的排障依据不能只写“把跳转次数加大后不报错了”。

来源与核验日期

官方资料核验日期:2026-10-09。操作示例与记录表供读者自行核对,不代表本站对某家机场的实测结论。

评论

搜索文章

正在加载搜索…