您现在的位置是:首页 >其他 >内网透穿访问解决方案[frp反向内网穿透]网站首页其他

内网透穿访问解决方案[frp反向内网穿透]

夜魔009 2023-06-25 20:00:02
简介内网透穿访问解决方案[frp反向内网穿透]

最近云平台升级了,以前提供端口映射的功能,部署的业务通过端口映射后公网可以直接访问。但升级之后被屏蔽了,并且服务器虽然开通了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 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。