我已经tinyproxy
在本地主机上安装了(我也尝试过squid
,但同样失败了)。它在端口 8888 上运行。这有效:
curl -x localhost:8888 http://www.google.com
我在 tinyproxy 日志中看到了输出。
现在我运行最新版本ngrok
并建立以下转发:
http://<identifier>.ngrok.io -> localhost:8888
如果我http://<identifier>.ngrok.io
在浏览器上打开,ngrok 连接计数器就会上升,并且我成功看到 tinyproxy 的“未实现”错误页面。
然而,这失败了:
curl -x <identifier>.ngrok.io:80 http://www.google.com
# => curl: (56) Received HTTP code 404 from proxy after CONNECT
ngrok 计数器没有上升,并且我没有在 tinyproxy 日志中看到消息,这表明失败发生在 ngrok 接受连接之前。
我在这里遗漏了什么?我曾假设 ngrok 和 tinyproxy 都会转发 HTTP 请求,但似乎可能还有另一种协议在后台运行curl -x
。有没有办法成功建立从 ngrok 开始并通过我的本地主机的代理链?
答案1
您的设置是正确的。您需要做的就是运行以下 tcp 命令而不是 http 命令:
ngrok tcp 8888
它将创建一个 TCP 隧道并打印如下内容:
tcp://something.ngrok.io:18673 -> localhost:8888
然后您就可以像这样使用它。
curl -x something.ngrok.io:18673 http://www.google.com