frp的工作原理

frp frp 是⼀个开源、简洁易⽤、⾼性能的内⽹穿透和反向代理软件,⽀持 tcp, udp, http, https 协议。frp 项⽬官⽹是 https://github.com/fatedier/frp  

 底层 vpn

frp⼯作原理 服务端运⾏,监听⼀个主端⼝,等待客户端的连接; 客户端连接到服务端的主端⼝,同时告诉服务端要监听的端⼝和转发类型; 服务端fork新的进程监听客户端指定的端⼝; 外⽹⽤户连接到客户端指定的端⼝,服务端通过和客户端的连接将数据转发到客户端; 客户端进程再将数据转发到本地服务,从⽽实现内⽹对外暴露服务的能⼒。

连接名称 url

百度云盘 https://pan.baidu.com/s/1PbKa8DkK5lq3bgEFTNLNog

密码:i8vm

github

mwget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_l inux_amd64.tar.gz

应用安装

⽂件列表  

 [root@hcss-ecs-e083 ~]# tree .

!"" frp_0.33.0_linux_amd64

#   !"" frpc #   !"" frpc

_full.ini

#   !"" frpc.ini

#   !"" frps #   !"" frps_full.ini

#   !"" frps.ini #   !"" LICENSE #  

!"" nohup.out #   %"" systemd #  

     !"" frpc.service #      

!"" frpc@.service #      

 !"" frps.service #      

%"" frps

@.service !""

frp_0.33.0_linux_amd64.tar.gz %"" nohup.out

配置

a 内⽹主机 不可以被⽹络访问

b 外⽹主机 可以被外⽹通过ip或者域名访问

使⽤b代理a主机,通过访问b主机管理a主机

访问b主机的特定端⼝,管理a主机的22端⼝

现在我们说b为服务端,提供代理服务

a主机是客户端,被代理了

服务端

开启端口

# 打开控制台⾯板端⼝

 [root@hcss-ecs-e083 ~]# firewall-cmd --zone=public --add-port=7500/tcp - -permanent

 # 打开frp服务端⼝

[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public --add-port=7000/tcp - -permanent # 打开⼀组客户端⼝

[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public --add-port=6000- 6100/tcp --permanent

# 加载防⽕墙更新

 [root@hcss-ecs-e083 ~]# firewall-cmd –reload

文件

[root@hcss-ecs-e083 ~]# ls -l frp_0.33.0_linux_amd64/frps*

-rwxrwxr-x 1 yuanyu yuanyu 12976128 Apr 27  2020

frp_0.33.0_linux_amd64/frps

-rw-rw-r-- 1 yuanyu yuanyu     4639 Apr 27  2020

frp_0.33.0_linux_amd64/frps_full.ini –

-rw-r-- 1 yuanyu yuanyu      114 Jul 18 21:41

frp_0.33.0_linux_amd64/frps.ini

配置文件

[root@hcss-ecs-e083 ~]# vim ~/frp_0.33.0_linux_amd64/frps.ini

--------------------------------------------------------------

# 服务名称

[common]

# 服务端⼝

 bind_port = 7000

# 控制台⾯板账号 dashboard_user=xxxxxx

# 控制台密码 dashboard_pwd=xxxxxxx

# 控制台端⼝ dashboard_port=7500

# 代理标识 token=xxxxxxxx

客户端

文件

[root@hcss-ecs-e083 ~]# ls -l frp_0.33.0_linux_amd64/frpc*

-rwxrwxr-x 1 yuanyu yuanyu 10629120 Apr 27  2020

frp_0.33.0_linux_amd64/

frpc -rw-rw-r-- 1 yuanyu yuanyu     7575 Apr 27  2020 frp_0.33.0_linux_amd64/

frpc_full.ini -rw-rw-r-- 1 yuanyu yuanyu      126 Apr 27  2020 frp_0.33.0_linux_amd64/frpc.ini

### FRP 内网穿透工作原理 FRP (Fast Reverse Proxy) 是一种用于内网穿透的高性能反向代理应用程序,能够将位于私有网络中的服务器资源通过互联网公开访问。其核心功能在于利用具备公网IP地址的服务端作为中介节点来转发请求至目标内部网络主机。 #### 工作流程描述 当客户端发起对外部可访问域名或IP地址的连接请求时: 1. 客户端发送的数据包先抵达运行于公网上并已部署好FRP服务程序的机器; 2. 此处的服务实例解析收到的信息并将之重新封装成适合传输给指定本地机的形式; 3. 接着这些数据被送往处于防火墙之后的目标计算机上的相应监听进程那里; 4. 同样地,在返回路径上发生的交互过程也会经历类似的转换处理机制以确保通信顺畅完成; 整个过程中涉及到的主要组件包括但不限于:`frps`(Server),即安装在外网环境下的中心控制台负责接收来自不同客户的入站流量并向对应的`frpc`(Client)分发指令;而后者则是在各个受保护局域网内的实体设备之上执行具体操作的部分[^1]。 为了更直观理解上述说明,下面提供了一张简化版架构示意图形化表示方法如下所示: ```mermaid graph LR; A[Internet Client] --> B{Public Server(FRPS)}; C[Private Network Host(FRPC)] -.->|TCP/UDP Tunnel| B; D[(Internal Service)]; B --> E[Traffic Forwarding]; E --> F[Decryption & Protocol Handling]; F --> G[Forward to Internal Service]; C --> H[Encryption & Protocol Packaging]; H --> I[Tunnel Establishment Request]; I --> J{Tunnel Established}; J --> K[Data Transmission via Encrypted Channel]; K --> L[Receive Data at Private Network Host]; L --> M[Send Response Back Through Tunnel]; M --> N[Response Reaches Internet Client]; ``` 此图展示了从外部客户发出请求直到最终获取到来自内部服务响应的整体流转路线。其中特别强调了加密通道建立以及协议层面的操作细节,体现了安全性考量在整个方案设计里的重要性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值