ngrok:Node.js 本地隧道工具
文章目录ngrokNode.js 本地隧道工具ngrokNode.js 本地隧道工具ngrok 是一个 Node.js 封装库用于调用 ngrok 客户端创建本地隧道。该项目在 GitHub 上获得了 2,418 个 Star。ngrok 的作用是将本地运行的服务暴露到公网方便测试和调试。比如本地开发了一个 Web 服务端口是 8080通过 ngrok 可以获得一个公网 URL其他人可以通过这个 URL 访问你的本地服务。这个库的第 5 版使用 ngrok 客户端第 3 版。如果需要使用 ngrok 客户端第 2 版应该使用这个库的第 4 版。安装通过 npm 安装npm install ngrok安装完成后在代码中引入并使用const ngrok require(ngrok); (async function() { const url await ngrok.connect(); })();默认情况下connect方法会创建一个 HTTP 隧道指向本地 80 端口。也可以指定端口const url await ngrok.connect(9090);还可以传入选项对象配置更多参数const url await ngrok.connect({ proto: http, addr: 8080, basic_auth: user:pwd, subdomain: alex, authtoken: 12345, region: us, });支持的协议包括 HTTP、TCP 和 TLS。可以通过subdomain参数设置自定义子域名通过region参数选择服务器区域us、eu、au、ap、sa、jp、in。认证基本的 HTTP/HTTPS/TCP 隧道不需要认证令牌。如果需要自定义子域名等高级功能需要在 ngrok.com 注册账号获取 authtoken并通过以下方式设置await ngrok.authtoken(token);或者在连接时传入await ngrok.connect({authtoken: token});断开连接ngrok 进程会在 Node.js 进程结束时自动关闭。也可以手动断开await ngrok.disconnect(url); // 断开指定隧道 await ngrok.disconnect(); // 断开所有隧道 await ngrok.kill(); // 终止 ngrok 进程API 管理ngrok 提供了一个 API 客户端可以管理隧道和请求const api ngrok.getApi(); const tunnels await api.listTunnels(); const tunnel await api.startTunnel(opts); await api.stopTunnel(tunnelName);还可以查看和重放请求await api.listRequests(options); await api.replayRequest(requestId, tunnelName); await api.deleteAllRequests();配置文件ngrok 支持使用配置文件存储隧道选项。配置文件的默认位置因操作系统而异系统路径MacOS~/Library/Application Support/ngrok/ngrok.ymlLinux~/.config/ngrok/ngrok.ymlWindows%HOMEPATH%\AppData\Local\ngrok\ngrok.yml可以通过configPath参数指定自定义配置文件路径。静态免费域名2023 年 4 月ngrok 推出了静态免费域名功能即使是免费账号也可以获得固定的子域名。使用方法ngrok.connect({ domain: xxx.ngrok-free.app, authtoken: YOUR-AUTH-TOKEN })注意subdomain和domain参数不能同时使用否则只会生效subdomain。代理设置如果在企业代理环境下安装遇到问题可以设置HTTPS_PROXY环境变量。需要安装hpagent模块作为依赖。如果使用 CA 文件可以通过NGROK_ROOT_CA_PATH环境变量指定路径。环境变量。需要安装hpagent 模块作为依赖。如果使用 CA 文件可以通过NGROK_ROOT_CA_PATH环境变量指定路径。[外链图片转存中…(img-3q2FIe3N-1782799517717)]

相关新闻