一、frp服务的搭建
frp⽀持 tcp, udp, http, https等 协议
frp的底层----vpn
1.frp的工作原理
服务端运⾏,监听⼀个主端⼝,等待客户端的连接; 客户端连接到服务端的主端⼝,同时告诉服务端要监听的端⼝和转发类型; 服务端fork新的进程监听客户端指定的端⼝; 外⽹⽤户连接到客户端指定的端⼝,服务端通过和客户端的连接将数据转发到客户端; 客户端进程再将数据转发到本地服务,从⽽实现内⽹对外暴露服务的能⼒
2.frp的下载安装
(1)frp下载
百度云盘下载
https://pan.baidu.com/s/1PbKa8DkK5lq3bgEFTNLNog
密码:i8vm
网址直接下载
https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
(2)解压缩包
root@localhost \~# tar -zxvf frp_0.33.0_linux_amd64.tar.gz
解压完成后查看
root@localhost \~# ls
anaconda-ks.cfg frp_0.33.0_linux_amd64 inotiftest.sh
folder frp_0.33.0_linux_amd64.tar.gz nohup.out
(3)将解压后的内容复制一份到frp目录
root@localhost \~# cp -r frp_0.33.0_linux_amd64 frp/
再次查看
root@localhost \~# ls
anaconda-ks.cfg frp frp_0.33.0_linux_amd64.tar.gz nohup.out
folder frp_0.33.0_linux_amd64 inotiftest.sh
(4)进入frp目录
root@localhost \~# cd frp
查看
root@localhost frp# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
(4)编辑配置文件
root@localhost frp# vim frpc.ini

(5)启动
首先查看
root@localhost frp# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
然后进行启动操作
root@localhost frp# ./frpc -c frpc.ini
2024/07/19 10:19:57 I service.go:282 66fe0d3f86ac5221 login to server success, get run id 66fe0d3f86ac5221, server udp port 0
2024/07/19 10:19:57 I proxy_manager.go:144 66fe0d3f86ac5221 proxy added: dongdong
2024/07/19 10:19:57 I control.go:179 66fe0d3f86ac5221 dongdong start proxy success
在浏览器进行访问http://123.249.27.70:7500/
输入账号密码后得到以下页面

点击tcp查看连接情况

可以看到成功进入了云主机
3.frp反向代理
内⽹主机 不可以被⽹络访问
外⽹主机 可以被外⽹通过ip或者域名访问
使⽤b代理a主机,通过访问b主机管理a主机 访问b主机的特定端⼝,管理a主机的22端⼝
现在我们说b为服务端,提供代理服务
a主机是客户端,被代理了
服务器操作
(1)同步
另准备一台主机,将原主机上的内容同步给新主机
root@dongdong \~# scp root@192.168.1.20:~/frp_0.33.0_linux_amd64.tar.gz ~
root@192.168.1.20's password:
frp_0.33.0_linux_amd64.tar.gz 100% 8817KB 38.9MB/s 00:00
查看
root@dongdong \~# ls
frp_0.33.0_linux_amd64.tar.gz todolist.jar
(2)解压
root@dongdong \~# tar -zxvf frp_0.33.0_linux_amd64.tar.gz
再次查看
root@dongdong \~# ls
frp_0.33.0_linux_amd64
frp_0.33.0_linux_amd64.tar.gz
(3)复制
将解压后的内容复制一份到frp目录
root@dongdong \~# cp -r frp_0.33.0_linux_amd64/ frp/
查看
root@dongdong \~# ls
frp_0.33.0_linux_amd64
frp_0.33.0_linux_amd64.tar.gz
(4)编辑配置文件
root@dongdong \~# vim frp/frps.ini

(5)打开端口
打开控制台⾯板端⼝
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
(6)加载防⽕墙更新
root@hcss-ecs-e083 \~# firewall-cmd --reload
(7)浏览器访问
在浏览器输入:服务器的IP地址:7500进行访问

此时我们发现,客户端的数量和服务器的数量都为0
客户端操作
(1)修改配置文件
root@localhost frp# vim frpc.ini

(2)运行
root@localhost frp# ./frpc -c frpc.ini
2024/07/19 12:33:36 I service.go:282 c17db3917894f5b2 login to server success, get run id c17db3917894f5b2, server udp port 0
2024/07/19 12:33:36 I proxy_manager.go:144 c17db3917894f5b2 proxy added: dongdong
2024/07/19 12:33:36 I control.go:179 c17db3917894f5b2 dongdong start proxy success
(3)再次浏览器访问
如下图所示:发现客户端和服务器的数量都变成1

