当前位置: 技术问答>linux和unix
登录ftp后无法列目录,改为pasv后仍无法列表,请问什么原因?服务器端用server-U,在线等给分!
来源: 互联网 发布时间:2015-02-14
本文导语: 登录ftp后无法列目录,改为pasv后仍无法列表,请问什么原因?服务器端用server-U,在线等给分! | 1、FTP 端口 FTP 服务器需要两个端口与客户端通讯: 20: FTP 数据端口 21: FTP 命令端口 ...
登录ftp后无法列目录,改为pasv后仍无法列表,请问什么原因?服务器端用server-U,在线等给分!
|
1、FTP 端口
FTP 服务器需要两个端口与客户端通讯:
20: FTP 数据端口
21: FTP 命令端口
所以,确信在 FTP 客户端到 FTP 服务器之间的连接路由/过滤设备的这两个端口都打开。
2、代理、防火墙、NAT、路由器
如果FTP 客户端到 FTP 服务器之间的路由中有使用 IP 改装技术(如 Linux IPChains, IP Masq)的路由器,确认支持 FTP 连接模式的插件或者模块已经启用。因为与其他一般的连接方式不同, FTP 采用双重连接的方式处理 FTP 请求。为了保持连接的延续性(persistence),masq 端的服务必须保存经过改装后的源 IP 与 经过改装后的 IP 的连接对应关系。如果使用 Linux 的 IPChains,则需要同时加载 ipchains ftp 模块。如果没有,会出现登录可以(因为使用端口 21 建立的登录连接),但是无法列目录(因为列目录的数据流走 20 端口)。
3、Active 和 Passive 模式
FTP 的 Active 和 Passive 模式处理连接是不一样的。简单说来:
·Active 模式
a) 端口21,客户端连接,服务器创建一个连接
b) 端口21,服务器将客户端的命令输出传递给客户端
c) 端口20,如果需要传递数据,则服务器发起一个连接给客户端的Socket端口
d) 端口20,客户端回应 ACK 给服务器的 20 端口
·Passive 模式
a) 端口21,客户端连接,服务器创建一个连接
b) 端口21,服务器将客户端的命令输出传递给客户端
c) 端口20,如果需要传递数据,则客户端发起一个连接给服务器指定的任意一个端口
d) 端口20,服务器回应 ACK 给客户端的 Socket 端口
可见,Active 模式和 Passive 模式对服务器的连接端口也有不同的要求。
还好,FTP 服务器完全基于 TCP 之上,不用涉及 UDP 方面的设置。
这样看来,导致 FTP 无法列目录的原因有很多,主要可能有:
a) 服务器需要的端口被某设备或软件堵住
b) 客户端与服务器的通讯协议不匹配(Active/Passive)
c) 使用了 NAT/IP Masq/IP Chains,改装 IP 的服务不支持 FTP 协议,或者不支持 Passive/Active 中的一种。
d) 防火墙设置
FTP 服务器需要两个端口与客户端通讯:
20: FTP 数据端口
21: FTP 命令端口
所以,确信在 FTP 客户端到 FTP 服务器之间的连接路由/过滤设备的这两个端口都打开。
2、代理、防火墙、NAT、路由器
如果FTP 客户端到 FTP 服务器之间的路由中有使用 IP 改装技术(如 Linux IPChains, IP Masq)的路由器,确认支持 FTP 连接模式的插件或者模块已经启用。因为与其他一般的连接方式不同, FTP 采用双重连接的方式处理 FTP 请求。为了保持连接的延续性(persistence),masq 端的服务必须保存经过改装后的源 IP 与 经过改装后的 IP 的连接对应关系。如果使用 Linux 的 IPChains,则需要同时加载 ipchains ftp 模块。如果没有,会出现登录可以(因为使用端口 21 建立的登录连接),但是无法列目录(因为列目录的数据流走 20 端口)。
3、Active 和 Passive 模式
FTP 的 Active 和 Passive 模式处理连接是不一样的。简单说来:
·Active 模式
a) 端口21,客户端连接,服务器创建一个连接
b) 端口21,服务器将客户端的命令输出传递给客户端
c) 端口20,如果需要传递数据,则服务器发起一个连接给客户端的Socket端口
d) 端口20,客户端回应 ACK 给服务器的 20 端口
·Passive 模式
a) 端口21,客户端连接,服务器创建一个连接
b) 端口21,服务器将客户端的命令输出传递给客户端
c) 端口20,如果需要传递数据,则客户端发起一个连接给服务器指定的任意一个端口
d) 端口20,服务器回应 ACK 给客户端的 Socket 端口
可见,Active 模式和 Passive 模式对服务器的连接端口也有不同的要求。
还好,FTP 服务器完全基于 TCP 之上,不用涉及 UDP 方面的设置。
这样看来,导致 FTP 无法列目录的原因有很多,主要可能有:
a) 服务器需要的端口被某设备或软件堵住
b) 客户端与服务器的通讯协议不匹配(Active/Passive)
c) 使用了 NAT/IP Masq/IP Chains,改装 IP 的服务不支持 FTP 协议,或者不支持 Passive/Active 中的一种。
d) 防火墙设置
|
重装一下wu-ftp试试
|
说说你的网络结构,server-u 又是在怎么样一个网络结构下的?
|
人家不准你列目录