Frp自建内网穿透

目录

Frp使用须知

Frp的工作原理

Frp配置服务端

frp文件夹内的文件

frps.ini配置文件

仪表盘

Frp配置客户端

文件目录 

frpc.ini配置文件

Frp使用须知

前言:自建frp需要部署服务端以及客户端,服务端类似于花生壳服务端,ngrok服务端一样暴露出通信端口,客户端连接后进行通信

服务端:需要有公网IP,最合适的机器为云服务(linux)

客户端:本地的linux虚拟机或者其他物理机(要穿透的内网机器windows)

Frp的工作原理

理解:

  • 当客户端启动时,它会向frp服务器发送一条请求,请求服务器分配一个唯一的客户端ID。
  • 服务器返回分配的客户端ID。frp服务器将分配一个唯一的客户端ID,并将其返回给客户端。
  • 客户端连接到服务器。客户端使用分配的客户端ID连接到frp服务器,以便服务器可以知道客户端要连接的计算机和端口。
  • 当外部网络发出请求时,frp服务器将请求转发到客户端,客户端透过服务端将请求转发到指定的外网计算机和端口上。

Frp配置服务端

下载好frp安装包:https://github.com/fatedier/frp/releases

注意:下载后缀为linux__amd64的最新版。

将压缩包放入linux内的用户(root)文件夹中。

解压该压缩包:tar xzvf frp_0.34.3_linux_amd64.tar.gz

将解压后的文件名命名为frp:mv frp_0.34.3_linux_amd64 frp

frp文件夹内的文件

  • frpc:客户端执行文件
  • frpc_full.ini:客户端完整配置文件
  • frpc.ini:客户端配置文件
  • frps:服务端执行文件
  • frps_full.ini:服务端完整配置文件
  • frps.ini:服务端配置文件

注意:frpc文件供客户端使用,frps供服务端使用。在服务端把相关客户端文件都删掉。

删掉客户端文件:rm -f frpc frpc_full.ini frpc.ini

frps.ini配置文件

[common]
#监听客户端地址,默认0.0.0.0表示全部
bind_addr = 0.0.0.0
#frps与frpc交互用的端口,记得关闭防火墙
bind_port = 7000
#设置token
privilege_token = 12345678
#开启日志
enable_prometheus = true
#日志路径
log_file = ./frps.log
#日志级别
log_level = info
#日志保存天数
log_max_days = 3
#连接池数量,如果有很多链接最好弄高点,默认5
max_pool_count = 5
#后台仪表盘,登录后服务端可查看frp状态
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
#要转发的端口(可写多个,对应下面的转发组)
vhost_tcp_port01=7100
vhost_tcp_port02=260
vhost_tcp_port03=270
vhost_tcp_port04=280
#心跳连接,若不加60s就自动断连
heartbeat_timeout = 30

注意:vhost_xxx_port字段没有实际意义,其只是描述该端口是干嘛的 

后台启动frps:nohup ./frps -c frps.ini &

注意:-c表示指定配置文件。

仪表盘

前言:我们将服务端启动后就可以通过 Dashboard 来方便的查看 FRP 的状态以及代理统计信息展示。

注意:仪表盘的用户名密码就在frps.ini的配置文件中

  • 用户名:dashboard_user
  • 密码:dashboard_pwd 

访问仪表盘:服务器公网ip:dashboard_port

Frp配置客户端

下载好frp安装包:https://github.com/fatedier/frp/releases

注意:下载后缀为windows__amd64的最新版,并解压在电脑的文件中。

文件目录 

注意:将文件名为frps的文件删除。

frpc.ini配置文件

[common]
#服务器的公网ip,网址也行
server_addr = 198.44.165.183
#frps与frpc交互用的端口,记得关闭防火墙
server_port = 7000
#设置token,对应frps
privilege_token = 12345678
#日志路径
log_file = ./frps.log
#日志级别
log_level = info
#日志保存天数
log_max_days = 3
#心跳连接
heartbeat_timeout = 30

[ssh]
#连接类型
type = tcp
#被访问的本机IP
local_ip = 192.168.1.14
#被访问的端口
local_port = 8080
#监听的服务器端的端口
remote_port = 7100
#是否加密信息
use_encryption = true
#是否压缩信息
use_compression = true
#限制该隧道的带宽,单位为KB或MB
bandwidth_limit = 1MB

#一次映射多个端口写法
[range:top]
type = tcp
local_ip = 192.168.1.14
local_port = 230,240,250
remote_port = 260,270,280

理解:

  • 外网设备访问公网IP的7100端口,那么就会跳转到内网本机的8080端口
  • 默认情况下只要知道 FRP 服务端开放的端口,任意 FRP 客户端都可以随意在服务端上注册端口映射,因此需要token这个参数,只有知道该token的客户端才可以在服务端上注册端口映射
  • 中括号内的英文只是为了标识作用,没有实际意义;其可以写多组,一组代表要转发一组端口
  • 写多组端口转发后,那么在服务端应该配置要转发的端口(vhost_xxx_port)
  • 一次映射多个端口时,映射顺序是一一对应的

配置完成后,在当前目录进入cmd,执行以下指令

frpc.exe -c frpc.ini

猜你喜欢

转载自blog.csdn.net/m0_60027772/article/details/132465833