点击tcp,j就可以看到我们创建的代理服务器了

此处我们可以看到我们的代理服务器是online状态
至此,frp反向代理测试成功
二、搭建ftp
1.安装vsftpd服务
root@dongdong frp# yum -y install vsftpd
查看vsftpd服务的状态
root@dongdong \~# systemctl status vsftpd
查看版本信息
root@dongdong \~# rpm -ql vsftpd
开启vsftpdf服务
root@dongdong \~# systemctl start vsftpd
查看端口情况
root@dongdong \~# netstat -lpunt | grep ftp
tcp6 0 0 :::21 :::* LISTEN 1926/vftpd
开启21端口
root@dongdong \~# firewall-cmd --zone=public --add-port=21/tcp --permanent
success
加载防火墙更新
root@dongdong \~# firewall-cmd --reload
success
列出开启的端口
root@dongdong \~# firewall-cmd --zone=public --list-ports
7000/tcp 7500/tcp 6000-6100/tcp 21/tcp
关闭selinux
root@dongdong \~# setenforce 0
永久关闭selinux
root@dongdong \~# vim /etc/selinux/config
SELINUX=permissive
设置开机自启
root@dongdong \~# systemctl enable vsftpd
2.ftp配置文件
创建客服账号
更改服务器的名字为ftpserver
root@dongdong \~# hostnamectl set-hostname ftpserver
查看主机名
root@dongdong \~# hostname
ftpserver
让其重启生效
root@dongdong \~# reboot
root@ftpserver \~# useradd kefu
root@ftpserver \~# echo kefu | passwd --stdin kefu
更改用户 kefu 的密码 。
passwd:所有的身份验证令牌已经成功更新。
查看配置文件
root@ftpserver \~# cat /etc/vsftpd/vsftpd.conf
重启vsftpd服务
root@ftpserver \~# systemctl restart vsftpd
下载ftp和lftp服务
root@ftpserver \~# yum -y install ftp lftp
编辑配置文件
root@ftpserver \~# vim /etc/vsftpd/vsftpd.conf
12行 anonymous_enable=NO
创建多级目录
root@ftpserver \~# mkdir -p /data/kefu/
查看目录
root@ftpserver \~# tree /data/
/data/
└── kefu
1 directory, 0 files
编辑配置文件
root@ftpserver \~# vim /etc/vsftpd/vsftpd.conf
100行 chroot_local_user=YES
101行 chroot_list_enable=YES
103行 chroot_list_file=/etc/vsftpd/chroot_list
重启vsftpd服务
root@ftpserver \~# systemctl restart vsftpd
进入data下的kefu目录
root@ftpserver \~# cd /data/kefu/
创建文件
root@ftpserver kefu# dd if=/dev/zero of=bigfile0 bs=3M count=1
记录了1+0 的读入
记录了1+0 的写出
3145728字节(3.1 MB)已复制,0.00492861 秒,638 MB/秒
重启vsftpd服务
root@ftpserver kefu# systemctl restart vsftpd
查看端口信息
root@ftpserver \~# netstat -lpunt | grep ftp
tcp6 0 0 :::21 :::* LISTEN 1566/vftpd
在客户端连接,发现主机找不到路由,ls也看不到服务器所创建的文件

开启防火墙
root@ftpserver \~# systemctl start firewalld
列出启用的端口
root@ftpserver \~# firewall-cmd --zone=public --list-ports
7000/tcp 7500/tcp 6000-6100/tcp 21/tcp
再次查看端口信息
root@ftpserver \~# netstat -lpunt | grep ftp
tcp6 0 0 192.168.1.10:61938 :::* LISTEN 1628/vftpd
tcp6 0 0 :::21 :::* LISTEN 1566/vftpd
关闭防火墙
root@ftpserver \~# systemctl stop firewalld
再次从客户端连接,发现我们所创建的bigfile0文件被成功的上传到了客户端
随后进行下载测试
在客户端的tmp目录下创建一个名为bf000的文件
root@localhost \~# cd /tmp
root@localhost tmp# dd if=/dev/zero of=bf000 bs=300M count=1
记录了1+0 的读入
记录了1+0 的写出
314572800字节(315 MB)已复制,4.65597 秒,67.6 MB/秒
服务器上操作并重启服务:
root@ftpserver \~# echo kefu >> /etc/vsftpd/chroot_list
root@ftpserver \~# systemctl restart vsftpd
使用ftp连接,传输成功

在服务器去查看,发现bf000的文件下载成功
root@ftpserver \~# tree /data/
/data/
└── kefu
├── bf000
└── bigfile0