当前位置: 首页 > news >正文

filezilla出现connected refused的时候排查问题

问题描述:

系统是ubuntu20.04,使用filezilla,两个主机之间能够ping通,但是filezilla使用sftp连接的时候显示的是

FATAL ERROR: Connection refused
Could connect to the server

应该如何排查问题呢

这是一个非常典型的SFTP连接问题。“Connection refused” (连接被拒绝) 是一个非常明确的错误信息,它和“Connection timed out”(连接超时) 或 “Host unreachable”(主机不可达) 是完全不同的。

“Connection refused”的核心含义是:你的FileZilla客户端发出的连接请求已经成功到达了服务器的IP地址,但是服务器操作系统主动拒绝了这个连接。

既然ping是通的,说明网络底层是连通的。问题出在应用层,也就是SSH服务本身。

请按照以下步骤,从最可能的原因开始逐一排查服务器(也就是你希望连接上的那台Ubuntu主机)。


排查步骤

第一步:检查服务器上的SSH服务是否已安装并正在运行

这是最常见的原因,尤其是在一个新安装的Ubuntu桌面系统上,SSH服务默认可能没有安装。

  1. 登录到你的Ubuntu服务器 (通过物理键盘、VNC、或者其他已经可以连接的方式)。

  2. 检查SSH服务的状态,在终端中输入以下命令:

    sudo systemctl status sshd
    

    或者有时候服务名叫 ssh

    sudo systemctl status ssh
    
  3. 分析命令输出:

    • 正常情况(服务正在运行):你会看到绿色的 active (running) 字样。

    • 在这里插入图片描述
      如果服务正在运行,请直接跳到 第二步

    • 异常情况1(服务未运行):你可能会看到 inactive (dead)
      解决方法:启动SSH服务,并设置为开机自启。

      sudo systemctl start ssh
      sudo systemctl enable ssh
      

      然后再试一次FileZilla连接。

    • 异常情况2(服务未安装):你可能会看到 Unit ssh.service could not be found. 或类似的错误。
      解决方法:安装openssh-server

      sudo apt update
      sudo apt install openssh-server
      

      安装完成后,SSH服务通常会自动启动。你可以用第一条 systemctl status ssh 命令再次检查。

第二步:检查服务器防火墙设置

如果SSH服务正在运行,但连接依然被拒绝,第二大可能性就是防火墙。Ubuntu默认使用 ufw (Uncomplicated Firewall)。

  1. 检查防火墙状态:

    sudo ufw status
    
  2. 分析命令输出:

    • 如果输出是 Status: inactive:说明防火墙未开启,这不是问题的原因,请跳到 第三步

    • 如果输出是 Status: active:你需要检查规则列表,看看是否允许了SSH连接(默认端口22)。

      Status: activeTo                         Action      From
      --                         ------      ----
      22/tcp                     ALLOW       Anywhere   <-- 需要看到类似这行
      OpenSSH                    ALLOW       Anywhere   <-- 或者这行
      22/tcp (v6)                ALLOW       Anywhere (v6)
      OpenSSH (v6)               ALLOW       Anywhere (v6)
      

      解决方法:如果列表中没有允许 22/tcpOpenSSH 的规则,请添加它:

      sudo ufw allow ssh 
      

      或者,如果你知道SSH使用的是标准端口22:

      sudo ufw allow 22/tcp
      

      添加规则后,无需 reloadrestart ufw。现在再试一次FileZilla连接。

第三步:确认SSH服务的监听端口

虽然不常见,但有些服务器为了安全会修改SSH的默认端口(从22修改为其他端口)。

  1. 检查SSH正在监听的端口:

    sudo ss -tlpn | grep sshd
    
    • ss 是一个现代的网络套接字查看工具,比 netstat 更快。
  2. 分析命令输出:

    LISTEN  0        128              0.0.0.0:22              0.0.0.0:*      users:(("sshd",pid=1234,fd=3))
    LISTEN  0        128                 [::]:22                 [::]:*      users:(("sshd",pid=1234,fd=4))
    
    • 请注意 LISTEN 状态后面跟着的地址和端口。0.0.0.0:22 表示在所有IPv4地址的22端口上监听。
    • 如果这里显示的端口不是22(例如是 2222),那么你在FileZilla连接时,必须在“端口§”字段明确填写这个新的端口号
  3. 如果需要修改端口:可以编辑SSH配置文件 sudo nano /etc/ssh/sshd_config,找到 Port 22 这一行,修改为你想要的端口,然后重启SSH服务 sudo systemctl restart ssh。同时别忘了在防火墙里允许新端口。

