Linux网络-文件传输协议之FTP服务(附带命令及截图)

目录

一.FTP简介

二.FTP的数据模式

1.主动模式

2.被动模式

3.两种模式比较

三.安装配置vsftpd

1.安装vsftpd

1.1.安装前关闭防火墙

1.2.安装vsftpd

1.3.查看

1.4.备份

2.配置

3.重启后生效

四.相关实验

1.以win为例

1.1.设置并测试测试连通性

1.2.在终端里创建目录

​1.3.在虚拟机win里查看

1.4.在终端里创建文件

1.5.更改路径并下载

2.设置匿名用户(win为例)

2.1.关闭匿名用户

2.2.创建匿名用户

2.3.匿名用户无法登录

2.4.非匿名用户可以登录

3.设置白名单黑名单

3.1.进入设置

3.2.设置白名单

3.3.添加用户

3.4.登录成功

3.5.设置黑名单

3.6.登录失败


一.FTP简介

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet

上的控制文件的双向传输。同时,它也是一个应用程序(Application)基于不同的操作系统有不同

的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件

  • FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令

二.FTP的数据模式

1.主动模式

  • 服务器主动发起数据连接

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送

FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端

客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口

(通常是20)来连接客户端指定的端口N+1,进行数据传输

2.被动模式

  • 服务器被动等待数据连接

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用

户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于

被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面

会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户

端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输

3.两种模式比较

  • 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口)
  • 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)
  • 主动模式需要客户端必须开放端口给FTP服务端,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难
  • 被动模式需要服务器端开放端口给客户端连接就行了

三.安装配置vsftpd

1.安装vsftpd

1.1.安装前关闭防火墙

systemctl stop firewalldsystemctl disable firewalldsetenforce 0vim /etc/selinux/config

1.2.安装vsftpd

rpm -qc vsftpdyum install -y vsftpd

1.3.查看

cd /etc/vsftpdls

1.4.备份

cp vsftpd.conf{,.bak}

2.配置

vim /etc/vsftpd/vsftpd.conf

3.重启后生效

systemctl restart vsftpdsystemctl enable vsftpdnetstat -lntp

四.相关实验

1.以win为例

1.1.设置并测试测试连通性

1.2.在终端里创建目录

cd /var/ftplspwdmkdir xx01ls


1.3.在虚拟机win里查看

1.4.在终端里创建文件

echo 'zx like xuexi' > zx.txtls

1.5.更改路径并下载

2.设置匿名用户(win为例)

2.1.关闭匿名用户

2.2.创建匿名用户

useradd xxecho 123456 | passwd --stdin xxuseradd xyecho 123456 | passwd --stdin xysystemctl restart vsftpd

2.3.匿名用户无法登录

2.4.非匿名用户可以登录

3.设置白名单黑名单

3.1.进入设置

vim /etc/vsftpd/vsftpd.conf

3.2.设置白名单

3.3.添加用户

vim user_list

3.4.登录成功

3.5.设置黑名单

3.6.登录失败

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

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

相关文章

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…

ubuntu20.04安装RabbitMQ 3.11.19+Erlang 25.3.1

1、检查RabbitMQ、Erlang版本 Erlang Version Requirements | RabbitMQ 2、ubuntu20.04对应的是 focal 3、下载安装Erlang 下载地址:http://packages.erlang-solutions.com/erlang/debian/pool/ sudo dpkg -i esl-erlang_25.3-1~ubuntu~focal_amd64.deb sudo apt…

C++ 如何实现原子性

1.操作系统如何实现原子性 在单处理器,单核,运行多线程的情况下,我们不使用线程同步工具, 我们会出现,线程之间会互相抢夺,临界区的资源,造成数据不符合我们预期的结果, 后面再说解决办法,那么我们怎么帮助实现原子性 1 屏蔽中断,不让线程之间切换,让它完成再切换 2 底层硬…

栈与递归的关系

定义 特点 函数调用过程 具体实现过程与状态 小结 拓展 递归的分解 典型案例

第三弹:JavaScript 学习记录

目录 1.1. 了解 1.1.1. 为什么学习JavaScript 1.1.2. JavaScript简介 1.1.3. JavaScript / ECMAScript 1.1.4. JavaScript使用方式 1.1.5. JavaScript输出 1.1.6. JavaScript语句 1.1.7. JavaScript注释 1.1.8. JavaScript变量及常量 1.1.9. JavaScript数据类型 1.1.…

C++实战演练---负载均衡在线oj项目预热

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 前言 学习准备了快一年时间,心心念念的实战演练终于可以开始了,话不多说,直接进入主题…

