停止为 ngrok 付费!🛑 认识 NPort:免费开源替代方案
Source: Dev.to
问题 😫
我们都有过这种经历。你正在向客户演示一个 Next.js 应用,或在本地测试 Stripe webhook。你启动 ngrok,发送链接,结果两小时后…… 会话过期。
更糟的是,你重启服务器后,域名会从 random-xyz.ngrok-free.app 变成 random-abc.ngrok-free.app。你必须再次更新 webhook 设置。
要想获得稳定的自定义子域,通常需要付费。
NPort 是什么? 🚀
NPort 是一个 Node.js CLI 工具,用于将本地主机暴露到互联网。
它 100 % 免费、开源,旨在成为付费隧道服务的 “设置一次,忘记它” 替代方案。
关键特性
- 💸 100 % 免费: 无月费。
- 🔗 免费自定义子域名: 免费声明
my-project.nport.link——不再有随机字符串。 - ⚡ 快速: 基于 Cloudflare Tunnel(Argo),利用其全球边缘网络。
- 🔒 安全: 自动 HTTPS。
- 🛠 可自行托管: Fork 代码仓库并在几分钟内将后端部署到您自己的 Cloudflare Workers 账户(免费层)。

演示 🎥
一个快速演示展示了获取实时 HTTPS 链接的速度。
对比
| 功能 | NPort | ngrok (Free Tier) |
|---|---|---|
| 价格 | 免费 | 免费(受限) |
| 自定义子域名 | ✅ 包含 | ❌ 付费功能 |
| 会话时长 | 无限 | ⚠️ 有限制 |
| 需要登录 | ❌ 否 | ✅ 是 |
| 开源 | ✅ 是(MIT) | ❌ 否 |
使用方法 💻
需要先安装 Node.js。
1. 通过 NPM 安装
npm install -g nport
2. 启动本地服务器
在本地端口(例如 3000)运行你的 Next.js、Express 或其他应用。
3. 创建隧道
nport 3000 -s nickpham
( -s 标志表示子域名。)

4. 完成! 🎉
你的应用现在可以通过 https://nickpham.nport.link 访问。终端会显示会话的简洁摘要,连接会瞬间建立。
工作原理 ⚙️
客户端: CLI(Node.js)使用 Cloudflare Tunnel 协议创建安全隧道。
边缘: 流量通过 Cloudflare 最近的边缘节点路由。
后端: 使用 Cloudflare Workers(无服务器)实现路由和子域逻辑,确保高可用性和低延迟。
在 Cloudflare Workers 上运行使基础设施成本几乎为零,从而保持服务免费。
隐私与自行托管 🛡️
隐私很重要。虽然 NPort 通过 Cloudflare 实现端到端加密,你仍然可以 fork 代码仓库并在自己的 Cloudflare 账户上部署后端。
- 拥有私有隧道服务器。
- 使用您自己的域名(例如
tunnel.your-company.com)。 - 请参阅仓库中的
server/README.md获取部署说明。
试一试!
GitHub 仓库:
网站:
如果你觉得它有用,请在 GitHub 上给它一个 Star ⭐——这有助于让更多开发者发现该工具。
编码愉快! 👩💻👨💻