关于本地服务器 + 云服务器 + FRP 的整体总结(优化版)
关于本地服务器 + 云服务器 + FRP 的整体总结(优化版)
1、frp 的部署与作用
frp 的核心功能,就是在 本地服务器端口 ↔ 云服务器端口 之间建立一条稳定的“隧道”。
只要这条隧道打通,本地内网环境就能通过云服务器的公网 IP 被外部访问。
这条隧道只需建立一次(即 frpc ↔ frps 建立连接),之后所有被映射的服务都会通过它进行流量转发。
2、本地服务的端口映射
每个本地服务都会占用一个端口,例如一个 Docker 容器监听在:
本地:4545 |
如果希望外网能访问这个本地服务,就需要在 frp 中配置一个对应的“代理端口”。
frp 会将:
云服务器的端口(如4545) |
与:
本地服务器的端口(如4545) |
通过隧道连接起来。
3、公网访问流程
当映射关系配置完成后:
- 外部用户访问:
http://云服务器公网IP:4545 - 请求先到云服务器的
4545端口 - 通过 frp 隧道转发到你家里的本地服务器
4545端口 - 最终由本地 Docker 服务处理并返回数据
也就是说:
公网IP:端口 → frps → frpc → 本地服务端口 |
这样,本地的 Docker 服务就能像部署在云服务器上一样被公网访问。
个人的理解:frp的部署 frp 的整个工作就是本地的端口和云服务器端口打通一条隧道,又一条就行,网络就可以进行连接了。 然后就是我们的自己的服务配置代理端口 每一个服务基本都需要一个端口的,比如我本地的一个docker服务,本地部署好了,如何让别人公网访问到呢。 这里就是通过frp隧道,将本地服务的端口和拥有公网ip的服务器的端口连接起来,这个是在frp配置里面操作的,然后就是公网ip加对外暴露的端口就会通过frp隧道流到本地的服务器上面了。 |