当前位置: 技术问答>linux和unix
FTP高手请进!
来源: 互联网 发布时间:2014-11-29
本文导语: 在通过防火墙进行ftp时,cuteftp没有问题,而sco unix下的ftp则列不出内容,取不回东西来。后来发现cuteftp 采用了一种Passive Mode(用pasv命令),哪位高手能解释一下这种模式?如何在sco unix实现这种功能? ...
在通过防火墙进行ftp时,cuteftp没有问题,而sco unix下的ftp则列不出内容,取不回东西来。后来发现cuteftp 采用了一种Passive Mode(用pasv命令),哪位高手能解释一下这种模式?如何在sco unix实现这种功能?
|
FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Standard模式FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
下面介绍一个这两种方式的工作原理:
Standard模式FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
|
一般unix的ftp客户端口提供这个切换的命令:
linux的是passive
另外一个命令也可以使用被动方式传输:
ftp > quote pasv
linux的是passive
另外一个命令也可以使用被动方式传输:
ftp > quote pasv
|
pasv是ftp协议中的一个命令,使服务器端进入被动打开模式,即打开一个端口等待客户连接进行数据传送。这主要是为了解决通过防火墙或者nat访问ftp的问题。
|
这个地方有详细的介绍
http://slacksite.com/other/ftp.html
http://slacksite.com/other/ftp.html
|
不行的话,可以修改防火墙的设置亚。