一、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