FTP 文件传输协议

FTP  文件传输协议

作用

用来传输文件的

FTP协议采用的是TCP作为传输协议,

21号端口用来传输FTP控制命令的,

20号端口用来传输文件数据的

FTP传输模式:

主动模式:

FTP服务端接收下载控制命令后,会主动从tcp/20号端口发送数据传输给客户端

被动模式: 

FTP服务端接收下载控制命令后,会开启一个空闲端口被动等待客户端数据传输连接

FTP控制命令:

pwd   ls   get   put   quit

配置:

允许匿名用户访问FTP服务器           anonymous_enable=YES      anno_root=
允许服务端本地用户访问FTP服务器     local_enable=YES          local_root=

user_list文件作为黑名单       userlist_enable=YES    userlist_deny=YES   
user_list文件作为白名单       userlist_enable=YES    userlist_deny=NO 

listen_port=2121      #设置监控端口
max_clients=100       #最大连接数
max_per_ip=5          #每个IP的最大连接数

实验 

[root@localhost ~]# systemctl disable  firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
[root@localhost ~]# 
//关闭防火墙和核心防护

 安装软件vsftpd

[root@localhost ~]# yum install -y vsftpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 vsftpd.x86_64.0.3.0.2-29.el7_9 将被 安装
--> 解决依赖关系完成依赖关系解决==========================================================================================================================================================Package                            架构                               版本                                       源                                 大小
==========================================================================================================================================================
正在安装:vsftpd                             x86_64                             3.0.2-29.el7_9                             local                             173 k事务概要
==========================================================================================================================================================
安装  1 软件包总下载量:173 k
安装大小:353 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : vsftpd-3.0.2-29.el7_9.x86_64                                                                                                          1/1 验证中      : vsftpd-3.0.2-29.el7_9.x86_64                                                                                                          1/1 已安装:vsftpd.x86_64 0:3.0.2-29.el7_9                                                                                                                          完毕!
[root@localhost ~]# 
[root@localhost ~]# cd /mnt/Packages
[root@localhost Packages]# rpm -qpc vsftpd-3.0.2-29.el7_9.x86_64.rpm //查看rpm安装包内包含的配置文件列表
警告:vsftpd-3.0.2-29.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@localhost Packages]# 
[root@localhost Packages]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers     vsftpd.conf.bak
user_list    vsftpd_conf_migrate.sh
vsftpd.conf
[root@localhost vsftpd]# 

备份

[root@localhost ~]# 
[root@localhost ~]# cd /etc/vsftpd
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak
[root@localhost vsftpd]# 

配置文件 

[root@localhost vsftpd]# 
[root@localhost vsftpd]# vim vsftpd.conf

 

 

[root@localhost vsftpd]# systemctl start vsftpd
[root@localhost vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost vsftpd]# 
[root@localhost vsftpd]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      730/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1580/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1180/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1181/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1560/master         
tcp        0      0 127.0.0.1:6013          0.0.0.0:*               LISTEN      68349/sshd: root@pt 
tcp6       0      0 :::111                  :::*                    LISTEN      730/rpcbind         
tcp6       0      0 :::21                   :::*                    LISTEN      69322/vsftpd        
tcp6       0      0 :::22                   :::*                    LISTEN      1180/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1181/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1560/master         
tcp6       0      0 ::1:6013                :::*                    LISTEN      68349/sshd: root@pt 
[root@localhost vsftpd]# 

验证

打开一台win10

 

 

 

下载文件 

 指定下载位置 

上传文件 

ftp> put youzi.txt

设置匿名用户

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

[root@localhost vsftpd]# useradd cywl
[root@localhost vsftpd]# echo 123456 |passwd --stdin cywl
更改用户 cywl 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost vsftpd]# 
[root@localhost vsftpd]# useradd lty
[root@localhost vsftpd]# echo 123456 |passwd --stdin lty
更改用户 lty 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost vsftpd]# 
[root@localhost vsftpd]# systemctl restart vsftpd  //重启
[root@localhost vsftpd]#

匿名用户登录失败 

非匿名用户登录成功

