文章目录一行命令把本地服务暴露到公网localtunnel拿下22K Star一条命令就能跑起来这几个场景下尤其顺手安装方式不仅限于命令行架构与服务端小结一行命令把本地服务暴露到公网localtunnel拿下22K Star写完代码想给别人看下效果或者接入需要回调地址的第三方服务每个开发者都遇到过。常规做法是部署到有公网 IP 的服务器上配置域名、安装证书、配好 Nginx 反向代理这套流程走下来至少半小时。localtunnel 的作用就是把这个过程压缩成一条命令把本机端口映射到一个公网地址上别人通过那个地址就能访问你本机跑的服务。省掉了配路由器端口转发、买云服务器、折腾 DNS 解析这些步骤。一条命令就能跑起来使用门槛很低。本地装了 Node.js一行命令就够npx localtunnel --port 8000执行后终端会返回一个类似https://xxxxx.localtunnel.me的公网地址。把这个地址发给同事或客户对方就能访问你本机 8000 端口上跑的服务。如果想用一个固定的子域名方便反复使用lt --port 8000 --subdomain myapp只要myapp这个子域名没被别人占用你的地址就是https://myapp.localtunnel.me比随机字符串好记。端口号也可以通过环境变量传入省去每次敲参数的麻烦PORT3000 lt终端里的本地服务重启后localtunnel 会自动检测到并重新建立连接隧道不会断。你在本地改代码、重启服务外面的人无感知。这几个场景下尤其顺手前后端联调后端在本地跑前端需要对接真实接口。把本地后端通过 localtunnel 暴露出去前端直接配公网地址就行两个人不必在同一个网络环境里。第三方回调支付通知、OAuth 登录这类场景第三方服务需要回调你的地址。开发阶段用 localtunnel 获取一个公网地址跳过部署环节直接开始调试回调逻辑。跨设备测试电脑上开发网页想在手机上看看实际效果。用 localtunnel 生成一个地址手机浏览器直接打开比 DevTools 的设备模拟更接近真实环境。临时演示要给客户或同事快速展示一个功能不用走完整的发布部署流程启动 localtunnel发个链接过去对方打开即看。安装方式除了用npx直接运行也支持其他安装方式# 全局安装之后能用 lt 简写命令npminstall-glocaltunnel# 作为项目开发依赖引入yarnaddlocaltunnel# macOS 上可以用 Homebrewbrewinstalllocaltunnel全局安装后直接用lt命令比敲localtunnel少打不少字。不仅限于命令行localtunnel 提供了编程接口适合写进自动化脚本或测试流程constlocaltunnelrequire(localtunnel);(async(){consttunnelawaitlocaltunnel({port:3000});console.log(tunnel.url);// 生成的公网地址tunnel.on(close,(){// 隧道关闭后的清理工作});})();返回的 tunnel 实例可以监听request、error、close三种事件。request事件会告诉你每次请求的方法和路径方便做访问日志。配置项也覆盖得很全端口号、子域名、代理服务器地址、本地 HTTPS 隧道、自定义 TLS 证书等。日常会遇到的隧道场景都考虑到了。架构与服务端localtunnel 是客户端-服务端架构。官方维护了一个公共服务端大多数场景直接连它就行。如果对稳定性、延迟有更高要求或者公司内部有合规需求也可以自己在服务器上部署服务端。服务端代码同样开源部署不复杂。除了 Node.js 客户端社区还贡献了 Go、Rust、C# 等语言的客户端实现方便不同技术栈的团队使用。小结localtunnel 解决的是一个具体的问题让本地运行的服务有一个公网可访问的地址。整个过程不需要部署、不需要配服务器和域名一行命令就能搞定。无论是开发调试、对接第三方 API 还是临时演示这类场景下它都能省去大量时间。GitHub 上 22,275 个 Star 也说明有同样需求的开发者不在少数。景下它都能省去大量时间。GitHub 上 22,275 个 Star 也说明有同样需求的开发者不在少数。[外链图片转存中…(img-xE3LzmX7-1780486682899)]