内网穿透完全指南:把本机服务安全暴露到公网
内网穿透完全指南把本机服务安全暴露到公网1. 先理解原理到底发生了什么内网穿透的本质是借助一台有公网IP的中间服务器在NAT设备上维持一条可用的双向通道。具体流程你的内网机器 公网服务器 外部用户(客户端) (服务端)│ │ ││──1.建立长连接──────→ │ ││ (WebSocket/TCP) │ ││ │──2.监听公网端口 ││ │ ││ │←────3.访问请求────────││ │ example.com:8080 ││ │ ││←──4.通过隧道转发──── │ ││ 请求数据 │ ││ │ ││──5.返回响应────────→ │──6.返回给用户────────→│核心问题是 NAT——网络地址转换。你的机器躲在路由器后面只有内网 IP如 192.168.x.x外网无法直接发起连接。内网穿透通过「主动外联 中继转发」绕过这个限制。2. 方案选型一张表决策场景推荐工具理由临时演示、调试ngrok / bore一行命令零配置长期使用、自定义域名frp自建服务端完全掌控生产环境、高并发租用公网服务器 Nginx 反代无中继损耗性能最优P2P 直连、大流量ZeroTier / Tailscale打洞成功后点对点不限速只暴露 Web 服务Cloudflare Tunnel免费、自带 CDN 和 DDoS 防护3. 方案一frp——自建服务端完全掌控适用场景你有一台公网服务器想长期、稳定地暴露多个内网服务。3.1 架构内网机器 (frpc) ────── 公网服务器 (frps) ────── 用户3.2 服务端部署 (frps)在公网服务器上# 下载 frp替换为最新版本号wgethttps://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gztar-xzffrp_0.52.3_linux_amd64.tar.gzcdfrp_0.52.3_linux_amd64编辑frps.tomlbindPort 7000 # frpc 连接的端口 vhostHTTPPort 8080 # HTTP 虚拟主机端口 vhostHTTPSPort 8443 # HTTPS 虚拟主机端口 # 管理面板可选 webServer.addr 0.0.0.0 webServer.port 7500 webServer.user admin webServer.password your_password_here # 身份验证 auth.token your_secure_token_here启动./frps-cfrps.toml# 或使用 systemd 守护推荐# 自行编写 /etc/systemd/system/frps.service3.3 客户端部署 (frpc)在你的内网机器上同样下载 frp编辑frpc.tomlserverAddr 你的公网服务器IP serverPort 7000 auth.token your_secure_token_here # 示例1暴露本机 3000 端口的 Web 服务 [[proxies]] name my-nextjs-app type http localPort 3000 customDomains [dev.yourdomain.com] # 示例2暴露本机 SSH22端口 [[proxies]] name ssh type tcp localIP 127.0.0.1 localPort 22 remotePort 6000 # 公网服务器上的 6000 端口会映射到你的 SSH启动./frpc-cfrpc.toml现在访问dev.yourdomain.com就会进入你的本地 3000 端口。记得把域名 A 记录指向你的公网服务器。3.4 HTTPS 和自动证书frp 支持自动申请 Let’s Encrypt 证书在frps.toml中追加vhostHTTPSPort 443 # 自动 HTTPS autoTLS true tlsCertFile /path/to/cert.pem tlsKeyFile /path/to/key.pem或者让每个代理单独配置 TLS。4. 方案二Cloudflare Tunnel —— 零运维的 Web 穿透适用场景你不想买服务器只需要暴露 HTTP 服务且有域名。4.1 原理Cloudflare 在你内网机器和它的边缘节点之间建立一条隧道用户请求到边缘节点后通过隧道转发给你整个过程自带 CDN、DDoS 防护和 HTTPS。4.2 实操# 1. 安装 cloudflaredbrewinstallcloudflare/cloudflare/cloudflared# macOS# 或从 GitHub Releases 下载二进制# 2. 登录授权cloudflared tunnel login# 这会打开浏览器授权 Cloudflare 访问你的域名# 3. 创建隧道cloudflared tunnel create my-tunnel# 会生成一个 credentials.json妥善保管# 4. 配置 DNS 指向隧道cloudflared tunnel route dns my-tunnel app.yourdomain.com# 5. 编写配置 config.ymlconfig.ymltunnel:tunnel-idcredentials-file:/path/to/credentials.jsoningress:-hostname:app.yourdomain.comservice:http://localhost:3000-hostname:api.yourdomain.comservice:http://localhost:8080# 默认规则必须-service:http_status:404# 6. 启动隧道cloudflared tunnel run my-tunnel# 守护进程运行cloudflaredserviceinstall5. 方案三Tailscale —— 不是穿透胜似穿透Tailscale 基于 WireGuard 构建 mesh 网络设备间点对点直连没有中心服务器转发流量。这不是传统意义上的内网穿透但效果一样——你可以在任何地方访问你的内网机器。# 各设备安装 Tailscale 并登录同一账号curl-fsSLhttps://tailscale.com/install.sh|shtailscale up之后所有设备都在同一个100.x.y.z的虚拟网段内直连访问不经过中继跑满带宽。缺点访问方也必须装 Tailscale 客户端。6. 安全清单上线前必查在做内网穿透时你实际上是把内网服务暴露了出去。务必frp token 足够强——不要用默认或弱密码限制 IP 访问——frp 支持allowUsers/allowPorts内网服务本身要鉴权——不要把没密码的数据库端口暴露出去使用 HTTPS——避免中间人frp 和 Cloudflare Tunnel 都支持不要把 SSH 端口裸奔——如果暴露 SSH务必使用密钥认证 禁用密码登录审计日志——frp 有logFile配置开启并定期检查最小权限原则——只暴露必要的端口用完即关7. 常见问题排查Qfrpc 连接不上 frps检查公网服务器防火墙是否放行 7000 端口检查 token 是否一致检查服务器是否真的能访问telnet 服务器IP 7000Q域名可以 ping 通但无法访问HTTP 服务需要域名绑定检查customDomains配置检查 DNS 是否解析到正确的服务器 IPQ速度慢frp 受限于公网服务器带宽考虑 P2P 方案Tailscale/ZeroTier或购买更好的服务器QCloudflare Tunnel 延迟高正常现象流量绕了 Cloudflare 边缘节点对延迟敏感的服务建议用 frp 直连这份指南涵盖了从临时代码演示到生产环境部署的全场景选对方案内网穿透其实很简单。

