# localtunnel localtunnel 可以让你的本地服务器暴露到公网,方便测试和分享! 无需配置 DNS 或部署即可让其他人测试你的更改。 非常适合用于: - 使用 browserling 等浏览器测试工具 - 需要公网回调 URL 的外部 API 服务(如 twilio)等场景 ## 快速开始 ```bash npx localtunnel --port 8000 ``` ## 安装方式 ### 全局安装 ```bash npm install -g localtunnel ``` ### 作为项目依赖安装2222 ```bash yarn add localtunnel 或 npm install localtunnel ``` ## 命令行使用 当全局安装 localtunnel 后,可以直接使用 `lt` 命令启动隧道: ```bash lt --port 8000 ``` 就这么简单! 它会连接到隧道服务器,建立隧道,并告诉你用于测试的 URL。这个 URL 在会话期间会一直有效,你可以分享给其他人一起测试。 即使你重启本地服务器, `lt` 也足够智能,可以检测到并重新连接。 ### 常用参数 使用 `lt --help` 查看所有参数,以下是一些常用参数: - `--subdomain`: 请求指定的子域名(默认是随机字符) - `--local-host`: 代理到 localhost 以外的主机名 - `--port`: 本地服务端口号(必填) - `--open`: 在浏览器中打开隧道 URL 也可以通过环境变量指定参数,例如: ```bash export LT_PORT=8000 lt ``` ## API 使用 localtunnel 客户端也提供了 API 接口(用于测试集成、自动化等): ```javascript const localtunnel = require("localtunnel"); (async () => { const tunnel = await localtunnel({ port: 3000 }); // 分配的公网隧道 URL // 例如: https://abcdefgjhij.localtunnel.me console.log(tunnel.url); tunnel.on("close", () => { // 隧道关闭 }); })(); ``` ### 选项 - `port` (必填): 要暴露的本地端口号 - `subdomain`: 请求特定的子域名(注意:取决于可用性可能无法获得指定名称) - `host`: 上游代理服务器 URL,默认为 `https://localtunnel.me` - `local_host`: 代理到指定主机名而不是 localhost - `local_https`: 启用到本地 HTTPS 服务器的隧道 - `local_cert`: 本地 HTTPS 服务器的证书 PEM 文件路径 - `local_key`: 本地 HTTPS 服务器的证书密钥文件路径 - `local_ca`: 自签名证书的证书颁发机构文件路径 - `allow_invalid_cert`: 禁用本地 HTTPS 服务器的证书检查 ### 事件 tunnel 实例会触发以下事件: | 事件 | 参数 | 说明 | |------|------|------| | request | info | 当隧道处理请求时触发,包含 method 和 path 字段 | | error | err | 当隧道发生错误时触发 | | close | - | 当隧道关闭时触发 | ### 方法 | 方法 | 参数 | 说明 | |------|------|------| | close | - | 关闭隧道 | ## 其他语言客户端 - Go: [gotunnelme](https://github.com/NoahShen/gotunnelme) - Go: [go-localtunnel](https://github.com/localtunnel/go-localtunnel) - C#/.NET: [localtunnel-client](https://github.com/angelobreuer/localtunnel-client) - Rust: [rlt](https://github.com/kaichaosun/rlt) ## 服务端 查看 [localtunnel/server](https://github.com/localtunnel/server) 了解支持 localtunnel 的服务端详情。 ## 开源协议 MIT