You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:经Jumpbox SSH隧道访问API时Chrome及JMeter均报403错误

问题排查与解决方法

1. 对齐隧道映射与请求地址

你创建的SSH隧道是将本地8801端口映射到qa.aws.test.com:8080,但curl命令里访问的是test.aws.test.com:8080,二者不匹配。可以二选一调整:

  • 修改curl命令,使用本地映射端口访问:
curl -XPOST "http://localhost:8801/customers" -H "Content-Type: application/json" -d '{ "customer": "123456"}'
  • 在本地hosts文件添加映射127.0.0.1 test.aws.test.com,同时修改SSH隧道命令绑定8080端口:
ssh -L 8080:qa.aws.test.com:8080 admin@jumpbox.aws.test.com

之后就能直接用test.aws.test.com:8080访问。

2. 检查API的Host头限制

不少API会校验请求的Host头,只允许特定域名访问。curl能成功可能是其Host头符合要求,但Chrome/JMeter的请求Host头不匹配:

  • 用Chrome开发者工具查看请求的Host头,对比curl的差异
  • 在JMeter中添加HTTP Header Manager,手动设置Host头为qa.aws.test.com(或API允许的域名)

3. 补全必要的请求头

你的curl只携带了Content-Type头,部分API可能还需要其他头(如授权头、User-Agent等):

  • 执行curl -v命令查看完整请求头,将缺失的头补充到JMeter的HTTP Header Manager中
  • 可在Chrome中用插件模拟curl的请求头,测试是否能正常访问

4. 调整SSH隧道的绑定范围

默认情况下ssh -L仅绑定本地回环地址(127.0.0.1),如果Chrome/JMeter运行在其他设备(如虚拟机),需修改隧道命令允许外部访问:

ssh -L 0.0.0.0:8801:qa.aws.test.com:8080 admin@jumpbox.aws.test.com

5. 排查服务器端拦截规则

403错误大概率是被ACL或防火墙拦截:

  • 查看API服务器的访问日志,明确403的具体原因(如IP被拒、权限不足等)
  • 确认Jumpbox是否允许你的本地IP通过隧道转发请求

内容的提问来源于stack exchange,提问作者The Enthusiast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 01:43:21