Linux FTP 命令安装与使用指南
在Linux系统中,FTP(File Transfer Protocol,文件传输协议)是一种广泛使用的网络协议,用于在客户端和服务器之间传输文件,尽管FTP因其明文传输的安全性逐渐被更安全的协议(如SFTP)取代,但在某些场景下,它仍然是快速、便捷的文件传输选择,本文将详细介绍如何在Linux系统中安装FTP服务器和客户端,以及常用的FTP命令操作,帮助用户快速上手FTP的使用。

FTP服务器的安装与配置
在Linux中,常用的FTP服务器软件包括vsftpd(Very Secure FTP Daemon)、ProFTPD和Pure-FTPD等,vsftpd因其安全性高、配置简单而被广泛使用,以下以vsftpd为例,介绍FTP服务器的安装与配置。
-
安装vsftpd
在基于Debian/Ubuntu的系统中,可以使用以下命令安装vsftpd:sudo apt update sudo apt install vsftpd
在基于RHEL/CentOS的系统中,可以使用yum或dnf命令安装:
sudo yum install vsftpd # CentOS 7及以下 sudo dnf install vsftpd # CentOS 8及以上
-
启动并设置开机自启
安装完成后,启动vsftpd服务并设置为开机自启:sudo systemctl start vsftpd sudo systemctl enable vsftpd
-
配置防火墙
确保防火墙允许FTP服务的默认端口(21)和数据端口(20)的访问,在Ubuntu中可以使用ufw:sudo ufw allow 21/tcp sudo ufw allow 20/tcp
在RHEL/CentOS中可以使用firewalld:
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload
-
用户权限配置
vsftpd的配置文件位于/etc/vsftpd.conf,可以通过编辑该文件调整FTP服务的行为,限制本地用户访问、启用匿名访问等,以下是常用配置项:anonymous_enable=YES:允许匿名用户访问local_enable=YES:允许本地用户访问write_enable=YES:允许用户上传文件chroot_local_user=YES:限制用户仅能访问其主目录
修改配置后,需重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
FTP客户端的安装与使用
Linux系统自带了命令行FTP客户端,但功能较为基础,如果需要更强大的功能,可以安装lftp或filezilla等工具。
-
安装命令行FTP客户端
在Debian/Ubuntu中:sudo apt install ftp
在RHEL/CentOS中:

sudo yum install ftp
-
安装lftp(增强版FTP客户端)
lftp支持多线程传输、断点续传等功能,推荐使用:sudo apt install lftp # Debian/Ubuntu sudo yum install lftp # RHEL/CentOS
常用FTP命令操作
FTP客户端连接到服务器后,可以通过一系列命令完成文件传输和管理操作,以下是常用的FTP命令:
-
连接与断开
ftp [服务器IP或域名]:连接到FTP服务器open [服务器IP或域名]:在FTP客户端中重新连接服务器close:关闭当前连接bye或quit:退出FTP客户端
-
用户认证
用户名:输入用户名密码:输入密码(匿名用户可直接按回车)
-
文件传输
get [远程文件]:下载远程文件到本地put [本地文件]:上传本地文件到远程服务器mget [文件模式]:批量下载文件(如mget *.txt)mput [文件模式]:批量上传文件prompt:关闭交互式提示,用于批量操作
-
目录操作
ls:列出远程服务器当前目录的文件dir:详细列出文件信息(类似ls -l)cd [目录名]:切换远程服务器目录lcd [目录名]:切换本地工作目录pwd:显示远程服务器当前目录!pwd:显示本地当前目录
-
文件管理
mkdir [目录名]:在远程服务器创建目录rmdir [目录名]:删除远程服务器空目录delete [文件名]:删除远程服务器文件rename [旧文件名] [新文件名]:重命名远程文件
-
其他命令
ascii:设置传输模式为ASCII(适用于文本文件)binary:设置传输模式为二进制(适用于图片、视频等)status:显示当前FTP状态help或:显示所有可用命令
使用lftp的高级功能
lftp是功能更强大的FTP客户端,支持多协议(FTP、FTPS、HTTP等)和高级操作:
-
连接与传输
lftp ftp://用户名:密码@服务器IP lftp 用户名@服务器IP # 输入密码
-
断点续传

get -c [远程文件] # 下载时断点续传 put -c [本地文件] # 上传时断点续传
-
多线程传输
set ftp:sync-mode off # 启用多线程 mirror [远程目录] [本地目录] # 同步目录
-
后台传输
lftp -c "put largefile.iso &"
安全注意事项
由于FTP协议默认使用明文传输用户名和密码,建议在安全要求较高的场景下使用以下替代方案:
-
使用FTPS(FTP over SSL/TLS)
在vsftpd中启用SSL/TLS加密:- 安装SSL证书
- 修改
vsftpd.conf,添加以下配置:ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES rsa_cert_file=/etc/ssl/certs/vsftpd.pem
-
使用SFTP(基于SSH的文件传输)
SFTP通过SSH协议传输数据,安全性更高,可以使用sftp命令替代FTP:sftp 用户名@服务器IP
常见问题解决
-
连接被拒绝
检查vsftpd服务是否启动,防火墙是否放行FTP端口。 -
权限不足
确保FTP用户对目标目录有读写权限,或检查chroot配置是否限制用户访问范围。 -
传输速度慢
尝试使用二进制传输模式(binary),或检查网络带宽是否受限。
通过以上步骤,用户可以在Linux系统中顺利搭建FTP服务器并使用FTP命令进行文件传输,虽然FTP的安全性存在局限,但在局域网或非敏感场景下,它仍然是一种高效的文件传输工具,对于需要高安全性的场景,建议优先选择SFTP或FTPS等加密协议。


















