【Linux网络】FTP服务

目录

一、FTP简介

1.FTP-文件传输协议

2.FTP的两种模式

二、安装配置FTP

1.安装环境

2.对文件的操作

3.切换目录

4.设置匿名用户

5.图形化界面登录

6.白名单与黑名单

重点与难点


一、FTP简介

1.FTP-文件传输协议

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

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

2.FTP的两种模式

主动模式:服务器主动发起数据连接

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输

被动模式:服务器被动等待数据连接

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输

 

二、安装配置FTP

1.安装环境

关闭防火墙和核心防护

[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 ~]# vi /etc/selinux/config
[root@localhost ~]# 

安装svftpd

备份vsftpd的配置文件

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

修改配置文件

重启生效

[root@localhost vsftpd]# systemctl restart 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]# 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      719/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1534/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1210/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1213/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1569/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      2954/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      719/rpcbind         
tcp6       0      0 :::21                   :::*                    LISTEN      3741/vsftpd         
tcp6       0      0 :::22                   :::*                    LISTEN      1210/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1213/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1569/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      2954/sshd: root@pts 
[root@localhost vsftpd]# 

以win10为例,设置网络为net模式

测试连通性,并且连接操作请求

2.对文件的操作

ftp> pwd            #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls                #查看当前目录
ftp> cd pub            #切换到pub 目录
ftp> get 文件名        #下载文件到当前Windows本地目录
ftp> put 文件名        #上传文件到ftp目录
ftp> quit            #退出

创建文件并查看

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# pwd
/var/ftp
[root@localhost ftp]# mkdir xy101
[root@localhost ftp]# ls
pub  xy101
[root@localhost ftp]# 

下载文件并查看

[root@localhost ftp]# echo '12345' > 12345.txt
[root@localhost ftp]# ls
12345.txt  pub  xy101
[root@localhost ftp]# 

3.切换目录

切换路径下载文件,以桌面为例

4.设置匿名用户

关闭匿名用户

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

 匿名用户登录失败

 非匿名用户登录成功

 

5.图形化界面登录

6.白名单与黑名单

设置用户白名单,添加用户登录访问,登录成功

设置用户黑名单,用户登录访问,登录失败

重点与难点

1. ftp的服务中有两个端口,一个20用于数据连接,一个21用户ftp传输控制指令。

2. ftp运用中可以又匿名登录和本地用户登录。匿名登录,没有密码限制,存在安全风险比较高。本地用户登录,通过修改vsftp.conf 限制其切换目录。

3.白名单是只有名单上的用户才可以进行访问,而黑名单是名单上的用户被拒绝访问。

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

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

相关文章

css中设置元素大小的属性block-size

