如何强制ngrok将请求转发至HTTP而非HTTPS?
ngrok仅转发HTTPS、强制开启HTTP转发的解决方法
核心原因
ngrok v3及以上版本存在三类场景会默认隐藏HTTP转发端点:命令参数未显式指定协议时匹配账号默认策略、本地配置文件全局强制HTTPS、所选节点HTTP端口资源临时不足。执行命令未指定scheme参数时,部分账号/节点配置会默认仅分配HTTPS端点。
实操解决步骤
- 直接在启动命令中显式指定HTTP协议,这是最高优先级的配置,会覆盖所有默认策略:
ngrok http 4554 --host-header=localhost:4554 --scheme http补充:如果需要同时保留HTTP和HTTPS转发,将参数改为
--scheme http,https即可。 - 若上述命令执行后仍仅返回HTTPS端点,检查本地ngrok配置文件:
- macOS/Linux默认路径:
~/.ngrok2/ngrok.yml - Windows默认路径:
C:\Users\<你的用户名>\.ngrok2\ngrok.yml
找到根级或对应隧道配置下的schemes字段,若存在强制HTTPS的配置修改为["http"](仅HTTP)或["http", "https"](双协议)即可,参考配置:
tunnels: web: addr: 4554 proto: http host_header: localhost:4554 schemes: ["http"] - macOS/Linux默认路径:
- 免费版ngrok部分海外节点存在HTTP端口资源耗尽的临时问题,可指定亚太节点启动,命令追加
--region ap参数即可,国内访问延迟也更低:ngrok http 4554 --host-header=localhost:4554 --scheme http --region ap
验证方式
启动后查看终端输出的Forwarding列表,存在http://<随机字符>.ngrok.io -> http://localhost:4554的转发条目即为配置成功,此时用HTTP地址访问不会触发SSL证书错误。
内容的提问来源于stack exchange,提问作者sagooding
相关产品推荐
相关产品推荐

