尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
一条命令分享开发服务器:portless Tailscale Funnel 与 ngrok 公网分享实战
一条命令分享开发服务器portless Tailscale Funnel 与 ngrok 公网分享实战【免费下载链接】portlessReplace port numbers with stable, named local URLs. For humans and agents.项目地址: https://gitcode.com/GitHub_Trending/por/portlessportless 是一款本地开发服务器工具它用「稳定命名 URL」如https://myapp.localhost替代localhost:3000这类端口地址。它更吸引人的地方在于只需加一个参数就能把本地开发服务器通过 Tailscale Funnel 或 ngrok 一键分享到公网让同事、客户随时打开演示链接。本文面向新手带你从零跑通「安装 → 本地命名 → 公网分享」全流程。为什么分享开发服务器总是很麻烦传统做法下把本地 demo 给别人看通常需要 口头告诉对方「IP 是 192.168.x.x端口 5173」换个网络就失效 配置路由器端口转发、防火墙规则非技术同事根本不敢碰⚙️ 每个框架Vite、Next.js、Flask配置不同还要担心端口冲突 演示一结束链接就失效下次又要重新折腾portless 的思路是本地访问用一个永远不会变的命名地址对外分享则交给 Tailscale Funnel 或 ngrok 这类隧道工具而注册、清理、端口分配全部自动化你只需要记一条命令。三步装好 portless先获得一个命名 URL# 1. 全局安装 npm install -g portless # 2. 用命名地址启动你的应用以 Next.js 为例 portless myapp next dev # - https://myapp.localhost就这一步portless 会自动做三件事自动启动一个 HTTPS 反向代理默认 443 端口给你的应用分配一个随机空闲端口4000–4999并通过PORT环境变量注入把https://myapp.localhost注册到代理之后你访问的就是稳定地址 如果项目里配置了package.json的dev脚本直接运行portless即可它会自动推断项目名。更多细节见 README.md 与 skills/portless/SKILL.md。三种分享模式一图看懂本地、内网、公网portless 把「开发服务器分享」分成三种粒度对应不同的受众模式启动参数别人打开的地址适用场景本地模式默认portless myapp next devhttps://myapp.localhost自己开发调试Tailscale 内网portless myapp --tailscale next devhttps://devbox.yourteam.ts.net与同一团队的同事协作Tailscale 公网portless myapp --funnel next devhttps://devbox.yourteam.ts.net公网可访问给客户/外部演示ngrok 公网portless myapp --ngrok next devhttps://abc123.ngrok.app快速公网演示、Webhook 测试注意一个关键设计本地地址始终保留。开启--funnel或--ngrok后https://myapp.localhost依然可用你和对方访问的是同一个服务只是多了一条公网入口。Tailscale Funnel一条命令把开发服务器安全暴露到公网前置准备一次性安装 Tailscale 客户端并运行tailscale up完成登录连接在 Tailscale 后台为你的 tailnet 启用HTTPS 证书在 Tailscale 后台为你的节点启用Funnel启动并分享portless myapp --funnel next dev # - https://myapp.localhost (本地) # - https://devbox.yourteam.ts.net (公网)启动后终端里会同时打印本地 URL 和公网 URL直接把公网链接丢进群聊即可。多应用同时分享时端口如何分配每个--tailscale应用都会独占一个 HTTPS 端口第一个应用用 443之后依次是 8443、8444……而 Funnel 模式只允许使用 443、8443、10000 三个端口这一限制直接写死在源码 packages/portless/src/tailscale.ts 中# 应用 1https://devbox.ts.net portless myapp --funnel next dev # 应用 2https://devbox.ts.net:8443 portless api --funnel pnpm start省心设计自动清理应用进程退出CtrlC 或崩溃时portless 会自动注销 Tailscale 注册不会留下幽灵隧道。如果你希望所有应用默认都开启分享可以设置环境变量省去每次手敲参数export PORTLESS_TAILSCALE1 # 默认分享到尾网 export PORTLESS_FUNNEL1 # 默认分享到公网ngrok 公网隧道开发服务器分享的另一种选择如果你不想让外部访问者安装 Tailscale或者你只是临时要一个公网链接比如测试支付回调、Webhookngrok 是更轻量的选择。前置准备一次性# 安装 ngrok CLI 后配置你的 authtoken ngrok config add-authtoken token启动并分享portless myapp --ngrok next dev # - https://myapp.localhost (本地) # - https://abc123.ngrok.app (公网)portless 启动 ngrok 隧道的细节重写 Host 头、解析隧道 URL在 packages/portless/src/ngrok.ts 中实现它会自动把本地端口与公网地址绑定应用退出时隧道随之关闭同样无需手动清理。与 Tailscale 方案一样ngrok 地址也会注入到子进程环境变量PORTLESS_NGROK_URL中方便你在代码里直接读取当前公网地址。查看与管理分享链接portless list 与 doctor分享过程中最实用的两条命令portless list # 查看当前所有路由本地 URL tailnet/ngrok 公网 URL portless doctor # 体检检查代理、路由、DNS、证书信任等输出修复建议常用环境变量速查完整列表见 skills/portless/SKILL.md环境变量作用PORTLESS_TAILSCALE1每次运行应用时默认分享到尾网等价于--tailscalePORTLESS_FUNNEL1每次运行应用时默认公网分享等价于--funnelPORTLESS_NGROK1每次运行应用时默认走 ngrok等价于--ngrokPORTLESS0完全绕过 portless直接执行原命令常见问题排查分享失败怎么办portless 的设计是**「先校验、后启动」**如果 Tailscale 或 ngrok 环境不满足条件它会在启动你的应用之前就直接退出并给出明确报错避免你面对一个半启动的坏状态。Tailscale 报未启用tailscale status # 确认节点已连接 tailscale up # 若未连接先登录然后到 Tailscale 后台确认两件事tailnet 已启用 HTTPS 证书、目标节点已启用 Funnel。两者缺一--funnel都会提前报错退出对应逻辑见 packages/portless/src/tailscale.ts。ngrok 报认证错误ngrok version # 确认已安装 ngrok config add-authtoken token # 配置认证portless 会识别 ngrok 输出中的认证错误并转成友好的中文提示提示你补上 authtoken 后重试。端口冲突Funnel 模式下如果 443、8443、10000 三个端口都被占用portless 会提示「所有 Funnel 端口均被占用请停止一个已有 Funnel 释放端口」。本地一切正常但 URL 打不开优先运行portless doctor它会只读地检查 Node.js、状态目录、代理存活、路由条目、HTTPS 证书信任、主机名解析等并直接打印修复建议。总结本地portless myapp next dev获得稳定的https://myapp.localhost团队内网加--tailscale同事通过 tailnet 域名访问公网演示加--funnelTailscale Funnel或--ngrokngrok一条命令完成分享零残留应用退出后隧道与注册自动清理可观测portless list看地址、portless doctor做体检对新手来说最值得记住的就是这一行在你熟悉的启动命令前加一个--funnel或--ngrok开发服务器就上了公网。其余的端口分配、证书、注册与清理portless 都替你做了。【免费下载链接】portlessReplace port numbers with stable, named local URLs. For humans and agents.项目地址: https://gitcode.com/GitHub_Trending/por/portless创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

