要验证你的 FTP 服务器是否安装成功并测试其功能的完整可用性,可以按照以下步骤进行操作:
1. 验证 FTP 服务器是否运行
检查服务状态
运行以下命令,确认 vsftpd 服务正在运行:
sudo systemctl status vsftpd
- 如果显示
active (running),说明服务已启动。 - 如果未运行,使用
sudo systemctl restart vsftpd重启服务。
检查监听端口
FTP 默认使用 21(控制端口) 和 20(数据端口,主动模式),运行:
sudo netstat -tulnp | grep vsftpd
或:
sudo ss -tulnp | grep vsftpd
预期输出类似:
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1234/vsftpd
如果看到 21 端口在监听,说明 FTP 服务已就绪。
2. 安装 FTP 客户端进行测试
你可以使用 命令行工具 或 图形化工具 测试 FTP 服务器。
(1) 命令行客户端测试(推荐 ftp 或 lftp)
安装 ftp 客户端(如果尚未安装)
sudo apt install ftp
或更强大的 lftp:
sudo apt install lftp
防止登录失败
运行以下命令,确保家目录 完全不可写:
sudo chmod a-w /home/ftpuser # 移除所有写权限
然后检查权限:
sudo ls -ld /home/ftpuser
创建子目录用于文件上传
由于家目录不可写,需创建一个子目录(如 ftp)并赋予写权限:
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 777 /home/ftpuser/ftp # 允许上传/下载
修改 vsftpd 配置
编辑配置文件 /etc/vsftpd.conf,添加以下选项以允许 chroot 目录可写:
sudo nano /etc/vsftpd.conf
在文件末尾添加:
# 允许 chroot 目录可写(需搭配子目录权限控制)
allow_writeable_chroot=YES
保存后重启服务:
sudo systemctl restart vsftpd
所以后面要上传文件时,需要切换到子目录
cd ftp-upload #g根据自己服务器传建的子目录来

实际场景示例
目标:将本地文件 report.txt 上传到服务器的 /ftp_upload/reports/ 目录
ftp> !cd ~/Desktop # 切换到客户端本地桌面
ftp> !ls # 确认文件存在(如 report.txt)
ftp> cd /ftp_upload/reports # 切换到服务器目标目录
ftp> put report.txt # 上传文件
226 Transfer complete. # 成功
测试连接
使用 ftp 命令连接你的服务器(如果是本地测试,用 localhost 或 127.0.0.1):
ftp localhost
或:
lftp ftp://用户名@服务器IP

用户名和密码是服务器那边设置的
客户端登录时需要的是 FTP 服务器的用户名和密码
- 输入用户名和密码登录。
- 执行基本操作测试:
本地客户端:
!ls # 列出客户端本地当前目录文件
!cd ~/Documents # 切换客户端本地目录(如切换到Documents)
lcd /tmp # 另一种切换本地目录的方式(取决于客户端)
ls # 列出服务器当前目录文件
cd server_dir # 切换服务器目录
mkdir server_folder # 在服务器创建目录
如果这些命令能正常执行,说明 FTP 服务器功能正常。
(2) 图形化客户端测试(推荐 FileZilla)
FileZilla 是一个跨平台的 FTP 客户端,适合直观地测试文件传输。
安装 FileZilla
在 Debian 上安装:
sudo apt install fileZilla
或在 Windows/macOS 下载:FileZilla 官网
配置连接
- 打开 FileZilla,点击 文件 → 站点管理器。
- 新建站点,填写:
-
- 主机:你的服务器 IP 或域名(本地测试用
127.0.0.1) - 协议:FTP
- 加密:普通 FTP(除非你配置了 TLS)
- 登录类型:正常
- 用户:你的 FTP 用户名
- 密码:你的 FTP 密码
- 主机:你的服务器 IP 或域名(本地测试用
- 点击 连接。
测试功能
- 上传:拖拽本地文件到远程目录。
- 下载:拖拽远程文件到本地目录。
- 创建/删除目录:右键远程窗口操作。
- 修改权限(如有需要):右键文件 → 文件权限。
如果这些操作均成功,说明 FTP 服务器功能完整。

服务器主机的ip和用户名密码等登录,如果没有公网,需要在同一个网段下进行,就是说必须是同一个wifi啥的就那种了

想上传的文件直接拖动


3. 额外测试项(可选)
(1) 测试被动模式(PASV)
- 在 FileZilla 的 站点管理器 → 传输设置 中,选择 被动模式。
- 尝试传输文件,确保能正常连接(特别是客户端在 NAT 后时)。
(2) 测试主动模式(PORT)
- 在 FileZilla 中选择 主动模式,测试文件传输是否正常。
(3) 测试匿名登录(如果启用)
- 使用用户名
anonymous,密码留空或任意邮箱,测试是否能访问/srv/ftp。
(4) 测试用户锁定到家目录(chroot)
- 登录后尝试
cd /,如果被限制在家目录,说明chroot_local_user=YES生效。
4. 查看日志排查问题
如果遇到问题,检查日志:
sudo tail -f /var/log/vsftpd.log
或:
sudo journalctl -u vsftpd -f
常见错误:
- 530 Login incorrect:用户名/密码错误,或用户被
userlist限制。 - 500 OOPS: vsftpd: refusing to run with writable root inside chroot:
-
- 运行
sudo chmod a-w /home/用户名解决。
- 运行
- 425 Can't open data connection:防火墙/安全组未放行被动模式端口。
5. 最终确认
如果满足以下条件,说明 FTP 服务器完全可用:
✅ 服务状态 active (running)
✅ 端口 21 监听正常
✅ 能通过客户端登录
✅ 能上传/下载文件
✅ 目录权限正常(如 chroot 生效)
现在你的 FTP 服务器已确认功能完整! 🎉
756

被折叠的 条评论
为什么被折叠?