相关新闻

超表面技术:光学革命与纳米结构设计实战

超表面技术:光学革命与纳米结构设计实战

1. 超表面技术概述:重新定义光学边界第一次接触超表面是在2016年的一次光学会议上,当时看到哈佛团队展示的仅几微米厚却能实现传统透镜全部功能的平面器件,彻底颠覆了我对光学元件的认知。这种由亚波长尺度人工原子按特定排列组成的二维结构&…

2026/9/29 17:42:14 阅读更多 →
Python实战学习路径:从环境搭建到爬虫、数据分析与AI项目落地

Python实战学习路径:从环境搭建到爬虫、数据分析与AI项目落地

最近在后台收到不少私信,很多刚入门Python的朋友都面临一个困境:网上教程要么太零散,要么太理论,学完感觉啥都会了,但一上手项目就懵。特别是想往爬虫、数据分析甚至人工智能方向发展的同学,常常卡在环境配…

2026/10/7 22:57:38 阅读更多 →
全桥LLC谐振变换器软件迭代:从建模、HIL测试到实物调试的工程化路径

全桥LLC谐振变换器软件迭代:从建模、HIL测试到实物调试的工程化路径

这次我们来看一个关于全桥LLC谐振变换器软件迭代的技术话题。对于从事开关电源、新能源汽车、服务器电源或工业电源开发的工程师来说,LLC拓扑因其高效率、高功率密度和软开关特性而备受青睐。然而,从原理图到稳定可靠的量产产品,软件控制算法…

2026/9/24 11:21:35 阅读更多 →

最新新闻

ASP.NET Core Cookie身份验证实现与安全配置指南

ASP.NET Core Cookie身份验证实现与安全配置指南

1. 身份验证基础与Cookie机制解析现代Web应用的身份验证主要有三种主流方式:Cookie认证、JWT令牌和OAuth协议。其中Cookie认证因其简单易用、浏览器原生支持的特性,成为ASP.NET Core中最常用的身份验证方案之一。Cookie本质上是一小段存储在客户端的文本…

2026/10/15 9:50:47 阅读更多 →
OpenClaw入门教程:从安装到上手的完整指南(TaoToken 统一 Key 接入版)

OpenClaw入门教程:从安装到上手的完整指南(TaoToken 统一 Key 接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:50:47 阅读更多 →
LiteFlow-03:拥抱 Spring 生态 —— 自动化装配与独占高阶特性

LiteFlow-03:拥抱 Spring 生态 —— 自动化装配与独占高阶特性

LiteFlow-03:拥抱 Spring 生态 —— 自动化装配与独占高阶特性 在前面几章中,我们脱离了所有框架,在纯粹的 Non-Spring(原生 Java/Kotlin)环境下拆解了 LiteFlow 的底层内核。我们看到,原生模式虽然轻量&am…

2026/10/15 9:50:47 阅读更多 →
Positron Supervisor 的 Kallichore WebSocket 消息协议:SocketMessage 类型体系与消息消费链路

Positron Supervisor 的 Kallichore WebSocket 消息协议:SocketMessage 类型体系与消息消费链路

开发工具代码编辑器数据科学 【免费下载链接】positron Positron, a next-generation data science IDE 项目地址: https://gitcode.com/gh_mirrors/po/positron 点击查看 免费下载 导读 Kallichore(kcserver)是 Positron Supervisor 背后的…

2026/10/15 9:50:47 阅读更多 →
SpringBoot+Vue校园兼职系统开发实践

SpringBoot+Vue校园兼职系统开发实践

1. 项目概述这个基于SpringBoot的大学生兼职管理系统是一个面向高校学生群体的实用型Web应用。我在开发过程中发现,校园兼职市场存在信息不对称、管理混乱等问题,而传统的人工登记方式效率低下且容易出错。这套系统正是为了解决这些痛点而设计的。系统采…

2026/10/15 9:50:47 阅读更多 →
HyperFrames实战:用多帧堆叠提升夜景信噪比与动态范围

HyperFrames实战:用多帧堆叠提升夜景信噪比与动态范围

作为一个常年拍夜景、又不愿意每次都扛三脚架出门的人,我有一段时间被“高ISO噪点”和“单帧动态范围不够”这两件事反复折磨。后来干脆花几个周末写了一个命令行小工具,名字就叫 HyperFrames。它的思路特别朴素:既然单帧照片在短时间内只有那…

2026/10/15 9:49:45 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →