news 2026/5/5 19:30:25

内网穿透实现公网访问HeyGem:frp/ngrok配置教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
内网穿透实现公网访问HeyGem:frp/ngrok配置教程

内网穿透实现公网访问HeyGem:frp/ngrok配置实战

在AI应用快速落地的今天,越来越多团队选择将数字人、语音合成、图像生成等系统部署在本地服务器上——既保障数据隐私,又能充分利用高性能GPU资源。但问题也随之而来:你的HeyGem视频生成系统跑得好好的,同事却在外地没法查看进度;客户想试用演示版,你只能发录屏……明明服务就在localhost:7860,却像被关在玻璃房里,看得见摸不着。

这背后的核心障碍,就是网络隔离。大多数实验室、办公室甚至家用宽带都没有固定公网IP,防火墙和NAT层层阻隔,外部设备根本无法直接连接到内网主机。这时候,内网穿透就成了那把“钥匙”。

frp 和 ngrok 正是目前最主流的两套解决方案。一个适合长期稳定运行,一个主打即开即用,各有千秋。接下来我们就以HeyGem 数字人视频生成系统为例,手把手带你打通从本地WebUI到公网访问的全链路。


frp:自建隧道,掌控全局

如果你希望搭建一个可长期使用、安全可控的远程访问通道,frp 是首选方案。它采用“客户端-服务端”架构,通过一台拥有公网IP的中转服务器(如阿里云ECS),为内网服务建立加密反向代理隧道。

它是怎么工作的?

想象一下:你在家里运行 HeyGem,而公网服务器像是一个24小时在线的邮局。frpc(客户端)主动向这个邮局注册:“我是192.168.1.100上的HeyGem服务,请帮我转发发往heygem.yourdomain.com的信件。” 当外部用户访问该域名时,请求先到达邮局(frps),再由它通过已建立的安全通道转交给你的本地机器。

整个过程对用户完全透明,就像直接访问了一个公网网站。

部署步骤详解

第一步:准备公网服务器(frps)

你需要一台有公网IP的Linux服务器(推荐腾讯云/阿里云轻量应用服务器)。下载对应平台的frp发行包:

wget https://github.com/fatedier/frp/releases/latest/download/frp_0.51.3_linux_amd64.tar.gz tar -zxpf frp_0.51.3_linux_amd64.tar.gz cd frp_0.51.3_linux_amd64

编写服务端配置文件:

# frps.ini [common] bind_port = 7000 vhost_http_port = 8080 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = your_secure_password token = very_long_and_random_string_here

启动服务端:

nohup ./frps -c frps.ini > frps.log 2>&1 &

此时:
-7000端口用于接收 frpc 连接;
-8080端口用于HTTP服务映射;
- 访问http://你的公网IP:7500可查看实时连接状态(账号密码见配置)。

别忘了在云平台安全组中放行这些端口!

第二步:配置本地客户端(frpc)

在运行 HeyGem 的主机上同样解压 frp 客户端,并创建配置文件:

# frpc.ini [common] server_addr = x.x.x.x # 替换为你的公网服务器IP server_port = 7000 token = very_long_and_random_string_here [heygem-web] type = http local_ip = 127.0.0.1 local_port = 7860 custom_domains = heygem.yourdomain.com

保存后启动:

./frpc -c frpc.ini

如果看到日志输出类似start proxy success,说明隧道已建立成功。

第三步:绑定域名 & 启动服务

heygem.yourdomain.com的 DNS A 记录指向你的公网服务器IP。没有域名?也可以直接访问http://x.x.x.x:8080(注意开放8080端口)。

最后,在本地启动 HeyGem:

bash start_app.sh

现在,无论你在世界哪个角落,打开浏览器输入http://heygem.yourdomain.com,就能看到熟悉的 WebUI 界面了。

🔐安全建议

  • token必须足够复杂,避免暴力破解;
  • 生产环境建议配合 Nginx + Let’s Encrypt SSL 证书启用 HTTPS;
  • 使用 systemd 将 frpc 设为开机自启:

