配置 FTP 服务器全攻略
1. 理解 FTP
FTP(文件传输协议)是一种古老的网络文件共享协议,虽然如今有更安全的协议,但它仍常用于在互联网上免费提供文件。FTP 采用客户端/服务器模型:
- 服务器守护进程在 TCP 端口 21 监听来自客户端的请求。
- 客户端提供用户名和密码进行身份验证,若服务器接受,客户端可遍历文件系统、列出文件和目录,并进行文件下载(有时也可上传)。
不过,FTP 存在安全隐患,因为客户端与服务器之间传输的所有数据都是明文的。所以,它不适合用于私密文件共享,若需要私密、加密的文件传输,可使用 SSH 命令,如 sftp、scp 或 rsync。但如果是共享公共文档、开源软件仓库或其他公开数据,FTP 是个不错的选择。
在 Linux 中,用户通过标准 Linux 用户账户和密码进行身份验证。此外,还有一个特殊的非认证账户“anonymous”,任何人都可访问,无需有效密码。
身份验证阶段(控制端口 TCP 21)完成后,客户端和服务器会建立第二个连接。FTP 支持主动和被动两种连接类型:
- 主动连接:服务器从 TCP 端口 20 向客户端 1023 以上的随机端口发送数据。
- 被动连接:客户端请求被动连接,并向服务器请求一个随机端口。
许多浏览器支持被动 FTP 模式,以避免防火墙阻止主动模式下 FTP 服务器可能使用的数据端口。支持被动模式需要在服务器防火墙进行额外配置,以允许对服务器 1023 以上端口的随机连接。
连接建立后,客户端的当前目录会被确定:
- 匿名用户:在 Fedora 或 RHEL 中,家目录为 /var/ftp;