跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

零成本实现个人项目公网访问:ngrok 前端穿透方案

介绍一种零成本方案,通过 ngrok 工具仅穿透前端即可实现内网个人项目的公网访问。步骤包括注册 ngrok 账号获取 Authtoken,根据前端框架(如 Vite+React 或 Umi Max)配置允许的主机名和代理规则,最后启动后端与前端并运行 ngrok 命令生成公网 HTTPS 地址供他人访问。

信号故障发布于 2026/4/6更新于 2026/9/981 浏览

开发个人项目时,想让他人访问往往需要购买服务器、配置域名解析,成本高且流程繁琐。

本文介绍一种零成本方案 —— 仅穿透前端即可实现内网个人项目的公网访问。

ngrok 账号注册与工具准备

首先在 https://ngrok.com/ 官网注册一个账号,就能获得一个免费的 dev 结尾的域名。

注册好之后,下载对应的 zip 压缩包。

文章配图

在官网个人后台 / 仪表盘(Dashboard)可直接复制个人专属的 Authtoken。

分框架适配配置

如果前端是用 Vite + React 的项目,需要在 vite.config.js 文件加上 allowedHosts 这一行代码:

// vite.config.js
export default defineConfig({
  server: {
    allowedHosts: ['xxx.dev'], // ngrok 域名
  },
});

如果前端是基于 Umi Max + Ant Design Pro 的项目,前端默认是跑在 localhost:8000(umi dev),则需要修改 2 个文件。

config/config.ts

在文件里加上如下 proxy 部分:

// config/config.ts
export default defineConfig({
  // ... 其他配置 ...
  proxy: {
    '/api/': {
      target: 'http://localhost:[项目后端的端口号]',
      changeOrigin: true,
      // 根据后端实际路由决定是否 rewrite
      // 如果后端接口路径就是 /api/xxx 开头 → 不要 rewrite
      // 如果后端是 /user/xxx(无 /api 前缀) → 加下面这行
      // pathRewrite: { '^/api': '' },
    },
  },
  // ... 其他配置 ...
});

这段只在 umi dev / npm run dev 时生效。

src/app.tsx

找到 request 配置,把 baseURL 相关全部注释或删除:

// src/app.tsx
export const request: RequestConfig = {
  // !!! 下面这整段注释掉或删除 !!!
  // baseURL: "http://localhost:[项目后端的端口号]",
  // 保持这两个(ngrok 警告页绕过 + cookie 跨域)
  withCredentials: true,
  headers: {
    'ngrok-skip-browser-warning': 'true',
  },
  ...errorConfig,
};

项目启动与公网访问

接下来,依次启动后端和前端,将之前下载好的压缩包解压后直接双击 exe 即可打开命令行,执行以下命令:

ngrok config add-authtoken [YourAuthtoken]
ngrok http [项目前端的端口号]

复制 ngrok 生成的 https 地址,其他人就能够访问你的项目了。

目录

  1. ngrok 账号注册与工具准备
  2. 分框架适配配置
  3. config/config.ts
  4. src/app.tsx
  5. 项目启动与公网访问

更多推荐文章

查看全部
  • MacBook 手动安装多版本 JDK(8 和 17)并配置灵活切换
  • AI Infra 基础架构:定义、核心组件与发展趋势
  • 基于 Docker 部署 Web-Check 结合内网穿透实现远程网站检测
  • Qwen3.5-4B 微调实战:LLaMA-Factory 打造医疗 AI 助手
  • 前端实现视频画中画功能及主小窗同步控制
  • GitHub 学生开发者包认证全流程指南
  • 智能在线考试系统设计与实现:AI 辅助开发实践
  • 豆包 AI 视频去水印方法及工具推荐
  • GitHub Copilot 学生认证申请教程及配置步骤
  • Llama-3.2V-11B-COT 模型视觉推理质量评估指南
  • 长亭 Xray Web 漏洞扫描器实战指南
  • C 语言快速排序详解:从基础到非递归实现
  • 滑动窗口算法实战:LeetCode 1004 与 1658 题解
  • 集团企业数字化:低代码如何实现多系统统一管理?
  • 时间长河共识算法(Time River Consensus Algorithm)
  • Linux find 命令:精准查找文件与目录的完整指南
  • MCP 协议详解:与 Function Call 的区别及使用方法
  • AI Agent 入门:解析执行式智能体核心概念与实现
  • 数据结构基础:顺序表原理与动态实现详解
  • Mac 系统 OpenClaw 本地 AI 执行引擎安装与配置指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online