ftp(其一)

ftp的简介

网络文件共享服务主流的主要有三种,分别是ftp、nfs、samba。

FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。

FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在FTP的使用当中,用户经常遇到两种概念:下载和上传

ftp的连接类型

ftp有2种数据连接模式:命令连接和数据连接

  • 命令连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录为止
  • 数据连接:是指数据传输,按需创建及关闭的连接

其中数据连接需要关注的有2点,一是数据传输格式,二是数据传输模式

数据传输格式有以下两种:

  • 文件传输
  • 二进制传输

数据传输模式也有2种:

  • 主动模式:由服务器端创建数据连接
  • 被动模式:由客户端创建数据连接

两种传输模式的建立过程:

传输模式 建立过程
主动模式 命令连接:
Client(1025)–> Server(21)客户端以一个随机端口(大于1023)来连服务器端的21号端口
数据连接:
Server(20/tcp) --> Client(1025+1)服务器端以自己的20号端口去连客户端创建命令连接时使用的随机端口+1的端口号
被动模式 命令连接:
Client(1110) --> Server(21)客户端以一个随机端口来连成服务器端的21号端口
数据连接:
Client(1110+1) --> Server(随机端口)客户端以创建命令连接的端口+1的端口号去连服务器端通过命令连接告知自己的一个随机端口号来创建数据连接

ftp的用户主要有三种:

  • 虚拟用户:仅用于访问某特定服务中的资源
  • 系统用户:可以登录系统的真实用户
  • 匿名用户

vsftp配置

///安装vsftp
[root@server ~]# yum -y install vsftpd
///匿名用户之间开启即可登录
[root@server ~]# systemctl start vsftpd
///关闭防火墙
[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
///测试
C:\Users\石昊>ftp 192.168.194.129
连接到 192.168.194.129。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.194.129:(none)): ftp
331 Please specify the password.
密码:
230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
226 Directory send OK.
ftp: 收到 8 字节,用时 0.00秒 8000.00千字节/秒。
ftp> pwd
257 "/"
///用户登录则需要创建用户再用系统用户登录
[root@server ~]# useradd tom
[root@server ~]# echo '123456' | passwd --stdin tom
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。
///测试
C:\Users\石昊>ftp 192.168.194.129
连接到 192.168.194.129。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.194.129:(none)): tom
331 Please specify the password.
密码:
230 Login successful.
ftp> pwd
257 "/home/tom"
ftp>
///这样登录我们发现用户在自己的家目录权限太大,不易管理,所有我们可以将用户锁定在一个指定目录中
///首先创建一个给登录用户的存放资料的目录
[root@server ~]# mkdir /opt/ziliao
///修改配置文件
[root@server ~]# vim /etc/vsftpd/vsftpd.conf 
[root@server ~]# grep -C1 '^chroot' /etc/vsftpd/vsftpd.conf 
local_root=/opt/ziliao
chroot_list_enable=YES
allow_writeable_chroot=YES
///重启服务
[root@server ~]# systemctl restart vsftpd
///测试
C:\Users\石昊>ftp 192.168.194.129
连接到 192.168.194.129。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.194.129:(none)): tom
331 Please specify the password.
密码:
230 Login successful.
ftp> pwd
257 "/"
ftp> cd ..
250 Directory successfully changed.
ftp> pwd
257 "/"
ftp> cd /opt/
550 Failed to change directory.

你可能感兴趣的:(linux,ftp)