【问题标题】:How to generate fixed url with ngrok如何使用 ngrok 生成固定 url
【发布时间】:2016-10-29 05:52:16
【问题描述】:

我正在开发 facebook messenger。

Facebook 应用只接受一个用于 webhook 的 url,但 ngrock 每次都会生成新的 URL。由于 webhook URL 已更改,现在我无法测试我的应用程序。

【问题讨论】:

标签: ngrok


【解决方案1】:

2020 年 5 月更新

Serveo 再次启动并运行!无需安装,无需注册!

你需要做的就是运行这个:

ssh -R <unique subdomain>:80:<your local host>:<your local port> serveo.net

喜欢

ssh -R youruniquesubdomain:80:localhost:8000 serveo.net

2020 年 1 月更新

由于Serveolocaltunnel存在一些问题,我想和大家分享另一个免费的基于ssh的自托管服务:Localhost.run

不幸的是,它不提供唯一的子域,但它是基于 ssh 的,因此您不必安装额外的应用程序。还在等待Serveo回来。


2018 年 4 月更新

我刚刚找到Serveo!真是不可思议!


2017 年 11 月更新

可能这对您来说不是最佳选择,但我开始使用 localtunnel 而不是 ngrok

安装和运行流程非常简单:

npm install -g localtunnel
lt --port <your localhost port> --subdomain youruniquesubdomain

然后我可以去我的http://youruniquesubdomain.localtunnel.me 就是这样!

【讨论】:

  • 当我在 docker 容器中开发时,我的虚拟网络运行在一个 subdomain.localhost URL 上。这个工具正是我需要的。感谢您的建议。
  • @DazBaldwin 我刚刚更新了我的答案。 Serveo 看起来非常不可思议!
  • 伺服很棒!如果您正在寻找替代品,还有Burrow.io。您可以通过 Web 界面创建和管理隧道,因此您甚至不需要键入 ssh 命令。只需粘贴 CURL 命令和 BAM,隧道就打开了。
  • until ssh -R aw2xcd:80:localhost:5000 serveo.net; do echo "Restarting..."; done断开连接后自动重启serveo
  • 7 月 22 日,Serveo 再次关闭。
【解决方案2】:

ngrok 不再提供免费子域支持.....请出现如下错误

隧道会话失败:只有付费计划可以绑定自定义子域。 无法为帐户“arvccccc”绑定自定义子域“arvindpattartestfb.ngrok.io”。 此帐户采用“免费”计划。

升级到付费计划:https://dashboard.ngrok.com/billing/plan

ERR_NGROK_313

【讨论】:

  • 确实如此。 ngrok 消息:Tunnel session failed: Only paid plans may bind custom subdomains... Sign up at: https://ngrok.com/signup. If you have already signed up, make sure your authtoken is installed. Your authtoken is available on your dashboard: https://dashboard.ngrok.com.
  • 这一变化何时发生?公告在哪里?
【解决方案3】:

您需要设置身份验证令牌,您可以在此处找到https://dashboard.ngrok.com/auth。 (W̶o̶r̶k̶s̶̶w̶i̶t̶h̶̶f̶r̶e̶e̶̶v̶e̶r̶s̶i̶o̶n̶,̶̶n̶o̶̶n̶e̶e̶d̶̶t̶o̶̶p̶a̶y̶ 显然它现在是付费功能,请参阅ngrok pricing)。

那么你可以这样使用它:

ngrok http 80 -subdomain yoursubdomain

【讨论】:

  • 不起作用。还是同样的错误。隧道会话失败:只有付费计划可以绑定自定义子域。无法为帐户“Ck Maurya”绑定自定义子域“mysubdomain”。此帐户采用“免费”计划。
  • 这真的很奇怪,我不花一分钱,我可以使用子域选项。也许它只在新帐户上工作了一段时间?
  • 我遇到了和@CkMaurya一样的问题=(
  • 您使用的是什么版本的 ngrok?我安装了ngrok version 2.0.19,当我运行ngrok http 80 -subdomain yoursubdomain 时它工作得很好。但正如我所说,必须设置令牌。当我删除我的令牌时,我得到了同样的错误。也许我的帐户有点特别,但我没有为此付费。
  • 2.2.8 版在使用身份验证令牌运行上述命令时提供ERR_NGROK_313
【解决方案4】:

localtunnel.me 或 Serveo 现在都不适合我,所以我创建了一个适用于某些用例的临时解决方案,包括我的(react-native 本地开发):使用ngrok npm 包可以保存生成的ngrok url 转换为 json 文件,该文件可以被任何其他应用程序读取。

首先确保使用npm install ngrok 安装ngrok,然后使用此节点脚本:

const ngrok = require('ngrok');
const fs = require('fs').promises;

(async function() {
  const url = await ngrok.connect(3000);
  const api = ngrok.getApi();
  let data = await api.get('api/tunnels');
  data = JSON.parse(data);
  let dict = {'domain': data.tunnels[0].public_url}
  await fs.writeFile("config.json", JSON.stringify(dict));
  console.log("saved " + data.tunnels[0].public_url);
})();

然后,您可以从您的应用中使用类似或等于的代码读取它:

const backend = require('./config.json').domain;

【讨论】:

  • TypeError: api.get 不是函数
  • 使用 const 隧道 = await api.listTunnels();而不是 api.get 作为其已弃用
【解决方案5】:

对于 DHIS2 本地安装,我是在 ubuntu 服务器上的终端上完成的。

确保您的网站在指定端口上运行。我的是 8080。

ssh -R dani.serveo.net:80:localhost:8080 serveo.net

这个 serveo.net 的美妙之处在于,您可以根据需要多次重复使用相同的主机名前缀 url,即使断电或互联网断开也是如此。

【讨论】:

    【解决方案6】:

    Staqlab 隧道免费提供域名。它的效果很好,但需要从那里的网站下载二进制文件。使用此服务一个月没有任何麻烦

    【讨论】:

      【解决方案7】:

      虽然它不是解决方案,但将其作为解决方法,但我在测试时遇到了同样的问题。我所做的是让 ngrok 使用我的 http 端口运行,所以我的 ngrok url 没有改变。但我经常更改并重新启动我的服务器以进行测试和调试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-19
        • 2017-12-12
        • 1970-01-01
        • 2022-06-16
        • 2019-12-16
        • 1970-01-01
        • 2016-05-20
        • 1970-01-01
        相关资源
        最近更新 更多