Skip to content

22.1 文件传输协议(FTP)概述

文件传输协议(FTP)为用户提供了简便的文件上传与下载功能。

22.1.1 概述

FTP(File Transfer Protocol,文件传输协议)是 TCP/IP 协议栈中最早的应用层协议之一,用于网络文件传输。

在 FreeBSD 中搭建 FTP 服务器,可在局域网或互联网环境中快速传输与共享文件。

本节介绍三种常用的 FTP 服务器软件:

软件特点适用场景和人群
Pure-FTPd类 BSD 许可证授权、安全优先、支持多种操作系统、FTP 协议规范实现较为完整为 ISP 和托管服务提供高度灵活性,适用于新手
ProFTPDGPLv2 许可证授权、支持多种操作系统、单一主配置文件、可扩展性强适合熟悉 Apache HTTP Server 的用户(语法类似)
vsftpdGPLv2 许可证授权、支持 IPv6 和 SSL 加密、支持虚拟用户、虚拟 IP、细粒度用户与 IP 控制、带宽限制面向生产环境

22.1.2 FTP 协议的安全性

标准 FTP 协议的传输过程不安全:密码与数据均以明文发送,默认部署时不加密。

或许完全淘汰 FTP 协议才是唯一的解决方案。

注意

运行匿名 FTP 服务器可能存在潜在风险。尤其应审慎评估是否允许匿名用户上传文件。FTP 站点可能成为未经授权的商业软件交易的场所,甚至可能引发更严重的后果。若需匿名 FTP 上传,请确保权限设置正确,确保在管理员审查文件之前,其他匿名用户无法读取。

22.1.3 FTP 客户端使用示例

使用 telnet 测试 FTP 服务:

sh
# telnet localhost 21
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 FTP Server ready
quit
221 Goodbye.

上述命令用于测试本地主机 FTP 服务的端口 21 是否可用。

使用 ftp 命令可快速连接到 FTP 服务器。其基本用法如下:

sh
ftp [选项] [IP 地址]

FTP 命令:

sh
account [密码]  提交补充密码
put              上传
bell             在文件传送完后发出提示音
dir/ls           显示当前目录中的文件及文件夹
cd               切换目录
delete           删除文件
features         显示该服务器支持的功能
get 远程文件     下载服务器上的远程文件
bye              结束与服务器的会话

操作示例:

powershell
PS C:\Users\ykla> ftp 192.168.179.150	# 使用 FTP 客户端连接指定 FTP 服务器
连接到 192.168.179.150
220 Welcome to blah FTP service.
200 Always in UTF8 mode.
用户(192.168.179.150:(none)): ftptest
331 Please specify the password.
密码:

230 Login successful.
ftp> ls	# 列出当前 FTP 目录下的文件和子目录
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
FreeBSD完全攻略QA版 (冯宝坤,陈子鸿编著, 冯宝坤, 陈子鸿编著, 冯宝坤, 陈子鸿).pdf
FreeBSD技术内幕 ((美) Michael Urban,(美)Brian Tiemann著 智慧东方工作室译).pdf
哲学史期末.docx
马克思主义哲学原理.doc
226 Directory send OK.
ftp: 收到 288 字节,用时 0.00秒 96.00千字节/秒。
ftp> delete 哲学史期末.docx
250 Delete operation successful.
ftp> dir	# 显示当前 FTP 目录的详细文件列表,包括权限、大小和修改时间
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1003     14       147170778 Mar 06 15:39 FreeBSD完全攻略QA版 (冯宝坤,陈子鸿编著, 冯宝坤, 陈子鸿编著, 冯宝坤, 陈子鸿).pdf
-rw-------    1 1003     14       47037557 Mar 06 15:39 FreeBSD技术内幕 ((美) Michael Urban,(美)Brian Tiemann著 智慧东方工作室译).pdf
-rw-------    1 1003     14         591146 Oct 20 11:28 马克思主义哲学原理.doc
226 Directory send OK.
ftp: 收到 435 字节,用时 0.01秒 54.38千字节/秒。
ftp> get 马克思主义哲学原理.doc
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 马克思主义哲学原理.doc (591146 bytes).
226 Transfer complete.
ftp: 收到 591146 字节,用时 0.01秒 42224.71千字节/秒。
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
FreeBSD完全攻略QA版 (冯宝坤,陈子鸿编著, 冯宝坤, 陈子鸿编著, 冯宝坤, 陈子鸿).pdf
FreeBSD技术内幕 ((美) Michael Urban,(美)Brian Tiemann著 智慧东方工作室译).pdf
马克思主义哲学原理.doc
226 Directory send OK.
ftp: 收到 266 字节,用时 0.00秒 66.50千字节/秒。
ftp> lcd
目前的本地目录 C:\Users\ykla。
ftp> put UOS使用打印机.pdf	# 上传本地文件到 FTP 服务器
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 1269989 字节,用时 0.04秒 36285.40千字节/秒。
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1003     14       147170778 Mar 06 15:39 FreeBSD完全攻略QA版 (冯宝坤,陈子鸿编著, 冯宝坤, 陈子鸿编著, 冯宝坤, 陈子鸿).pdf
-rw-------    1 1003     14       47037557 Mar 06 15:39 FreeBSD技术内幕 ((美) Michael Urban,(美)Brian Tiemann著 智慧东方工作室译).pdf
-rw-------    1 1003     14        1269989 Mar 27 15:13 UOS使用打印机.pdf
-rw-------    1 1003     14         591146 Oct 20 11:28 马克思主义哲学原理.doc
226 Directory send OK.
ftp: 收到 515 字节,用时 0.01秒 46.82千字节/秒。
ftp> bye	# 断开 FTP 连接并退出客户端
221 Goodbye.

FTP 默认下载路径是用户主目录。