软件:ftp

文件传输协议(File Transfer Protocol, FTP)工作在OSI模型的第七层和 TCP模型的第四层应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。其Home目录(/srv/ftp/)就是连接到这个服务上的用户可使用的树的根。默认配置在 /etc/vsftpd.conf 中,需要一些更改,匿名王文需要启用anonymous_enable=YES并且对本地用户的只读访问需要被禁止local_enable=NO。默认端口21/TCP

功能

文件上传和下载:允许用户从远程服务器下载文件或将文件上传到远程服务器。

目录浏览和管理:支持用户浏览远程服务器上的目录结构,创建、删除和重命名文件或目录。

权限控制:通过用户名和密码认证,可以对不同用户设置不同的访问权限(如只读、读写等)。

原理

FTP使用客户端-服务器模型,其中客户端发起请求,服务器响应这些请求。FTP通常使用两个通道来传输数据:

控制连接(端口21):用于发送命令和接收服务器响应。此连接在整个会话期间保持打开状态。

数据连接(端口20或其他随机端口):用于实际的数据传输。根据传输模式(主动模式或被动模式),数据连接的建立方式有所不同。

主动模式:

客户端向服务器发送PORT命令,告知服务器其监听的IP地址和端口号。

服务器主动连接到客户端指定的端口以建立数据连接。

这种模式在某些防火墙配置下可能会遇到问题,因为防火墙可能会阻止来自外部的入站连接。

被动模式:

客户端发送PASV命令,服务器返回一个IP地址和端口号供客户端连接。

客户端主动连接到服务器提供的端口以建立数据连接。

这种模式更适用于有严格防火墙规则的环境,因为它避免了服务器主动连接客户端的问题。

组件

vsftpd:非常安全的FTP守护进程(Very Secure FTP Daemon),是Linux系统上广泛使用的FTP服务器软件。

FileZilla:跨平台的开源FTP/SFTP/FTPS客户端,具有图形界面,易于使用。

ls 列出目录内容

cd 更改目录

get 下载文件

put 上传文件

mget 和 mput 分别用于批量下载和上传文件

部署

#安装ftp服务器
sudo apt-get -y install vsftpd

#修改ftp配置
vi /etc/vsftpd.conf
#28行
local_enable=YES
#31行
write_enable=YES

#重启ftp
systemctl restart vsftpd
  • 软件/ftp.txt
  • 最后更改: 2025/09/05 00:04
  • admin