怎么查看ftp当前是主动还是被动,是否输入pass显示passivemodeon证明输入pa
答案:2 悬赏:0 手机版
解决时间 2021-12-21 17:13
- 提问者网友:雪舞兮
- 2021-12-20 17:36
怎么查看ftp当前是主动还是被动,是否输入pass显示passive mode on证明输入pass前处于主动模式
最佳答案
- 五星知识达人网友:雾月
- 2021-12-20 18:06
如果客户程序不支持被动模式,它就会返回?Invaild command;如果客户程序支持被动模式,而服务器不支持,就会返回"PASV:command not understood",PASV是一个FTP协议命令,使服务器进入到被动模式。
使用默认数据传输端口
在FTP协议中,除了被动模式和主动模式之外,还有另外一种数据传输模式。如果客户程序既不向服务器发出PASV命令也不发送PORT命令,FTP服务器就会使用FTP协议的数据传输端口(20)和客户端的控制连接源端口建立一个数据传输连接。这就需要客户程序在这个端口上监听。在客户程序上使用sendport命令可以关闭FTP协议的PORT控制指令,然后需要使用passive命令关闭被动模式。整个过程如下:
客户程序从本地端口N初始化一个FTP控制连接。
用户使用sendport命令和passive命令(某些客户程序在默认情况下,被动模式是打开的)关闭主动模式和被动模式,然后使用数据传输指令,例如:ls、get等。这样客户程序就会在本地端口N上监听FTP服务缉发起的数据传输连接。
服务器通过TCP例程(例如:getpeername())确定客户端的端口N。然后从FTP数据传输端口(20)发起一个连接。
不过,这种方式有一个最大的缺点就是无法在很短的时间之内连续输入数据传输命令,用户经常会遇到"bind:Address Already in use等错误。这是TCP协议造成的。因此,这种模式并不常用。
使用默认数据传输端口
在FTP协议中,除了被动模式和主动模式之外,还有另外一种数据传输模式。如果客户程序既不向服务器发出PASV命令也不发送PORT命令,FTP服务器就会使用FTP协议的数据传输端口(20)和客户端的控制连接源端口建立一个数据传输连接。这就需要客户程序在这个端口上监听。在客户程序上使用sendport命令可以关闭FTP协议的PORT控制指令,然后需要使用passive命令关闭被动模式。整个过程如下:
客户程序从本地端口N初始化一个FTP控制连接。
用户使用sendport命令和passive命令(某些客户程序在默认情况下,被动模式是打开的)关闭主动模式和被动模式,然后使用数据传输指令,例如:ls、get等。这样客户程序就会在本地端口N上监听FTP服务缉发起的数据传输连接。
服务器通过TCP例程(例如:getpeername())确定客户端的端口N。然后从FTP数据传输端口(20)发起一个连接。
不过,这种方式有一个最大的缺点就是无法在很短的时间之内连续输入数据传输命令,用户经常会遇到"bind:Address Already in use等错误。这是TCP协议造成的。因此,这种模式并不常用。
全部回答
- 1楼网友:枭雄戏美人
- 2021-12-20 19:03
虽然我很聪明,但这么说真的难到我了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