frp(高性能反向代理)内网穿透

祈愿平安& 2024-10-11 12:07:15 阅读 81

一、frp相关概念

1、什么是frp

FRP(Fast Reverse Proxy)是一个高性能的反向代理应用,它使用Go语言编写,支持多种协议,包括HTTP、HTTPS、WebSocket等。FRP的主要特点是轻量级、高性能、易配置,可以用于内网穿透、负载均衡、反向代理等多种场景。

FRP的主要功能包括:

1.内网穿透:FRP可以将内网中的服务暴露给公网,实现远程访问。

2.负载均衡:FRP支持多种负载均衡策略,如轮询、随机等。

3.反向代理:FRP可以将请求转发到后端的多个服务器上,实现反向代理。

4.SSL/TLS:FRP支持HTTPS和WebSocket Secure,可以处理加密的请求。

5.插件系统:FRP支持插件扩展,可以根据需要添加自定义功能。

FRP由客户端(frps)和服务器端(frpc)两部分组成,客户端部署在需要被代理的服务器上,服务器端部署在公网可访问的服务器上。通过配置文件,可以灵活地定义代理规则和行为。

FRP是开源软件,可以在GitHub上找到源代码和文档。

frp 项⽬官⽹是 https://github.com/fatedier/frp

二、frp工作原理

服务端运⾏,监听⼀个主端⼝,等待客户端的连接;

客户端连接到服务端的主端⼝,同时告诉服务端要监听的端⼝和转发类型;

服务端fork新的进程监听客户端指定的端⼝;

外⽹⽤户连接到客户端指定的端⼝,服务端通过和客户端的连接将数据转发到客户端;

客户端进程再将数据转发到本地服务,从⽽实现内⽹对外暴露服务的能⼒。

三、应用安装

查看文件列表ls

[root@localhost ~]# ls -lh

解压文件

[root@localhost ~]# tar -zxvf frp.tar.gz

tree进行查看

cp-r进行复制

[root@localhost ~]# cp -r frp_0.33.0_linux_amd64/ frp/

[root@localhost ~]# ls

进入frp目录下ls进行查看

编写配置文件配置列表

[root@localhost frp]# vi frpc.ini

[root@localhost frp]# ls

froc.ini  frpc_full.ini  frps           frps.ini  systemd

frpc      frpc.ini       frps_full.ini  LICENSE

[root@localhost frp]# ./frpc -c frpc.ini

通过配置可实现:

A  内网主机  不可以被网络访问

B  外网主机   可以被外网通过ip或者域名访问

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

ftp 访问b主机的特定端口去管理a主机的22端口

b为服务端 提供服务

a为客户端   被服务

配置信息:

服务端:

开启端口:

查看文件

修改配置文件

[root

@hcss-ecs-e083

~

]

# vim ~/frp_0.33.0_linux_amd64/frps.ini

客户端:

完成文件下载

[root@localhost ~]# scp root@192.168.1.22:~/frp.tar.gz ~

root@192.168.1.22's password:

frp.tar.gz                                       100% 8817KB  61.1MB/s   00:00  

解压

[root@localhost ~]# ls

解压此文件

[root@localhost ~]# tar -zxvf frp.tar.gz

 

[root@localhost ~]# cp -r frp_0.33.0_linux_amd64/ frp/

[root@localhost ~]# ls

配置服务器的ini文件

[root@localhost ~]# vi frp/frps.ini

                      

配置文件内容详解:

四、启动此端口

服务端:

打开端口7000frp   7500面板    6000-6100 客户端的代理端口

[root@localhost ~]# firewall-cmd --zone=public --add-port=7000/tcp --permanent

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

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

[root@localhost ~]# firewall-cmd --reload

ls进行查看

增加ftp服务:

1. 内网穿透:FRP可以作为内网穿透工具,允许用户从外部网络访问内网中的FTP服务。这对于远程工作或访问家庭网络中的文件非常有用。

2. 安全性增强:虽然FTP协议本身不加密,但FRP可以配置为使用HTTPS或其他加密方式来传输数据,从而提高数据传输的安全性。

3. 负载均衡:如果FTP服务需要处理大量的文件传输请求,FRP可以作为反向代理来分配请求到多个FTP服务器上,实现负载均衡。

4. 访问控制:FRP可以配置访问控制列表(ACL),以限制哪些IP地址或用户可以访问FTP服务。

5. 监控和管理:FRP提供了日志记录和监控功能,可以帮助管理员监控FTP服务的使用情况和性能。

6. 自定义插件:FRP支持插件系统,可以开发自定义插件来扩展FTP服务的功能,例如添加额外的认证机制或数据压缩。

7. 跨平台支持:FRP支持多种操作系统,这意味着可以在不同的平台上部署FTP服务,并通过FRP统一管理。

8. 简化配置:FRP的配置相对简单,可以快速设置FTP代理,而无需复杂的网络配置。

9. 高可用性:通过FRP,可以设置多个FTP服务器作为后端,并在其中一个服务器失败时自动切换到其他服务器,提高服务的可用性。

10. 社区支持:FRP是一个开源项目,拥有活跃的社区,用户可以从社区获得帮助和支持,包括FTP相关的配置和问题解决。

总的来说,将FTP集成到FRP中可以提供更多的灵活性和功能,特别是在需要内网穿透、安全性增强、负载均衡和高级管理功能的场景中。调整。

 

步骤:

安装vsftpd

[root@localhost ~]# yum -y install vsftpd

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

软件包 vsftpd-3.0.2-22.el7.x86_64 已安装并且是最新版本

无须任何处理

查看是否安装

[root@localhost ~]# yum list installed |grep ftp

vsftpd.x86_64                         3.0.2-22.el7                     @cangku 

[root@localhost ~]# rpm -ql vsftpd

[root@localhost ~]# systemctl status vsftpd

● vsftpd.service - Vsftpd ftp daemon

[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# netstat -lpunt |grep ftp

关闭selinux

[root@localhost ~]# setenforce 0

永久关闭

[root@localhost ~]# vim /etc/selinux/config

设置vsftpd服务开机自启

[root@localhost ~]# systemctl enable vsftpd

[root@localhost ~]# hostnamectl set-hostname ftpserver

[root@localhost ~]# hostname

Ftpserver

查看vsftpd的配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

[root@localhost ~]# useradd kefu

[root@localhost ~]# echo kefu|passwd --stdin kefu

更改用户 kefu 的密码 。

passwd:所有的身份验证令牌已经成功更新。

创建ftp登录的账户

修改配置文件    不允许内容登录

重启服务

[root@localhost ~]# systemctl restart vsftpd

指定用户访问的路径

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

创建配置文件对应的目录

[root@localhost ~]# mkdir /data/fefu/ -p

[root@localhost ~]# tree /data/

限定目录

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

重启服务

[root@localhost ~]# systemctl restart vsftpd



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。