当前位置: 首页 > news >正文

云计算实训10——frp服务的搭建、ftp服务的搭建

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Elasticsearch 使用terms对long类型日期统计按月销售
  • 1、springboot3 vue3开发平台-后端-项目构建
  • Go语言之参数传递
  • 判断一个字节中有几位置1,哪几位为1
  • 使用 Vue 和 ECharts 打造动态数据可视化图表
  • vue3大事件管理系统 === 首页 layout 文章分类页面 -
  • 【Neural signal processing and analysis zero to hero】- 2
  • 注册安全分析报告:OneApm
  • 【D3.js in Action 3 精译_020】2.6 用 D3 设置与修改元素样式 + 名人专访(Nadieh Bremer)+ 2.7 本章小结
  • centos5离线安装git
  • 达梦+flowable改造
  • 2024-07-19 Unity插件 Odin Inspector10 —— Misc Attributes
  • TCP滑动窗口和流量控制详解
  • ChatGPT对话:Windows如何将Python训练模型转换为TensorFlow.js格式
  • R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-等高线图-曲线图-热力图-雷达图-韦恩图(二D)
  • Apache Pulsar 2.1 重磅发布
  • Java 23种设计模式 之单例模式 7种实现方式
  • js中的正则表达式入门
  • linux学习笔记
  • nodejs调试方法
  • Rancher如何对接Ceph-RBD块存储
  • React16时代,该用什么姿势写 React ?
  • SQLServer之创建显式事务
  • Yeoman_Bower_Grunt
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 使用agvtool更改app version/build
  • # 飞书APP集成平台-数字化落地
  • #100天计划# 2013年9月29日
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $$$$GB2312-80区位编码表$$$$
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (10)ATF MMU转换表
  • (Forward) Music Player: From UI Proposal to Code
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Qt) 默认QtWidget应用包含什么?
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十五)使用Nexus创建Maven私服
  • (学习总结16)C++模版2
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (一)SpringBoot3---尚硅谷总结
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (已解决)什么是vue导航守卫
  • (源码分析)springsecurity认证授权
  • (转)大道至简,职场上做人做事做管理
  • (状压dp)uva 10817 Headmaster's Headache
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET CORE使用Redis分布式锁续命(续期)问题