React、React Router 和 Redux 常用Hooks 总结,提升您的开发效率!

Hooks 是 React 16.8 中引入的一种新特性,它使得函数组件可以使用 state 和其他 React 特性,从而大大提高了函数组件的灵活性和功能性。下面分别总结React、React Router 、Redux中常用的Hooks。 常用Hooks速记 React Hooks useState:用于…

ssm088基于JAVA的汽车售票网站abo+vue

汽车售票网站的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对汽车售票信息管理混乱,出错率…

基于stm32的USB模拟UART的尝试F429

目录 基于stm32的USB模拟UART的尝试F429实验目的场景使用原理图USBX 组件移植USBX实现虚拟串口配置USB移植USBX源码工程中添加对应源码修改usb_otg.c创建 USBX 任务添加使用串口的代码上机现象本文中使用的测试工程 基于stm32的USB模拟UART的尝试F429 本文目标:基于…

uniapp-vue3-wechat:基于uniapp+vue3仿微信app聊天实例(H5+小程序+App端)

uni-vue3-wchat:基于uni-appvue3pinia2高仿微信app聊天模板。 原创基于最新跨端技术uni-appvue3.xpinia2vite4uv-ui构建三端仿微信app界面聊天实例。实现编辑框多行消息/emoj混合、长按触摸式仿微信语音面板、图片/视频预览、红包/朋友圈等功能。支持编译到H5小程序…

数据结构与算法-抽象数据类型ADT系列

以前在学习数据结构的时候做实验,老师要求用ADT抽象数据类型来写这些实现代码。后面也要复习数据结构,在这里就先放下链接。不过以前学习的时候使用的编程语言是C,里面会用到很多指针。现在编代码过程大多数时候都是用Java。不过思路应该还是…

keytool,openssl的使用

写在前面 在生成公钥私钥,配置https时经常需要用到keytool,openssl工具,本文就一起看下其是如何使用的。 keytool是jdk自带的工具,不需要额外下载,但openssl需要额外下载 。 1:使用keytool生成jks私钥文件…

WEB攻防-IIS中间件PUT漏洞

IIS6.0 server在web服务扩展中开启了WebDAV(Web-based Distributed Authoring and Versioning)。WebDAV是一种HTTP1.1的扩展协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,如PUT&#xff0c…

自动驾驶横向控制算法

本文内容来源是B站——忠厚老实的老王,侵删。 三个坐标系和一些有关的物理量 使用 frenet坐标系可以实现将车辆纵向控制和横向控制解耦,将其分开控制。使用右手系来进行学习。 一些有关物理量的基本概念: 运动学方程 建立微分方程 主要是弄…

Linux进程——进程的概念(PCB的理解)

前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux的下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好的理解进程的含义。 Linux进程学习基…

Hadoop3:集群搭建及常用命令与shell脚本整理(入门篇,从零开始搭建)

一、集群环境说明 1、用VMware安装3台Centos7.9虚拟机 2、虚拟机配置:2C,2G内存,50G存储 3、集群架构 从表格中,可以看出,Hadoop集群,主要有2部分,一个是HDFS服务,一个是YARN服务 …

记一次内网渗透

环境搭建: 排错: 在搭建过程中发现报错,删除这部分内容就成功解决。 信息收集 端口扫描 使用namp -sn 探测存活IP 接着去查看服务 web服务 然后发现80端口。访问 发现有管理员接口,并泄露了默认用户名和密码。 弱口令登录 …

vue中配置 测试、准生产、生产环境

在package.json,scripts中配置 "dev": "vue-cli-service serve --open --mode dev",在项目根目录下配置 新建 .env.dev 和.env.development文件 //类似于title NODE_ENV "serve" //各环境API数据接口请求地址 VUE_APP_BASE_API "http:…

软件测试笔记_习题_面经

软件测试------按测试阶段划分有几个阶段? 单元测试、集成测试、系统测试、验收测试 软件测试------按是否查看源代码划分有几种测试方法? 黑盒、白盒、灰盒 软件测试------按是否运行划分有几种测试方法? 静态测试、动态测试 软件测试------按是否自动化划分有几种测试方…

在远程服务器上安装anaconda以及配置pytorch虚拟环境

目录 第一步:官网或者清华源下载Anaconda。 第二步:创建虚拟环境。 第三步:在服务器终端输入nvidia-smi查看服务器信息。 第四步:在pytorch官网找到对应版本cuda的命令。 第一步:官网或者清华源下载Anaconda。 官网…