温馨提示×

Ubuntu如何解决Filezilla连接失败

小樊
52
2025-09-18 13:14:32
栏目: 智能运维

1. 检查并启动SSH服务(SFTP必需)
SFTP依赖SSH服务传输数据,若SSH未运行,FileZilla无法通过SFTP连接。在Ubuntu服务器终端执行以下命令:

  • 检查SSH服务状态:sudo systemctl status ssh(若显示“inactive”则未运行);
  • 启动SSH服务:sudo systemctl start ssh
  • 设置开机自启:sudo systemctl enable ssh
  • 若未安装SSH服务,执行:sudo apt-get update && sudo apt-get install openssh-server

2. 验证FileZilla站点配置
打开FileZilla→点击“文件”→“站点管理器”→新建站点,确保以下设置正确:

  • 协议:优先选择“SFTP - SSH File Transfer Protocol”(更安全,无需额外配置FTP服务);若使用FTP协议,需确保服务器安装了vsftpd(见步骤4);
  • 主机:输入Ubuntu服务器的IP地址或域名;
  • 端口:SFTP默认22,FTP默认21;
  • 登录类型:选择“常规”,输入正确的用户名和密码。

3. 调整防火墙规则
Ubuntu默认使用UFW防火墙,需开放对应端口:

  • 允许SFTP端口(22):sudo ufw allow 22/tcp
  • 若使用FTP(21端口):sudo ufw allow 21/tcp
  • 启用防火墙(若未启用):sudo ufw enable
  • 验证规则:sudo ufw status(应显示“22/tcp ALLOW”或“21/tcp ALLOW”)。

4. 配置FTP服务(若使用FTP协议)
若选择FTP协议,需安装并配置vsftpd:

  • 安装vsftpd:sudo apt-get update && sudo apt-get install vsftpd
  • 启动服务:sudo systemctl start vsftpd
  • 编辑配置文件(关键设置):sudo nano /etc/vsftpd.conf,确保以下参数未被注释:
    local_enable=YES(允许本地用户登录)、write_enable=YES(允许上传文件);
  • 重启服务:sudo systemctl restart vsftpd

5. 切换传输模式(FTP协议专用)
若使用FTP协议,主动模式可能因服务器防火墙拦截导致连接失败,需切换至被动模式:

  • 在FileZilla“站点管理器”→选中对应站点→“传输设置”→勾选“被动模式”;
  • 被动模式下,服务器会随机开放端口供客户端连接,需确保服务器防火墙允许这些端口(可通过sudo ufw allow 30000:31000/tcp开放常用被动端口范围)。

6. 检查网络连通性

  • 在客户端终端执行ping <服务器IP>,若无法ping通,说明网络不通(需检查客户端网络、服务器IP是否正确或路由器设置);
  • 若能ping通,执行telnet <服务器IP> 22(SFTP)或telnet <服务器IP> 21(FTP),若提示“Connection refused”,说明端口未开放(需检查防火墙或服务器服务状态)。

7. 查看日志定位具体错误

  • FileZilla日志:连接失败时,FileZilla界面底部会显示错误信息(如“ECONNREFUSED - 连接被拒绝”),或点击“查看”→“消息日志”查看详细记录;
  • 服务器日志:Ubuntu系统日志(/var/log/auth.log)或SSH日志(/var/log/secure)会记录连接尝试的详细原因(如“Invalid user”表示用户名错误、“Connection timed out”表示网络不通)。

8. 更新FileZilla版本
旧版本FileZilla可能存在兼容性问题,建议升级至最新版本:

  • 在Ubuntu终端执行:sudo apt-get update && sudo apt-get install filezilla(自动升级至最新版);
  • 或从FileZilla官网下载最新版本安装包。

0