在Linux系统中使用FTP(文件传输协议)是一种常见的文件传输方式,但需注意其明文传输的安全风险,以下是详细操作指南,涵盖命令行与图形界面两种方式:
基础准备
安装FTP客户端
# CentOS/RHEL sudo yum install ftp lftp
安装FTP服务器(如自建服务)
# 安装vsftpd(常用服务端) sudo apt install vsftpd # Debian/Ubuntu sudo yum install vsftpd # CentOS/RHEL # 启动服务 sudo systemctl start vsftpd sudo systemctl enable vsftpd
命令行操作FTP
连接服务器
ftp [IP地址或域名] # 示例:ftp 192.168.1.100
输入用户名密码后进入交互模式。
常用命令
命令 | 作用 | 示例 |
---|---|---|
ls |
列出远程目录文件 | ls /remote_dir |
cd |
切换远程目录 | cd /docs |
lcd |
切换本地目录 | lcd ~/downloads |
get |
下载单个文件 | get file.txt |
mget |
批量下载(支持通配符) | mget *.zip |
put |
上传单个文件 | put local_file.txt |
mput |
批量上传 | mput /local/*.png |
binary |
二进制模式(传输图片/压缩包) | binary |
ascii |
文本模式(传输文档) | ascii |
passive |
切换被动模式(解决防火墙问题) | passive |
quit |
退出FTP | quit |
示例:下载文件
ftp> cd /remote_files ftp> lcd ~/downloads # 本地保存目录 ftp> binary # 启用二进制模式 ftp> get archive.zip ftp> quit
图形界面工具(推荐新手)
FileZilla(跨平台)
- 安装:官网下载(https://filezilla-project.org/)或包管理器安装:
sudo apt install filezilla # Debian/Ubuntu
- 使用:
- 打开FileZilla,输入:
- 主机:服务器IP/域名
- 用户名/密码
- 端口:21(默认)
- 拖拽文件即可上传/下载。
- 打开FileZilla,输入:
GNOME用户:使用Nautilus文件管理器
地址栏输入:ftp://[用户名]@[服务器IP]
,按提示输入密码。
安全风险与替代方案
FTP的致命缺陷是明文传输密码和数据,在公共网络中极易被截获,强烈建议:
- 使用加密协议替代:
- SFTP(SSH File Transfer Protocol):
sftp user@192.168.1.100 # 基于SSH,默认端口22
- FTPS(FTP over SSL/TLS):需服务器配置证书。
- SFTP(SSH File Transfer Protocol):
- 服务器安全配置:
- 限制用户访问目录(
chroot
) - 启用防火墙(仅允许可信IP访问端口21)
- 定期更新
vsftpd
软件
- 限制用户访问目录(
常见问题解决
- 连接超时:
- 检查服务器防火墙:
sudo ufw allow 21/tcp
- 确认vsftpd运行状态:
sudo systemctl status vsftpd
- 检查服务器防火墙:
- 被动模式失败:
在/etc/vsftpd.conf
中添加:pasv_enable=YES pasv_min_port=60000 pasv_max_port=61000
并在防火墙开放此端口范围。
- 临时传输非敏感数据可用基础FTP命令。
- 生产环境务必使用SFTP/FTPS,通过OpenSSH或
vsftpd+SSL
实现。 - 定期审计服务器日志:
/var/log/vsftpd.log
。
引用说明:
- vsftpd官方文档:https://security.appspot.com/vsftpd.html
- FileZilla安全指南:https://wiki.filezilla-project.org/
- Linux man手册(命令参考):
man ftp
,man sftp
,man vsftpd.conf
本文遵循E-A-T原则,内容基于Linux官方文档及安全最佳实践,更新于2025年10月。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8573.html