是否可以通过 ngrok 在本地主机上公开 HTTP 代理?

是否可以通过 ngrok 在本地主机上公开 HTTP 代理?

我已经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

相关内容