最近云平台升级了,以前提供端口映射的功能,部署的业务通过端口映射后公网可以直接访问。但升级之后被屏蔽了,并且服务器虽然开通了ssh直连通道,但是关闭了ssh端口转发功能(主机上功能是正常的,是防火墙加了设置)。
通过gradio映射的web访问速度又非常慢,非常影响学习效率。为了达到比较快的访问速度。决定用这个工具frp:
功能作用,将内网(frp客户端)主机上的服务,通过公网(frp服务端)主机映射开放到公网。
一般情况下适用于,公网无法直接访问到内网的服务,内网没有权限开通端口映射开放服务到公网。但又要把服务开放到公网,就这么搞。
工作原理:
首先启动frps服务端监听公网的bind端口。等待frp客户端连上来,建立一个数据收发的通道。
然后启动frpc客户端,这时客户端会从内网连接到公网的frps服务端,只要token正确,就会建立好数据传输通道。为什么叫反向穿透呢,因为我们是希望公网能访问内网的服务,但是现在这个数据通道刚好是反的,是内网访问公网的,但是tcp传输通道一旦建立,正反传输都是可以的。
传输通道建立后,客户端会将自己配置文件中remote_port告诉服务端,服务端就会在这个参数给定的端口启动一个业务监听服务等候,公网业务来访问。
至此整个反向内网透传就构建好了。
当有公网的业务终端来访问frps所在的服务端的业务监听服务端口时,frps就会把访问请求直接通过传输通道发给frpc客户端,frpc会把请求直接转发给自己配置文件里的local_ip ,local_port配置的目标服务,当然回应数据也会反向的按这个流程发回去。
整个业务访问也就通了。
原理讲完 ,讲些实操:
frp内网透传端口转发示例
把云平台内能从内访问公网,但公网无法访问进去的A主机的业务服务,通过自己的公网B主机转发出来。示例如下:
frp服务端配置,自己的公网主机B
bind_port 就是服务端监听端口,服务端这个端口,必须在公网能够被访问到。
token 就是个复杂的字符串,服务端写的,和客户端一样就行,一定要注意,足够复杂。另A->B的通信会被token加密。
dashboard_port frp管理后台端口,请按自己需求更改
frp管理后台端口,请按自己需求更改
dashboard_user
dashboard_pwd
enable_prometheus 开启性能监控
服务端日志配置
log_file 日志文件的存储位置和名字
log_level 日志级别,一般info就可以
log_max_days 日志循环存储最多存几天的
frps.ini
[common]
bind_port = 8800
token = 23c4tum90^7dff4
dashboard_port = 8801
dashboard_user = admin
dashboard_pwd = adminpwd
enable_prometheus = true
log_file = log.txt
log_level = info
log_max_days = 10
启动
frps -c frps.ini
frp客户端配置,云平台的内网主机A(能访问公网,但不能从公网访问)
server_addr 就是服务端的端口公网暴露的可以访问的地址
server_port 与上面frp服务端配置中的bind_port保持一致,如果服务器的端口通过防火墙映射出去,和配置文件中并不一样,要以公网能访问到的IP和端口为准。
token 和服务端要配置成一样的,否则无法连接服务端。和服务端之间的通信也会用这个加密。
clientName 就是客户端的一个标识信息,服务端那边的日志会记录相关信息,日志的时候,统计什么的可以用。
type 进行tcp连接的穿透映射
local_ip 本地地址,这个地址和下面的local_port端口,形成的服务端口,会被转发到server端
local_port 本地端口,同上描述。一般是内网要穿透出去的服务的端口
remote_port frp服务端会起的端口,frp客户端连接到服务端时,服务端会以这个参数为准,启动 一个端口监听。这就是暴露到公网的端口
frpc.ini
[common]
server_addr = 114.164.62.131
server_port = 8800
token = 23c4tum90^7dff4
[clientName]
type = tcp
local_ip = 127.0.0.1
local_port = 9999
remote_port = 1999
启动
frpc -c frpc.ini
启动之后,访问 114.164.62.131的1999端口,就等同访问到A主机的 127.0.0.1的9999端口。tcp端口转发搞定。
frp是很强大的一个网络透传工具,被很多杀毒软件误识别为病毒、木马,是因为这个工具经常被黑客使用导致的。但其只是个工具。它还有很多其它功能,当然都是依赖配置文件ini的配置来进行使用、启用。
我们在使用工具时,用好的一面即可。不能因为有人拿刀杀了人,就说所有的刀都是坏的不好的东西,对吧!这是个常识。但是如今的世界,依然还是犯错!
fpr软件下载链接:
链接: https://pan.baidu.com/s/1OSUJOzzTQfJENkszJrrZFg?pwd=6yaa
提取码: 6yaa