错误:无法建立数据连接:ECONNREFUSED - 服务器拒绝连接

错误:无法建立数据连接:ECONNREFUSED - 服务器拒绝连接

当连接到 FTP 客户端中的互联网地址时,我们收到错误
:错误:无法建立数据连接:ECONNREFUSED - 服务器拒绝连接

通过同一客户端连接到 FTP 服务器时不会发生错误(通过本地 LAN 的客户端连接时)

Windows 防火墙已关闭。

尝试改变端口。

我们有两台服务器运行良好。因此网络配置正确。

错误日志是:

状态:连接到 117.247.9.3:2555...
状态:连接已建立,正在等待欢迎消息……
响应:220-FileZilla Server 版本 0.9.40 beta
回复:220 - 由 Tim Kosse 撰写([电子邮件保护]
响应:220 请访问​​http://sourceforge.net/projects/filezilla/
命令:USER ++++
响应:331 需要 ++++ 密码
命令:PASS ******
响应:230 已登录
状态:已连接
状态:正在检索目录列表...
命令:PWD
响应:257“/”是当前目录。
命令:TYPE I
响应:200 类型设置为 I
命令:PASV
响应:227 进入被动模式 (192,168,1,78,5,245)
状态:服务器发送了带有不可路由地址的被动回复。请改用服务器地址。
命令:MLSD
错误:无法建立数据连接:ECONNREFUSED - 服务器拒绝连接
响应:425 无法打开数据连接。
错误:无法检索目录列表


状态:连接到 117.247.9.3:2555...
状态:连接已建立,正在等待欢迎消息……
响应:220-FileZilla Server 版本 0.9.40 beta
回复:220 - 由 Tim Kosse 撰写([电子邮件保护]
响应:220 请访问​​http://sourceforge.net/projects/filezilla/
命令:USER ++++
响应:331 需要 ++++ 密码
命令:PASS ******
响应:230 已登录
状态:已连接
状态:正在检索目录列表...
命令:PWD
响应:257“/”是当前目录。
命令:TYPE I
响应:200 类型设置为 I
命令:PASV
响应:227 进入被动模式 (192,168,1,78,5,255)
状态:服务器发送了带有不可路由地址的被动回复。请改用服务器地址。
命令:MLSD
错误:无法建立数据连接:ECONNREFUSED - 服务器拒绝连接
响应:425 无法打开数据连接。
错误:无法检索目录列表

答案1

Response: 227 Entering Passive Mode (192,168,1,78,5,245)
Status: Server sent passive reply with unroutable address. Using server address instead.

看起来服务器位于私有网络内,即路由器/防火墙后面。但您从私有网络外部访问服务器。除非路由器/防火墙有特殊的助手来处理这种情况并重写流量,否则被动模式将不起作用。鉴于客户端收到的来自服务器的上述响应,您没有这样的路由器/防火墙。

在这种情况下,您将需要主动模式。但是,如果客户端和服务器都位于此类路由器/防火墙后面,并且位于不同的网络中,即使主动模式也无法工作。

答案2

Response:   227 Entering Passive Mode (192,168,1,78,5,245)
Status: Server sent passive reply with unroutable address. Using server address instead.
Command:    MLSD
Error:  The data connection could not be established: ECONNREFUSED - Connection refused by server
Response:   425 Can't open data connection.
Error:  Failed to retrieve directory listing

我。您正在使用被动模式连接到服务器。被动模式连接到服务器,它将打开 1023 以上的随机端口。因此,如果您在服务器上使用 iptables,则需要做两件事:

  1. 编辑 iptables 配置文件。添加 2 行:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 20:21 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 10000:10100 -j ACCEPT
    
  2. 编辑 /etc/vsftpd/vsftpd.conf。附加以下行:

    pasv_enable=YES
    pasv_max_port=10100
    pasv_min_port=10000
    port_enable=YES
    pasv_address=158.199.195.249
    

二.更简单的修复方法。

转到 FileZilla -> 设置 -> FTP -> 将“被动模式”切换为“主动模式”

相关内容