内网的服务如何能在公网使用?

我在内网中有很棒的服务资源,但是没有固定IP,如何能够在公网使用呢?

要解决这种问题,内网穿透工具 frp(Fast Reverse Proxy) 是一个很棒的选择:既然外网不能访问内网,那么就主动从内网打通到外网的通道!

基本的原理是:

  • 前提条件
    • 要有一台有公网地址的服务器【配置可以比较低】,内网服务器可以连接到这台公网服务器
    • 内网服务器安装frp客户端:frpc,公网服务器安装frp服务端:frps
  • 建立 "长连接"------ 打通内网到公网的 "通道"
    • 内网设备启动 frpc 客户端,并加载配置文件(配置中包含 frps 的公网 IP、端口、认证信息等)。
    • frpc 主动向公网的 frps 发起 TCP 长连接(默认用 8000 端口,可自定义),并维持这个连接(通过心跳机制防止断开)。

这一步是穿透的关键:由于内网设备没有公网 IP,公网无法主动 "找到" 内网设备,因此必须由内网的 frpc "主动出击",与公网的 frps 建立连接,形成一条稳定的 "数据通道"。

内网设备无法被公网访问的根本原因,是路由器的 NAT(网络地址转换)机制会隐藏内网 IP。frp 通过 "frpc 主动连接 frps" 的方式,让路由器将 frpc 与 frps 的连接加入 "NAT 映射表",后续 frps 向 frpc 发送的数据(公网请求),会被路由器正确转发到内网的 frpc,从而实现 "穿透" NAT 的效果。

本文通过一个具体的例子来展示如何使用内网穿透工具frp将内网的web服务推向公网。

frp下载地址


假定在内网服务器中有一个web服务,监听端口号:8080;公网服务器IP地址为:123.123.123.123。下图描述了实现内网穿透的主要步骤:

  1. 在具有公网 IP 的公网服务器上部署 frps

部署 frps 并编辑 frps.toml 文件。以下是简化的配置,其中设置了 frp 服务器用于接收客户端连接的端口:

toml 复制代码
bindPort = 7000
  1. 在需要被访问的内网服务器上部署 frpc

部署 frpc 并编辑 frpc.toml 文件,以下是示例配置:

toml 复制代码
serverAddr = "123.123.123.123"  # frps 的IP
serverPort = 7000   # frps的bindPort,连接它可以打开通道

[[proxies]]
name = "myWebServer"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080    # 本地web服务监听的端口号
remotePort = 6666   # 在公网上暴漏的端口号
  • localIP 和 localPort 配置为需要从公网访问的内网服务的地址和端口
  • remotePort 表示在 frps 监听的端口,访问此端口的流量将被转发到内网服务的地址和端口。
  1. 启动 frps 和 frpc

公网服务器需要打开端口 7000 和 6666。

  1. 用户访问内网机器

用户使用网址:http://123.123.123.123:6666 即可使用 myWebServer 了,frps将用户访问公网服务器端口 6666 的流量转发到了内网服务器的端口: 8080 。

下图直观的展示了主要过程:

如果要通过域名访问内网服务器的web服务,可参见:通过自定义域名访问内网的 Web 服务


🪐祝好运🪐

相关推荐
qq_316411033 小时前
商用冷柜售后报修运维管理系统开发案例
运维
智码看视界3 小时前
Day59-阿里云ACK实战:生产级K8s集群部署与运维
运维·阿里云·kubernetes·k8s·日志监控·容器运维·阿里云ack
码视野4 小时前
基于 Vue3 + Element Plus 的【智慧新能源汽车充电桩运维调度与分时共享租赁系统】设计与实现(附完整源码与PRD)
运维·人工智能·汽车·vue3
qq_426003965 小时前
【UI自动化测试】UI自动化报错解决方案
运维·ui·自动化
网安蟹佬霸5 小时前
WAF绕过技术实战:从规则检测到编码绕过全指南(2026最新版,附Payload集与自动化脚本)
运维·安全·网络安全·架构·自动化·网安
小杨不想秃头5 小时前
信息安全工程师教程第二章密码学
运维·服务器·密码学
I'mChloe5 小时前
WGCLOUD怎么监控多台服务器?从Server、Agent 部署到监控面板实战
运维·服务器
Android系统攻城狮6 小时前
Linux PipeWire深度解析之pw_init调用流程与实战(八十三)
linux·运维·服务器·音频进阶·pipewire音频进阶
国科安芯6 小时前
轨道供电韧性:ASP4644四通道降压架构在低轨卫星平台电源管理中的适用性分析
运维·网络·数据库·嵌入式硬件·架构·状态模式·低轨卫星星座
Python自动化直播7 小时前
周末测试直播自动化时,发现一个棘手的并发问题
运维·自动化