FTP客户端的搭建(ubuntu/Debian/windows)

要验证你的 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) 命令行客户端测试(推荐 ftplftp
安装 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 命令连接你的服务器(如果是本地测试,用 localhost127.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 官网

配置连接
  1. 打开 FileZilla,点击 文件 → 站点管理器
  2. 新建站点,填写:
    • 主机:你的服务器 IP 或域名(本地测试用 127.0.0.1
    • 协议:FTP
    • 加密:普通 FTP(除非你配置了 TLS)
    • 登录类型:正常
    • 用户:你的 FTP 用户名
    • 密码:你的 FTP 密码
  1. 点击 连接
测试功能
  • 上传:拖拽本地文件到远程目录。
  • 下载:拖拽远程文件到本地目录。
  • 创建/删除目录:右键远程窗口操作。
  • 修改权限(如有需要):右键文件 → 文件权限

如果这些操作均成功,说明 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 服务器已确认功能完整! 🎉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值