frp反向代理的安装与配置、ftp服务的搭建及应用

1、frp简介

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

2、frp⼯作原理

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

3、frp的安装与配置

[root@y ~]# wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
[root@y ~]# tar -zxvf frp.tar.gz 
[root@y ~]# mv frp_0.33.0_linux_amd64/ /frp
[root@y ~]# ls /frp
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  systemd 
[root@y ~]# vim /frp/frpc.ini                                    这里由于我没有云服务器所有连的别人的

[common]
server_addr = 123.249.27.70                        代理服务器IP
server_port = 7000

代理标识
token=knee@588588

[qwer]                        被代理的主机名称,不允许和其他重复
type = tcp                        代理服务类型
local_ip = 127.0.0.1
local_port = 22                本地被代理的端⼝
remote_port = 6022                选择代理后的端⼝
[root@y ~]#cd /frp
[root@y frp]# ./frpc -c frpc.ini                            启动frp服务浏览器访问123.249.27.70:6002

换成4.10的主机搭建一个云frp的服务器

[root@localhost ~]# tar -zxvf frp.tar.gz 
[root@localhost ~]# scp root@192.168.4.30:~/frp.tar.gz ~
[root@localhost ~]# mv frp_0.33.0_linux_amd64/ /fr
[root@localhost ~]# vim /frp/frps.ini

服务名称
[common]

服务端⼝
bind_port = 7000

控制台⾯板账号

dashboard_user=aaa    

控制台密码
dashboard_pwd=aaa

控制台端⼝
dashboard_port=7500

打开frp服务端⼝
[root@localhost ~]# firewall-cmd --zone=public --add-port=7000/tcp --permanent

打开⼀组客户端⼝
[root@localhost ~]# firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent

打开控制台⾯板端⼝
[root@localhost ~]# firewall-cmd --zone=public --add-port=7500/tcp --permanent

加载防⽕墙更新
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# cd /frp
[root@localhost frp]# ./frps -c frps.ini

换成4.30的源主机这里由于是自己搭建了一个所以
[root@y ~]# vim /frp/frpc.ini
[common]
server_addr = 192.168.4.10
server_port = 7000

[qwer]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6022

浏览器访问服务器IP:7500端口就可以访问到frp服务器,左边第二个选项TCP可以看见有没有可连接的主机,以及连接的端口号。

eaa6bd9d8c704c3d82f9a0be76c2cce8.png

0caec68ee7f544d6949a2c399bc72af2.png


远程登录通过端口6022即可访问4.10的服务器就可以访问到客户端。

cde1fa23f15e42eb87ae88da0a9af844.png

 

二、ftp


1.ftp服务概述:


FTP(File Transfer Protocol)是⼀种应⽤⾮常⼴泛并且古⽼的⼀个互联⽹⽂件传输协议。
主要⽤于互联⽹中==⽂件的双向传输==(上传/下载)、⽂件共享
跨平台   Linux、Windows
FTP是==C/S==架构,拥有⼀个客户端和服务端,使⽤==TCP协议==作为底层传输协议,
提供可靠的数据传输
FTP的默认端⼝ ==21号==(命令端⼝)    ==20号==(数据端⼝,主动模式下) 默认被
动模式下
FTP程序(软件)==vsftpd==

2、FTP服务的客户端⼯具 


Linux:ftp、lftp(客户端程序)
Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
lftp和ftp⼯具区别:
lftp:默认是以==匿名⽤户==访问
ftp:默认是以==⽤户名/密码==⽅式访问
lftp可以批量并且下载⽬录

3、FTP的两种运⾏模式


在FTP服务中,其⼀共拥有两种模式(主动模式 + 被动模式)

4、搭建FTP服务


[root@y ~]# yum -y install vsftpd
[root@y ~]# systemctl restart vsftpd
[root@y ~]# systemctl enabled vsftpd
[root@y~]# firewall-cmd --set-default-zone=trusted   修改默认区域
[root@y ~]# firewall-cmd --get-default-zone     查看默认区域

5.FTP的配置⽂件详解


[root@y ~]# rpm -ql vsftpd 
 /usr/lib/systemd/system/vsftpd.service     启动脚本
/etc/vsftpd              配置⽂件的⽬录
/etc/vsftpd/ftpusers           ⽤户列表⽂件,⿊名单
/etc/vsftpd/user_list          ⽤户列表⽂件,可⿊可⽩(默认是⿊名单)
/etc/vsftpd/vsftpd.conf         配置⽂件(主配置⽂件)
 /usr/sbin/vsftpd            程序本身(⼆进制的命令)
/var/ftp               匿名⽤户的默认数据根⽬录
/var/ftp/pub             匿名⽤户的扩展数据⽬录

