当前位置: 首页 > 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.lryc.cn/news/607825.html

相关文章:

  • String boot 接入 azure云TTS
  • Java试题-选择题(4)
  • 防火墙相关技术内容
  • JVM 调优中JVM的参数如何起到调优动作?具体案例,G1GC垃圾收集器参数调整建议
  • JVM学习日记(十四)Day14——性能监控与调优(一)
  • 基于ELK Stack的实时日志分析与智能告警实践指南
  • SpringBoot 信用卡检测、OpenAI gym、OCR结合、DICOM图形处理、知识图谱、农业害虫识别实战
  • JVM 01 运行区域
  • Qwen3 Embedding:新一代文本表征与排序模型
  • Hyper-V + Centos stream 9 搭建K8s集群(一)
  • 手动开发一个TCP客户端调试工具(三):工具界面设计
  • 【人工智能agent】--服务器部署PaddleX 的 印章文本识别模型
  • Design Compiler:Milkyway库的创建与使用
  • 分布式微服务--Nacos作为配置中心(补)关于bosststrap.yml与@RefreshScope
  • 集成电路学习:什么是CMSIS微控制器软件接口标准
  • [创业之路-528]:技术成熟度曲线如何指导创业与投资?
  • UNet改进(28):KD Attention增强UNet的知识蒸馏方法详解
  • 深入解析 <component :is> 在 Vue3 组合式中的使用与局限
  • 【推荐100个unity插件】快速实现汽车控制器——PROMETEO: Car Controller插件
  • 除数博弈(动态规划)
  • [硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
  • python匿名函数lambda
  • 【LeetCode刷题指南】--二叉树的前序遍历,二叉树的中序遍历
  • 2025熵密杯 -- 初始谜题 -- Reproducibility
  • 进阶向:自动化天气查询工具(API调用)
  • stm32是如何实现电源控制的?
  • 【7.5 Unity AssetPostprocessor】
  • 2-5 Dify案例实践—利用RAG技术构建企业私有知识库
  • 【最新区块链论文录用资讯】CCF A--WWW 2025 23篇
  • 第三章 用户和权限