C:\Users\Lin\Desktop>ftp 20.0.0.20
连接到 20.0.0.20。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(20.0.0.20:(none)): cywl
331 Please specify the password.
密码:
230 Login successful.
ftp> pwd  //查询当前位置
257 "/home/cywl"
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp> put youzi.txt  //上传文件
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 11 字节,用时 0.00秒 11000.00千字节/秒。
ftp>

图形化界面登录

白名单黑名单 

[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# 

[root@localhost vsftpd]# vim user_list
[root@localhost vsftpd]# 

 

白名单 

[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# 

 

 

[root@localhost vsftpd]# vim user_list
[root@localhost vsftpd]# 

 

[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# 

名单内可以登录 

 

名单外不可以登录

  

黑名单 

[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# 

[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# 

 名单内不可以登录

名单内可以登录 

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

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

相关文章

iOS pod库包含MRC类

在我们iOS开发过程中,碰到的大部分文件都是基于ARC内存管理的,但也免不了用到一些三方的MRC的代码,这里介绍三种方法来编写包括MRC文件的.podspec文件。 1).在podspec中指定requires_arc:false,同时指定requires_arc的文件,eg: 这样写的好处是别的项目拉取到你pod源码的时候,不…

后端学习记录~~JavaSE篇(Module08-异常 上 )

总览: Java概述: 思维导图文件在本人个人主页上-----资源模块 资源详情(免费下载):Java学习思维导图异常篇资源-CSDN文库https://download.csdn.net/download/m0_61589682/89238330 整体展示:

Spring IOC(二)

1. Bean的定义与获取 1.1 定义Bean 在Spring 中定义Bean的方式主要有三种&#xff1a; 1、基于XML配置文件的方式&#xff08;了解&#xff09;&#xff1a;通常会在配置文件中使用<bean>标签来定义Bean&#xff0c;并设置Bean的属性、依赖关系等信息。 2、基于注解的方…

spring接入socket.io注意事项

因为前端要求&#xff0c;最后我们采用的socket.io来做我们的消息推送&#xff0c;在联调期间遇到了一些问题&#xff0c;这里记录一下&#xff0c;首先我和前端参考了日常记录-SpringBoot整合netty-socketio和Vue3和SpringBoot集成SocketIO&#xff08;WebSocket&#xff09; …

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.5, 汇编 led.s,第一次点亮LED灯

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

kaggle(4) Regression with an Abalone Dataset 鲍鱼数据集的回归

kaggle&#xff08;4&#xff09; Regression with an Abalone Dataset 鲍鱼数据集的回归 import pandas as pd import numpy as npimport xgboost import lightgbm import optuna import catboostfrom sklearn.model_selection import train_test_split from sklearn.metrics …

GMSSL编译iOS

一、GMSSL-2.x 国密SDK源码下载&#xff0c;对GMSSL库进行编译生成对应的静态库。执行如下命令&#xff1a; cd到SDK源码目录 cd /Users/xxxx/Downloads/GMSSLV2-master查看SDK适用环境 ./config上图中错误解决方法 使用文本编辑器打开SDK目录下Configure、test/build.info、…

Vue.js(过渡)

1.过渡 Vue 在插入、更新或者移除 DOM 时&#xff0c;提供多种不同方式的应用过渡效果。 Vue 提供了内置的过渡封装组件&#xff0c;该组件用于包裹要实现过渡效果的组件。 语法格式 <transition name "nameoftransition"><div></div> </tr…

Android 学习 鸿蒙HarmonyOS 4.0 第二天(项目结构认识)

项目结构认识 和 了解&#xff1a; 工程目录下的结构如下&#xff1a; 首先能看到有两个.开头的文件&#xff0c;分别是.hvigor 和 .idea。这两个文件夹都是与构建有关系的&#xff0c; 如果你开发过安卓app&#xff0c;构建完会生成一个apk安装包&#xff0c;鸿蒙则是生成hap…

【C++风云录】进入语音识别与自然语言处理的世界:探索C++库的功能与应用场景

构建智能语音应用&#xff1a;深入了解C语音识别与自然语言处理库 前言 语音识别和自然语言处理是人工智能领域的重要研究方向&#xff0c;它们在自动语音识别、机器翻译、智能对话等方面有着广泛的应用。在这个领域&#xff0c;有许多优秀的开源和商业的工具和库可供选择&am…

mxnet.gluon.rnn及mxnet.symbol实现LSTM教程

基于mxnet.symbol的基本使用以及模型加载与保存 mxnet基本使用以及模型加载与保存 mxnet.symbolRNN-GRU-LSTM-Bi官网教程 基于mxnet的LSTM实现(mx.rnn.LSTMCellsymbol) 基于mxnet.gluon.rnn的基本使用以及模型加载与保存 LSTM Mxnet Implementation-手写 mxnet.gluon.rnn.LSTM中…

K8s: Helm包管理工具的应用以及项目分环境部署

Helm 概述与安装 1 ) 概述 k8s中官方包管理工具, 官网: https://helm.sh/用 Yaml 管理多个应用同时部署 不需要在不同的yaml中写两遍&#xff0c;执行两遍解决一键部署的问题&#xff0c;联合部署 实现了部署的版本管理 可以实现版本回滚 应用和配置分离 2 &#xff09;安装 …

阿里云RocketMQ消费MQTT消息

业务背景&#xff1a; 项目中涉及的消息队列既有RocketMQ&#xff0c;又有MQTT&#xff0c;均为阿里云提供&#xff08;阿里云有专门的“微消息队列 MQTT 版”模块&#xff0c;但博主公司消息队列的实例都在“消息队列 RocketMQ 版”模块下&#xff0c;只是实例不同&#xff0c…

【Oracle】python调取oracle数据教程

目录 &#xff08;1&#xff09;安装python和相关库 1.python的下载和安装 2.python安装cx_Oracle库和pandas库 3.本机安装instantclient 数据库客户端 先安装instantclient 然后设置环境变量 &#xff08;2&#xff09;准备好连接Oracle数据库地址等五项信息 &#xf…

Java基础(3)String、StringBuffer、StringBuilder

在Java中&#xff0c;字符串处理是日常开发的重要组成部分。主要有三种类型的类用于创建和操作字符串&#xff1a;String、StringBuffer和StringBuilder。虽然这三个类都能够处理字符串&#xff0c;但它们在功能和性能方面存在显著差异。 String String是不可变的&#xff08…

VUE3与Uniapp 五 (v-if、v-show和template的使用)

<template><!-- v-if如果是false&#xff0c;则不会出现在DOM中&#xff0c;不会被渲染&#xff1b;v-show如果为false&#xff0c;则会出现在DOM中&#xff0c;并加载资源&#xff08;如图片&#xff09;&#xff0c;只是CSS隐藏了。 --><view v-if"day1&…

秋招后端开发面试题 - Java多线程(上)

目录 Java多线程前言面试题线程和进程&#xff1f;说说线程有几种创建方式&#xff1f;为什么调用 start() 方法时会执行 run() 方法&#xff0c;那怎么不直接调用 run() 方法&#xff1f;线程有哪些常用的调度方法&#xff1f;线程有几种状态&#xff1f;守护线程了解吗&#…

深入理解汇编中的ZF、OF、SF标志位和条件跳转

本节课在线学习视频&#xff1a;https://pan.quark.cn/s/bbc4781e5336 汇编语言中的程序控制流常依赖于处理器的状态标志来进行决策。在x86架构中&#xff0c;ZF&#xff08;Zero Flag&#xff09;、OF&#xff08;Overflow Flag&#xff09;和SF&#xff08;Sign Flag&#x…

Linux(Centos 7)环境下安装wget,并且更换阿里云镜像

Linux(Centos 7) Minimal 安装后&#xff0c;由于没有预装wget&#xff0c;在使用wget命令去下载安装相关应用时&#xff0c;提示&#xff1a;“wget: command not found” 先在Linux服务器窗口中&#xff0c;输入如下命令&#xff0c;检查Linux服务器有没有安装过wget。 rpm -…

Django信号(Signals)使用案例:自动化工作流程

Django信号&#xff08;Signals&#xff09;是一种可以让应用程序组件之间进行解耦的机制。它允许在特定事件发生时发送信号&#xff0c;其他组件可以监听这些信号并做出相应的处理。 在自动化工作流程中&#xff0c;Django信号可以用来触发自动化任务或流程。以下是一个使用D…