vsftpd配置⽂件详解:
[root@y ~]# grep -v ^# /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES       ⽀持匿名⽤户访问  
local_enable=YES        ⽀持⾮匿名⽤户,普通账号登录,默认进⼊到⾃⼰家⽬录
write_enable=YES        写总开关
local_umask=022         反掩码  file:644  rw- r-- r-- dir:755
dirmessage_enable=YES   启⽤消息功能
xferlog_enable=YES       开启或启⽤xferlog⽇志
connect_from_port_20=YES    ⽀持主动模式(默认被动模式)
xferlog_std_format=YES      xferlog⽇志格式
listen=YES              ftp服务独⽴模式下的监听
pam_service_name=vsftpd     指定认证⽂件
userlist_enable=YES       启⽤⽤户列表
tcp_wrappers=YES        ⽀持tcp_wrappers功能(FTP限速操作)

6、ftp服务的搭建

[root@y ~]# yum -y install vsftpd
[root@y ~]# rpm -ql vsftpd                    查看相关的配置文件
[root@y ~]# systemctl status vsftpd            查看启动状态
[root@y ~]# systemctl start vsftpd
root@y ~]# netstat -lpunt |grep                 ftp查看端口情况
[root@y ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent   
                                                 打开ftp端口
[root@y ~]# firewall-cmd --reload
[root@y ~]# firewall-cmd --zone=public --list-ports        查看打开的端口
[root@y ~]# setenforce 0                        关闭selinx
[root@y ~]# vim /etc/selinux/config                 永久关闭selinx

ef253a645a4f4b61ab5be3a118b9baf1.png

换一台主机设置为ftp的客户端
[root@localhost frp]# yum -y install ftp
[root@localhost frp]# ftp 192.168.4.30

57687482fc654f9489e58f3c7d287362.png

[root@localhost frp]# yum -y install lftp            
[root@localhost frp]# lftp 192.168.4.30                默认是匿名访问

d3c81a6e12a44d84b34fd2c3da80be7f.png

这里是因为ls时端口是随机的所以找不到。

换回服务器
[root@y ~]# useradd kehu
[root@y ~]# echo kehu |passwd --stdin kehu
[root@y ~]# vim /etc/vsftpd/vsftpd.conf 

17        local_root=/data/kehu                                    指定账号访问目录,需要写的
101    chroot_local_user=YES                    去掉这里的注释,禁锢kehu中i能在/data/kehu活动

[root@y ~]# systemctl start vsftpd
[root@y ~]# cd /data/kehu/
[root@y kehu]#  dd if=/dev/zero of=./syg.txt bs=3M count=1
[root@y kehu]# firewall-cmd --set-default-zone=trusted                设置信任所有端口

回到客户机

cea3f49db93d456c9a4819f4aaa603d9.png

要下载的话就输入get 文件名,要上传就输入pull 文件名。

7、一般可能会遇见的问题

2ccf09141813432eb11662c87d37bc11.png

ca7bde0c2f1142208c0d03feacd38331.png

08daed9d60f34cf9be4831ebd3cc5fc9.png

c2edbd7cff8d4f169bf84a99b1262021.png

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/380768.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Godot4.2】SVGParser - SVG解析器函数库

概述 这是一个基于GDScript内置XMLParser编写的简易SVG文件解析函数库。 目的就是可以将SVG文件解析为GDSCript可以处理的字典或DOM形式,方便SVG渲染和编辑。 目前还只是一个简易实现版本。还需要一些改进。 函数库源码 # # 名称:SVGParser # 类型…

【开源库学习】libodb库学习(三)

4 查询数据库 如果我们不知道我们正在寻找的对象的标识符,我们可以使用查询在数据库中搜索符合特定条件的对象。ODB查询功能是可选的,我们需要使用--generate-query ODB编译器选项显式请求生成必要的数据库支持代码。 ODB提供了一个灵活的查询API&#x…

【机器学习实战】Datawhale夏令营2:深度学习回顾

#DataWhale夏令营 #ai夏令营 文章目录 1. 深度学习的定义1.1 深度学习&图神经网络1.2 机器学习和深度学习的关系 2. 深度学习的训练流程2.1 数学基础2.1.1 梯度下降法基本原理数学表达步骤学习率 α梯度下降的变体 2.1.2 神经网络与矩阵网络结构表示前向传播激活函数…

GESP CCF 图形化编程四级认证真题 2024年6月

一、单选题(共 10 题,每题 2 分,共 30 分) 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 C B C D C D A B D C C D A A B 1、小…

整合Tess4J实现OCR图片识别技术

文章目录 1. 什么是OCR2. 什么是Tess4J库?3. 引入依赖4. 下载默认的训练数据5. 配置训练数据的目录路径6. 测试代码6.1 TesseractOcrConfig6.2 OcrController6.3 OcrService6.4 OcrServiceImpl 7. 功能测试7.1 调试请求接口7.2 测试结果 1. 什么是OCR **OCR (Optic…

Spark的动态资源分配算法

文章目录 前言基于任务需求进行资源请求的整体过程资源申请的生成过程详解资源申请的生成过程的简单例子资源调度算法的代码解析 申请资源以后的处理:Executor的启动或者结束对于新启动的Container的处理对于结束的Container的处理 基于资源分配结果进行任务调度Pen…

AI算法22-决策树算法Decision Tree | DT

目录 决策树算法概述 决策树算法背景 决策树算法简介 决策树算法核心思想 决策树算法的工作过程 特征选择 信息增益 信息增益比 决策树的生成 ID3算法 C4.5的生成算法 决策树的修剪 算法步骤 决策树算法的代码实现 决策树算法的优缺点 优点 缺点 决策树算法的…

Unity游戏开发入门:从安装到创建你的第一个3D场景

目录 引言 一、Unity的安装 1. 访问Unity官网 2. 下载Unity Hub 3. 安装Unity Hub并安装Unity编辑器 二、创建你的第一个项目 1. 启动Unity Hub并创建新项目 2. 熟悉Unity编辑器界面 3. 添加基本对象 4. 调整对象属性 5. 添加光源 三、运行与预览 引言 Unity&…

html 单页面引用vue3和element-plus

引入方式: element-plus基于vue3.0,所以必须导入vue3.0的js文件,然后再导入element-plus自身所需的js以及css文件,导入文件有两种方法:外部引用、下载本地使用 通过外部引用ElementPlus的css和js文件 以及Vue3.0文件 …

冒泡,选择,插入,希尔排序

目录 一. 冒泡排序 1. 算法思想 2. 时间复杂度与空间复杂度 3. 代码实现 二. 选择排序 1. 算法思想 2. 时间复杂度与空间复杂度 3. 代码实现 三.插入排序 1. 直接插入排序 (1). 算法思想 (2). 时间复杂度与空间复杂度 (3). 代码实现 2. 希尔排序 (1). 算法思想 …

昇思25天学习打卡营第23天 | 基于MindSpore的红酒分类实验

学习心得:基于MindSpore的红酒分类实验 在机器学习的学习路径中,理解和实践经典算法是非常重要的一步。最近我进行了一个有趣的实验,使用MindSpore框架实现了K近邻(KNN)算法进行红酒分类。这个实验不仅加深了我对KNN算…

云手机结合自主ADB命令接口 提升海外营销效率

现在,跨境电商直播已经成为在线零售的重要渠道,在大环境下,确保直播应用的稳定性和用户体验至关重要。 云手机支持自主ADB命令接口,为电商直播营销提供了技术支持,使得应用开发、测试、优化和运维更加高效。 什么是A…

卷积神经网络学习问题总结

问题一: 深度学习中的损失函数和应用场景 回归任务: 均方误差函数(MSE)适用于回归任务,如预测房价、预测股票价格等。 import torch.nn as nn loss_fn nn.MSELoss() 分类任务: 交叉熵损失函数&…

用go实现限流算法

文章目录 固定窗口优缺点:适用场景:总结: 滑动窗口优缺点:适用场景:总结: 漏桶限流器优缺点:适用场景:总结: 令牌桶优缺点:适用场景:总结&#xf…

SpringBoot结合ip2region实现博客评论显示IP属地

你好呀,我是小邹。 在现代的Web应用中,特别是博客和论坛类网站,为用户提供地理定位服务(如显示用户所在地理位置)可以极大地增强用户体验。本文将详细探讨如何使用Java和相关技术栈来实现在博客评论中显示用户的地址信…

NXP i.MX8系列平台开发讲解 - 3.19 Linux TTY子系统(二)

专栏文章目录传送门:返回专栏目录 Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】 目录 1. Linux 串口驱动 1.1 Uart 驱动注册流程 1.2 uart 操作函数 1.3 line discipline 2. Linux tty应用层使用…

【 DHT11 温湿度传感器】使用STC89C51读取发送到串口、通过时序图编写C语言

文章目录 DHT11 温湿度传感器概述接线数据传送通讯过程时序图检测模块是否存在 代码实现总结对tmp tmp << 1;的理解对sendByte(datas[0]/10 0x30);的理解 DHT11 温湿度传感器 使用80C51单片机通过读取HDT11温湿度传感的数据&#xff0c;发送到串口。 通过时序图编写相应…

2024-07-18 Unity插件 Odin Inspector8 —— Type Specific Attributes

文章目录 1 说明2 特定类型特性2.1 AssetList2.2 AssetSelector2.3 ChildGameObjectsOnly2.4 ColorPalette2.5 DisplayAsString2.6 EnumPaging2.7 EnumToggleButtons2.8 FilePath2.9 FolderPath2.10 HideInInlineEditors2.11 HideInTables2.12 HideMonoScript2.13 HideReferenc…

STM32学习(3)--GPIO输入

GPIO输入 3.1GPIO输入1.按键介绍2.传感器模块介绍3.硬件电路4.C语言知识点补充&#xff08;1&#xff09;C语言数据类型&#xff08;2&#xff09;C语言宏定义&#xff08;3&#xff09;C语言typedef(4)C语言结构体&#xff08;5&#xff09;C语言枚举 3.2按键控制LED代码1.mai…

Python爬虫(基本流程)

1. 确定目标和范围 明确需求&#xff1a;确定你需要从哪些网站抓取哪些数据。合法性&#xff1a;检查目标网站的robots.txt文件&#xff0c;了解哪些内容可以被抓取。数据范围&#xff1a;确定爬取数据的起始和结束点&#xff0c;比如时间范围、页面数量等。 2. 选择合适的工…