AI编程Agent闭环:工具选型检查项与协作调整

AI编程Agent闭环:工具选型检查项与协作调整

Loop 工程这个说法值得拆开看。公开描述把 AI 编程的当前阶段概括为:AI Agent 可以自主完成触发、执行、评估与重试构成的闭环。这四个词其实是一份现成的检查表——任何一个宣称支持 Agent 编程的工具,都可以放进这四个环节里逐项核对,看它覆…

📅 2026/9/15 18:00:29
gs-quant 中 `Basket.get_url()` 完整指南:获取自定义篮子 Marquee 产品页链接

gs-quant 中 `Basket.get_url()` 完整指南:获取自定义篮子 Marquee 产品页链接

gs-quant 中 Basket.get_url() 完整指南:获取自定义篮子 Marquee 产品页链接 【免费下载链接】gs-quant Python toolkit for quantitative finance 项目地址: https://gitcode.com/GitHub_Trending/gs/gs-quant Basket.get_url() 是 gs-quant 中 Basket 类&a…

📅 2026/9/15 18:00:29
aws-cli 实战:用 `codebuild batch-get-builds` 批量查询 AWS CodeBuild 构建详情

aws-cli 实战:用 `codebuild batch-get-builds` 批量查询 AWS CodeBuild 构建详情

aws-cli 实战:用 codebuild batch-get-builds 批量查询 AWS CodeBuild 构建详情 【免费下载链接】aws-cli Universal Command Line Interface for Amazon Web Services 项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli 本篇技术指南聚焦 AWS CLI&…

📅 2026/9/15 18:00:29
MORE NEWS

更多资讯

📰

OpenCreator:视频翻译配音一键出片的本地开源AI工作台

OpenCreator:视频翻译配音一键出片的本地开源AI工作台 【免费下载链接】OpenCreator Formerly KrillinAI. Open-source AI workspace for creators, powered by Codex. Create videos, images, voice, avatars, translations, and edits with Agents in one place. …

📰

Gemini 结构化输出实战:使用 Instructor 与 Google GenAI SDK 构建类型安全的数据提取

Gemini 结构化输出实战:使用 Instructor 与 Google GenAI SDK 构建类型安全的数据提取 【免费下载链接】instructor structured outputs for llms 项目地址: https://gitcode.com/GitHub_Trending/in/instructor 本指南以 Instructor 的 Google 集成为主线&…

📰

React 进阶概念实战指南:PropTypes、Styled Components、Redux、Context API 与自定义 Hooks(cu/curriculum 课程精讲)

React 进阶概念实战指南:PropTypes、Styled Components、Redux、Context API 与自定义 Hooks(cu/curriculum 课程精讲) 【免费下载链接】curriculum The open curriculum for learning web development 项目地址: https://gitcode.com/GitH…

📰

LangChain4j 集成 Tavily Web Search Engine:配置、API 与源码级原理详解

LangChain4j 集成 Tavily Web Search Engine:配置、API 与源码级原理详解 【免费下载链接】langchain4j LangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM pro…

📰

使用 AWS CLI 的 associate-external-connection 命令为 CodeArtifact 仓库添加外部连接

使用 AWS CLI 的 associate-external-connection 命令为 CodeArtifact 仓库添加外部连接 【免费下载链接】aws-cli Universal Command Line Interface for Amazon Web Services 项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli 本指南以 associate-external-…

📰

Lighttools 8.4.0光学仿真入门:建模、光度学与实战要点

1. 从零开始认识Lighttools:它到底解决什么问题搞照明设计、光学系统开发的朋友,应该都听过Lighttools这个软件。我第一次接触Lighttools 8.4.0的时候,其实是有点懵的——界面功能密密麻麻,菜单层层叠叠,跟平时用的机械…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