2026/10/31 2:04:02

FileZilla Client FTP 工具:Windows 向 Ubuntu 虚拟机传输文件的完整配置

FileZilla Client FTP 工具:Windows 向 Ubuntu 虚拟机传输文件的完整配置 前言在 Windows 主机与 Ubuntu 虚拟机之间传输文件除了共享文件夹、SSH/SFTP 之外搭建一个 FTP 服务也是常见做法。本文使用 FileZilla Client 作为 Windows 端客户端Ubuntu 端使用 vsftpd 作为服务端完整走一遍「下载客户端 → 配置 vsftpd → 连接 → 排错」的流程。适用场景本地开发时需要在宿主机与虚拟机之间频繁拷贝代码、日志、安装包等文件。前置条件Windows 主机已安装 FileZilla Client或准备安装Ubuntu 虚拟机可正常启动且已配置好可用的网络NAT 或桥接均可拥有 Ubuntu 的 sudo 权限整体流程如下成功失败下载并安装 FileZilla ClientUbuntu 安装 vsftpd修改 vsftpd.conf 配置重启服务并设置开机自启查询 Ubuntu IPv4 地址FileZilla 站点管理器连接连接是否成功上传/下载文件排查权限、端口、防火墙第一步下载 Windows FileZilla Client打开官网下载 FileZilla Client官网https://filezilla-project.org在下载页面选择FileZilla Client注意不要选成 FileZilla Server根据 Windows 位数下载对应的安装包。下载完成后双击安装包按向导一路「Next」完成安装安装路径保持默认即可。安装完成后启动 FileZilla Client界面分为四块区域顶部为连接信息栏左侧为本地站点目录右侧为远程站点目录底部为传输队列与日志区。后续排错时主要看底部日志区。第二步Ubuntu 相关配置1. 安装 vsftpd在 Ubuntu 终端中执行以下命令# 更新本地安装包列表sudoaptupdate# 安装 FTP 服务器软件 vsftpd并自动确认安装sudoaptinstallvsftpd-y# 查看 ftp 服务的运行状态sudosystemctl status vsftpd执行systemctl status vsftpd后若看到active (running)字样说明服务已正常启动。若显示inactive可执行sudo systemctl start vsftpd手动启动。2. 修改 vsftpd.conf 文件使用 vim 编辑配置文件sudovim/etc/vsftpd.conf修改如下主要涉及以下几个参数若配置文件中没有对应项直接在文件末尾补上即可# 允许本地系统用户登录 local_enableYES # 允许写操作上传、删除、重命名等 write_enableYES # 将用户限制在自己的主目录内避免访问其他目录 chroot_local_userYES # 允许 chroot 目录可写新版 vsftpd 需要 allow_writeable_chrootYES # 开启被动模式便于在 NAT/防火墙环境下连接 pasv_enableYES pasv_min_port30000 pasv_max_port30100 # 指定被动模式使用的地址填 Ubuntu 虚拟机的 IPv4 地址 pasv_address192.168.1.100各参数作用说明local_enableYES允许 Ubuntu 本地用户通过 FTP 登录否则只能匿名访问。write_enableYES开启写权限否则只能下载不能上传。chroot_local_userYES把用户锁定在主目录提升安全性。allow_writeable_chrootYES新版 vsftpd 默认拒绝可写的 chroot 目录需显式放开。pasv_enable与端口范围被动模式下客户端会连接服务端的随机端口固定端口范围便于在防火墙中放行。pasv_address被动模式返回给客户端的地址NAT 环境下必须填虚拟机的实际 IP否则客户端会连不上数据通道。修改完成后按Esc输入:wq保存并退出。3. 重启服务并设置开机自启# 重启服务使配置生效sudosystemctl restart vsftpd# 设置开机自启sudosystemctlenablevsftpd如果修改配置后服务启动失败可用sudo systemctl status vsftpd查看报错信息常见原因是配置项拼写错误或pasv_address与实际 IP 不一致。第三步Windows FileZilla Client 连接 Ubuntu1. 查询 Ubuntu 主机的 IPv4 地址在 Ubuntu 终端执行ipaddr或使用旧命令ifconfig注意ipconfig是 Windows 下的命令在 Ubuntu 中应使用ip addr或ifconfig后者可能需要先安装net-tools。在输出中找到当前网卡如ens33下的inet行形如inet 192.168.1.100/24其中192.168.1.100即为后续连接使用的 IPv4 地址。2. FileZilla Client 连接 Ubuntu 虚拟机打开 FileZilla Client 客户端 → 点击「文件」→ 点击「站点管理器」→ 点击「新站点」。按以下内容填写协议(T)选择FTP - 文件传输协议主机(H)填写上一步查询到的 Ubuntu 虚拟机 IPv4 地址端口§填写21FTP 默认端口留空时客户端也会默认使用 21加密(E)选择「如果可用使用显示的 FTP over TLS」登录类型(L)正常用户(U)Ubuntu 虚拟机登录用户名密码(W)Ubuntu 虚拟机登录密码3. 验证文件传输连接成功后可以做一个简单的端到端验证在 Windows 本地目录区选中一个测试文件如test.txt右键选择「上传」。在 Ubuntu 终端进入接收目录执行ls -l确认文件已存在且大小一致。在 FileZilla 右侧远程目录中右键该文件选择「下载」确认能正常下载回 Windows。若上传成功但下载失败或反之通常是目录权限或被动模式端口未放行导致可参考第四步排查。第四步传输时出现「严重文件传输错误」的解决办法出现该问题的常见原因是 Ubuntu 虚拟机接收文件的目录权限不足当前登录用户对该目录没有写权限。解决方式给 Ubuntu 下接收文件的目录赋予写权限。建议针对具体目录授权而不是整个/home# 创建专用的 FTP 共享目录mkdir-p/home/youruser/ftp_share# 将目录所有者设为当前用户sudochown-Ryouruser:youruser /home/youruser/ftp_share# 赋予所有者读写执行权限其他用户只读执行sudochmod755/home/youruser/ftp_share如果只是临时测试也可以使用# 可读可写可执行仅建议测试环境使用sudochmod777/home/youruser/ftp_share安全提示chmod 777会让所有用户都能读写该目录生产环境不建议使用优先使用chownchmod 755的方式。授权完成后在 FileZilla 中重新上传文件观察底部日志区是否出现226 Transfer complete出现即表示传输成功。其他可能导致传输失败的原因被动模式端口未放行若 Ubuntu 开启了 ufw需放行21端口及pasv_min_port~pasv_max_port范围例如sudo ufw allow 30000:30100/tcp。SELinux/AppArmor 限制部分发行版默认策略会限制 vsftpd 访问目录可通过sudo aa-status检查。虚拟机网络模式NAT 模式下宿主机无法直接访问虚拟机需配置端口转发或改用桥接模式。常见问题 FAQQ1连接时提示530 Login incorrect检查用户名密码是否正确以及/etc/vsftpd.conf中local_enableYES是否开启。部分系统还需检查/etc/ftpusers是否把当前用户列入了黑名单。Q2能登录但目录列表为空或一直卡在「正在列出目录」多为被动模式配置问题。确认pasv_enableYES、pasv_address填写正确且防火墙已放行被动端口范围。Q3上传提示550 Permission denied目标目录当前用户无写权限按第四步调整目录权限即可。Q4连接超时先用ping确认 Windows 能通 Ubuntu 的 IP再检查 Ubuntu 的 ufw 与 Windows 防火墙是否拦截了 21 端口。总结本文完整梳理了 Windows 通过 FileZilla Client 连接 Ubuntu 虚拟机 FTP 服务的配置流程核心要点包括Ubuntu 端安装并配置 vsftpd重点开启local_enable、write_enable、chroot_local_user与被动模式端口Windows 端在站点管理器中正确填写 IP、端口、用户名密码传输失败优先排查目录权限与被动模式端口放行。参考链接vsftpd 官方文档https://security.appspot.com/vsftpd.htmlFileZilla 官方文档https://wiki.filezilla-project.org/Documentation测试环境Ubuntu 22.04 vsftpd 3.0.5 FileZilla Client 3.66。