第四步:检查客户端(FileZilla)的设置

回到你自己的电脑上,检查FileZilla的设置是否正确。

  1. 协议(Protocol):确保主机名前缀是 sftp://,例如 sftp://192.168.1.100千万不要错选成 ftp://。SFTP (SSH File Transfer Protocol) 和 FTP 是完全不同的协议。
  2. 主机(Host):确认服务器的IP地址或域名输入正确。
  3. 端口(Port)
    • 如果服务器使用标准端口22,此项可以留空
    • 如果服务器使用了非标准端口(如第三步中查到的),必须在此处填写正确的端口号
  4. 用户名(Username)/密码(Password):确保你使用的是服务器上一个真实存在的用户的凭据。
第五步:使用命令行工具进行最终测试

为了排除是FileZilla本身的问题,可以在你的客户端电脑的终端(如果是Windows,可以使用CMD或PowerShell)上使用原生的sftp命令进行测试。

  1. 打开你电脑的终端。

  2. 输入命令:

    # 如果服务器是标准22端口
    sftp your_username@server_ip_address# 如果服务器是自定义端口,例如2222
    sftp -P 2222 your_username@server_ip_address
    
    • your_usernameserver_ip_address 替换为你的实际信息。
    • 注意:sftp命令用大写的 -P 指定端口,而 ssh 命令用小写的 -p
  3. 观察结果:

    • 如果命令行也返回 Connection refused,那么问题100%在服务器端,请重新仔细检查第一、二、三步。
    • 如果命令行能够成功连接(会提示你输入密码),但FileZilla不行,那问题就在FileZilla的配置上,请仔细检查第四步。

总结排查流程

  1. 服务器:SSH服务装了吗?sudo apt install openssh-server
  2. 服务器:SSH服务运行了吗?sudo systemctl status ssh -> 不行就 sudo systemctl start ssh
  3. 服务器:防火墙挡了吗?sudo ufw status -> 如果active,就 sudo ufw allow ssh
  4. 服务器:端口对吗?sudo ss -tlpn | grep sshd -> 确认端口号
  5. 客户端:FileZilla里协议、主机、端口、用户名填对了吗?特别是sftp://协议和端口号。

按照这个顺序排查,基本上都能解决“Connection refused”的问题。

http://www.dtcms.com/a/310923.html

相关文章:

  • Flink2.0学习笔记:Stream API 窗口
  • 鸿蒙智选携手IAM进驻长隆熊猫村,为国宝打造智慧健康呼吸新空间
  • 智能合约漏洞导致的损失,法律责任应如何分配
  • Hyperliquid:揭秘高性能区块链共识引擎HyperBFT
  • 入门MicroPython+ESP32:《点亮LED灯》
  • 1.7vue声明周期
  • Token系列 - 再谈稳定币
  • 保证金率(Margin Ratio)
  • 【最新区块链论文录用资讯】CCF A--WWW 2025 23篇
  • WebForms 简介
  • Redis 核心概念、命令详解与应用实践:从基础到分布式集成
  • 通过filezilla在局域网下实现高速传输数据
  • Selenium自动化:轻松实现网页操控
  • sqli-labs:Less-21关卡详细解析
  • C/C++常用字符串函数
  • 仿muduo库实现高并发服务器
  • 利用DeepSeek将Rust程序的缓冲输出改写为C语言实现提高输出效率
  • 自动化革命:软件开发的引擎与未来蓝图
  • carla-0.10.0 矿山地图和autoware联调
  • Rust进阶-part2-泛型
  • VAST视频广告技术实现:从零开始搭建视频广告投放系统
  • 大模型笔记1——李宏毅《2025机器学习》第一讲
  • 中科院自动化所机器人视觉中的多模态融合与视觉语言模型综述
  • 【Java】在一个前台界面中动态展示多个数据表的字段及数据
  • 第三阶段—8天Python从入门到精通【itheima】-141节(pysqark实战——数据输入)
  • True or False? 基于 BERT 学生数学问题误解检测
  • Python 第一阶段测试题 答案及解析
  • Vuex 4.0:Vue.js 应用的状态管理新篇章
  • SLAM中的非线性优化-2D图优化之零空间实战(十六)
  • TiDB 和 MySQL 的迁移过程是什么?会遇到什么问题?怎么解决的?