一,认识FTP协议
FTP就是文件传输协议。用于互联网双向传输,控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上的空间。
FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。
支持的连接方式:
FTP支持Standard (PORT方式,主动方式),Passive (PASV,被动方式)两种连接模式,连接的流程大致如下:
1、FTP客户端发起FTP会话,与FTP服务器建立相应的连接,在会话期间,FTP会建立控制信息进程与数据进程两个连接。
2、控制进程连接的用途: 用于传输FTP内部命令以及命令的响应等控制信息,无法进行数据传输。
3、数据进程连接的用途: 用于客户端与服务端之间数据的传输,它是全双工的,可以支持双向数据传输,当数据传输完成后,它就会撤销然后回到FTP会话状态,直到控制连接进程也取消,退出整个FTP会话。
PORT模式:
FTP客户端会与服务端的TCP 21端口创建连接(控制连接),用于发送命令,当客户端需要接收数据时,会通过这个连接向服务端发送PORT命名,PORT命令中包含了会使用什么端口来接收服务端传输的数据,此时,服务端会通过TCP 20端口跟FTP客户端创建连接(数据连接)完成数据传输。
Passive模式:
FTP客户端会与服务端的TCP 21端口创建连接(控制连接),用于发送命令,当客户端需要接收数据时,会通过这个连接向服务端发送Pasv命名,服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。
二. FTP的主要作用
文件上传和下载:FTP允许用户将文件从本地计算机上传到远程服务器,或从远程服务器下载到本地计算机。这对于在不同计算机之间共享文件非常有用。
远程文件管理:通过FTP,用户可以远程管理服务器上的文件。可以创建、删除、重命名、移动和复制文件和文件夹,以及设置文件权限和属性。
网站维护:FTP常用于网站维护,允许网站管理员通过FTP客户端上传、更新和删除网站的文件。这包括网页文件、图像、脚本和其他相关文件。
数据备份和恢复:FTP可以用作数据备份和恢复的工具。通过将重要数据上传到远程服务器,可以确保数据的安全性和可靠性。
文件共享:FTP还可以用于文件共享。用户可以创建FTP服务器,并授权其他用户访问特定的文件或目录。这对于团队合作、文件共享和远程访问非常有用。
远程备份:FTP可以用于将重要文件备份到远程服务器。通过将文件上传到远程服务器,可以确保文件的安全性和可靠性,以防止本地计算机出现故障或数据丢失。
三,虚拟机安装FTP
[root@1 ~]# yum -y install vsftpd #yum安装vsftpd
[root@1 ~]# cd /etc/vsftpd #切换到vsftpd目录
[root@1 vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@1 vsftpd]# systemctl start vsftpd #开启ftpd服务
[root@1 vsftpd]# systemctl stop firewalld #关闭防火墙
[root@1 vsftpd]# setenforce 0 #关闭selinux
[root@1 vsftpd]# echo "this is test" > /var/ftp/test.txt #添加一个文本文件
[root@1 vsftpd]# ls /var/ftp
pub test.txt
四、物理主机安装FTP
选择程序
选择启用或者关闭Windows功能
勾选FTP服务以及iis管理控制台
再进入系统和安全选择Windows工具点击(IIS)管理器
添加FTP站点
开启FTP服务防火墙允许
在命令控制符中连接虚拟机,并且完成文件的上传与下载
C:\Users\86150>ftp 192.168.2.3
连接到 192.168.2.3。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.2.3:(none)): te #虚拟机新建的用户
331 Please specify the password.
密码:
230 Login successful.
ftp> ls -a
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
test.txt #创建的文本文件
226 Directory send OK.
ftp: 收到 25 字节,用时 0.00秒 12.50千字节/秒。
ftp> get test.txt #获取即本机下载文本文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test.txt (13 bytes).
226 Transfer complete.
ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。
ftp> put test.txt #上传文本文件
200 PORT command successful. Consider using PASV.
553 Could not create file.
五、总结
FTP(File Transfer Protocol)是一种用于在计算机之间传输文件的标准网络协议。以下是关于在Linux系统上进行FTP配置的总结:
安装FTP服务器:在Linux系统中,我们可以使用vsftpd、ProFTPD等FTP服务器软件来支持FTP服务。我们需要在Linux系统上使用yum等软件包管理器安装FTP服务器软件。
配置FTP服务器:安装完成FTP服务器后,我们需要配置FTP服务器来支持用户访问和文件传输。在FTP服务器中,我们可以指定FTP的根目录、管理用户和分配权限等。可以在/etc/vsftpd/vsftpd.conf文件中配置FTP服务器。
添加FTP用户:我们需要为FTP服务器添加用户,从而允许用户上传和下载文件。在Linux系统中,我们可以使用useradd和passwd命令来创建FTP用户,并通过chroot命令指定FTP的根目录。
防火墙配置:在Linux系统中,我们通常需要打开FTP服务器所需的端口以允许传输。我们可以在Linux系统中的防火墙中配置相应的规则,以确保FTP客户端和服务器之间的正常通信。
测试FTP服务:在设置和配置FTP服务器后,我们需要测试是否正常工作。我们可以使用FTP客户端工具(如FileZilla)连接到FTP服务器,并使用FTP客户端进行文件上传和下载等操作,以测试配置是否正常运行。