```systemd

/etc/systemd/system/frpc.service

[Unit]
Description=frp client
After=network.target

[Service]
Type=simple
ExecStart=/path/to/frpc -c /path/to/frpc.ini
Restart=always

[Install]
WantedBy=multi-user.target
```

启用服务:systemctl enable frpc && systemctl start frpc


ngrok:一行命令,立即可用

如果说 frp 是自己盖房子,那 ngrok 就是拎包入住的公寓。它最大的优势在于无需任何服务器部署,一条命令即可获得临时公网地址,特别适合调试、演示或短期协作。

它为什么这么方便?

ngrok 背后是一整套中心化基础设施。当你执行ngrok http 7860,ngrok 的云端服务会为你分配一个唯一的子域名(如https://a1b2c3d4.ngrok.io),并自动建立加密隧道。所有流量都经过其全球节点转发,省去了自建服务器的麻烦。

实战操作流程

  1. 注册账号并获取 authtoken(登录 ngrok.com 后可见)
  2. 下载客户端并授权:
./ngrok config add-authtoken <your_token>
  1. 映射 HeyGem 服务:
./ngrok http 7860

输出示例:

Forwarding https://a1b2c3d4.ngrok.io -> http://localhost:7860

复制链接发给任何人,他们就能立即访问你的本地 HeyGem 页面!

适合哪些场景?

  • 远程调试:开发过程中让同事快速复现问题;
  • 客户演示:临时分享体验链接,结束后关闭终端即失效;
  • 教学培训:学生无需理解网络原理,一键暴露本地项目;
  • 移动办公:出差时用笔记本跑模型,仍能远程访问。

⚠️ 注意事项

  • 免费版每次重启都会变链接,不适合长期使用;
  • 带宽和并发有限制,大文件下载可能卡顿;
  • Pro版本支持自定义域名、静态TCP端口、私有区域部署,适合企业级需求;
  • 开源替代品如inletslocaltunnel也可考虑,但功能较弱。

在 HeyGem 系统中的实际集成

在一个典型的数字人视频生成流程中,内网穿透并不参与核心计算,但它决定了系统的可达性与协作效率

典型架构图

[外部用户] ↓ (HTTPS) [heygem.ai-company.com] ↓ [frps / ngrok cloud] ↑↓ 加密隧道 [frpc / ngrok agent] ←→ [HeyGem @ :7860] ↓ [音频驱动 | 视频渲染 | 输出存储]

当用户上传一段音频和参考视频,提交生成任务后,即使你正在地铁上,也能通过手机浏览器随时查看任务进度条。处理完成后的MP4文件可通过WebUI一键打包下载,全程无需U盘拷贝或微信传文件。

实际痛点解决案例

场景解法
实验室服务器无公网IPfrp隧道穿透校园网限制
客户不想安装软件只想试用提供ngrok临时链接在线体验
批量生成耗时数小时需监控外网实时查看日志与进度
团队多地协同制作内容统一入口+权限管理

结合 Linux 命令还可实现自动化运维:

# 实时观察运行日志 tail -f /root/workspace/运行实时日志.log # 检查frpc是否存活 ps aux | grep frpc # 清理输出目录防止爆盘 find outputs/ -mtime +7 -exec rm -rf {} \;

如何选择?frp vs ngrok 怎么选

维度frpngrok
是否需要自建服务器
成本低(约¥50/月起)免费版免费,Pro版$10+/月
稳定性高(自主可控)中(依赖第三方服务)
配置难度中等极简
适用周期长期运行临时/短期
自定义域名支持Pro版支持
数据安全性高(可私有部署)中(流量经第三方)
适合人群企业、开发者、运维快速原型、教学、个人项目

简单来说:
- 想要稳定、安全、长期使用→ 选frp
- 想要秒级上线、快速分享→ 选ngrok

两者甚至可以共存:日常开发用 ngrok 快速测试,上线后切换至 frp 提供正式服务。


最佳实践建议

  1. 命名规范
    使用清晰的子域名,如heygem-dev.company.comheygem-demo.company.com,便于区分环境。

  2. 进程守护
    不要让 frpc 运行在前台终端!务必用 systemd 或 supervisor 管理,防止意外中断。

  3. 日志监控
    定期检查 frp 日志,关注重连次数、延迟变化,及时发现网络波动。

  4. 带宽评估
    HeyGem 生成的视频通常较大(几十MB~数GB),确保中转服务器带宽充足(建议至少5Mbps上行)。

  5. 安全加固
    - 关闭不必要的 dashboard 接口;
    - 使用 TLS 加密通信(frp 支持tls_only = true);
    - 结合 Nginx 添加 Basic Auth 认证层。

  6. 成本控制
    对于非7×24小时使用的场景,可选用按量计费的云服务器,不用时关机节省开支。


这种“本地运行 + 公网可访”的模式,正在成为AI工程化的新常态。无论是 Stable Diffusion、本地大模型对话系统,还是语音克隆工具,只要有一个Web界面,都可以通过同样的方式对外暴露。

掌握 frp 和 ngrok 的使用方法,不只是为了访问一个 HeyGem 页面,更是构建现代AI工作流的基础能力之一。下一次当你在本地跑完一个惊艳的生成结果,别再截图发群了——直接甩出一个链接:“点开就能看,不限地域。”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 12:06:05

智慧港口倍福PLC和欧姆龙CJ2M系列PLC通过协议转换网关进行通讯去控制DeviceNet从站设备案例

一、案例背景与项目痛点案例背景某大型现代化集装箱港口正在推进智慧港口建设&#xff0c;为提升作业效率和设备协同水平&#xff0c;计划将新增的自动化轨道吊系统与现有轮胎吊系统进行深度融合。新增轨道吊采用倍福CX2040系列PLC作为主控制器&#xff0c;通过EtherCAT总线实现…

作者头像 李华
网站建设 2026/5/5 6:20:49

别再复制数据了,用C# Span实现超高速转换,现在学还不晚!

第一章&#xff1a;Span概述&#xff1a;C#中的高性能数据转换新范式Span<T> 是 C# 7.2 引入的一种高效内存抽象类型&#xff0c;专为栈分配和堆外内存操作设计&#xff0c;旨在解决传统数组和集合在频繁数据拷贝与跨层传递时带来的性能瓶颈。它提供对连续内存区域的安全…

作者头像 李华
网站建设 2026/5/4 20:38:24

Prolog语言入门教程:从安装到核心概念全解析

作为一名有十余年教学经验的计算机科学教师&#xff0c;我见证了Prolog这门语言在逻辑编程领域的独特地位。它并非用于开发常规应用&#xff0c;而是解决那些涉及符号计算、关系定义和逻辑推理的特定问题。理解其声明式编程范式&#xff0c;是掌握它的关键。本文将带你避开理论…

作者头像 李华
网站建设 2026/5/1 7:30:06

仅限本周公开:C#跨平台拦截器性能压测全数据报告(含GitHub源码)

第一章&#xff1a;C#跨平台拦截器性能压测全数据报告概述在现代分布式系统架构中&#xff0c;C#开发的跨平台拦截器广泛应用于请求过滤、日志记录与权限校验等场景。随着.NET 6及后续版本对跨平台支持的持续优化&#xff0c;拦截器在Linux、macOS与Windows环境下的性能表现差异…

作者头像 李华
网站建设 2026/5/3 23:27:52

Open Inventor 2025.2.1

Open Inventor 2025.2.1Antialiazing #OIV-6022 Using SoOutlineEffect with FSAA antialiasing mode makes the render area empty.#OIV-6052 When FSAA antialiasing is enabled, pixels along edges and surface boundaries may display incorrect colors when rendered …

作者头像 李华