block-size 是 CSS 中的一个属性,它用于设置元素的块级尺寸(即元素的高度)。这个属性是 height 和 max-height 的逻辑组合,允许你同时设置元素的最小和最大高度。 这些属性旨在让布局不再依赖于传统的物理方向(如上下左…

如何调节电脑屏幕亮度?让你的眼睛更舒适!

电脑屏幕亮度的调节对于我们的视力保护和使用舒适度至关重要。不同的环境和使用习惯可能需要不同的亮度设置。可是如何调节电脑屏幕亮度呢?本文将介绍三种不同的电脑屏幕亮度调节方法,帮助您轻松调节电脑屏幕亮度,以满足您的需求。 方法1&…

hbase 集成 phoenix 实现 sql 化

1. 依赖 hbase > hbase 集群搭建 2. 下载安装包 点击下载 ps:该网页在内网可能打不开,遇到该情况有条件的可以打开 VPN 在下载 3. 上传解压 使用工具将安装包上传的服务器上 笔者这里选择 上传到 /opt/software 目录,解压到 /opt/mo…

spring security登录认证授权

spring security登录认证授权 是什么 Spring Security 主要实现了Authentication(认证,解决who are you? ) 和 Access Control(访问控制,也就是what are you allowed to do?,也称为Authorizat…

C语言扫雷游戏完整实现(下)

文章目录 前言一、排雷函数菜单二、排雷函数菜单的实现三、拓展棋盘功能四、源码1. test.c源文件2. game.h头文件3. game.c源文件 总结 前言 C语言实现扫雷游戏的排雷菜单,以及功能的实现,拓展棋盘功能,以及源码等。 上半部分的链接地址: C语…

python 笔记ast.literal_eval

1 介绍 ast.literal_eval 是 Python 标准库 ast 模块中的一个函数,用于安全地评估表示 Python 字面量或容器(如列表、字典、元组、集合)的字符串 import ast # 解析并执行一个数字表达式 num ast.literal_eval("3.14") prin…

新媒体运营-----短视频运营-----PR视频剪辑----软件基础

新媒体运营-----短视频运营-----PR视频剪辑-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/138079659 文章目录 1.1 PR软件重置与初始化设置1.2 新建项目及序列设置1.3 PR工作区的管理方法1.4 导入4K超高清视频并与ME配合工作1…

远程监控与控制的融合:吊车远程视频监控与远程开机的实现

随着信息技术的飞速发展,远程控制技术已经广泛应用于各个领域,包括工业、医疗、教育等。吊车远程视频监控作为远程控制的一种具体应用,不仅实现了对吊车操作的实时监控,还通过与远程开机功能的结合,进一步提升了远程控…

ctfshow web41-web50

web41 代码审计 <?php if(isset($_POST[c])){$c $_POST[c]; if(!preg_match(/[0-9]|[a-z]|\^|\|\~|\$|\[|\]|\{|\}|\&|\-/i, $c)){eval("echo($c);");} }else{highlight_file(__FILE__); } ?> 过滤了&#xff1a;[0-9] [a-z] ^ ~ $ [ ] { } & -…

Python自动化系统6

元素的特征:根据页面设计规则&#xff0c;有些特征是唯一 开发遵循了这个规则 id :类比身份证号―仅限于当前页面 username username 注意:如果id 不是固定的话&#xff0c;就不能使用来定位! xpath: 1、绝对路径&#xff1a;/html/body/div/div/div[1]/a/b --根节点&#xff…

初始Maven

1.背景 问题引入&#xff1a;为什么要使用 Maven&#xff1f; 1.1 添加第三方 jar 包 在 JavaEE 开发领域&#xff0c;有大量的第三方框架和工具可以供我们使用。使用这些 jar 包最简单的方法就是复制粘贴到 WEB-INF 目录中的 lib 目录下。但是会导致每次创建一个新工程就需要将…

基于python+django+mysql农业生产可视化系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

数据结构系列-堆排序当中的T-TOK问题

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 之前我们讲到了堆排序的实现逻辑&#xff0c;那么接下来我们重点关注的就是其中的T-TOK问题 T-TOK说简单点&#xff0c;就是说&#xff0c;假如有10000个数据&#xff08;随机的…

Vue3后台管理系统推荐

目录 项目概述 &#x1f35f; 项目展示 功能特点 &#x1f957; 结语 &#x1f4a8; 项目概述 &#x1f35f; 基于Vue 3框架与Element-Plus UI组件库技术精心构建的后端管理模板。该模板系统已成功实现一个基础的权限管理模块&#xff0c;宗旨在于为追求高效二次开发的开发…

hsql数据库(HyperSQL )(简单了解一下)

文章目录 一、HyperSQL &#xff08;HSQLDB&#xff09;1、HSQLDB是什么2、安装事务提一嘴特点看官网Datagrip连接HSQLDBMaven地址使用场景 参考文章 一、HyperSQL &#xff08;HSQLDB&#xff09; 1、HSQLDB是什么 HSQLDB (Hyper SQL Database)是一个用Java编写的关系数据库管…

SpringBoot---------整合Mybatisplus

快速入门 第一步&#xff1a;导入依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version></dependency> 第二步&#xff1a;编写mapper…

【C++题解】1632. 需要几辆车

问题&#xff1a;1632. 需要几辆车 类型&#xff1a;分支 题目描述&#xff1a; 学校有 n 位同学要外出旅游&#xff0c;一辆大巴车可以坐 30 人&#xff0c;请问需要几辆大巴车&#xff1f; 输入&#xff1a; 一个整数 n&#xff0c;代表同学的总人数。 输出&#xff1a;…

明日方舟游戏助手:一键完成日常任务 | 开源日报 No.233

MaaAssistantArknights/MaaAssistantArknights Stars: 11.6k License: AGPL-3.0 MaaAssistantArknights 是一款《明日方舟》游戏的小助手&#xff0c;基于图像识别技术&#xff0c;支持一键完成全部日常任务。 刷理智、掉落识别及上传企鹅物流智能基建换班、自动计算干员效率…

STM32 串口打印乱码(Cubemx)

STM32 串口打印乱码&#xff08;Cubemx&#xff09; 时钟配置错误&#xff0c;CubeMX默认的外部晶振是25MHz&#xff0c;而板载的晶振为8MHzSTM32F407修改程序将外部25M晶振修改为8M&#xff08;标准库、HAL库&#xff09; 核心问题 芯片型号与晶振配置&#xff1a;使用的ST…

网络安全-Diffie Hellman密钥协商

密钥协商是保密通信双方&#xff08;或更多方&#xff09;通过公开信道来共同形成密钥的过程。一个密钥协商方案中&#xff0c;密钥的值是某个函数值&#xff0c;其输入量由两个成员&#xff08;或更多方&#xff09;来提供。密钥协商的记过是参与协商的双方&#xff08;或更多…