如何判断ftp当前是主动模式 被动模式设置 什么是ftp的主动模式,被动模式,如何设
\u5982\u4f55\u8bbe\u7f6eftp\u7684\u4e3b\u52a8\u6a21\u5f0f\u548c\u88ab\u52a8\u6a21\u5f0f\u5728\u4f7f\u7528ftp\u7684\u65f6\u4faf\uff0c\u7ecf\u5e38\u9047\u5230ftp\u94fe\u63a5\u540e\u51fa\u73b0\u6587\u4ef6\u5217\u8868\u9519\u8bef\u7684\u60c5\u51b5\uff0c\u53ea\u662f\u56e0\u4e3aftp\u7684\u6a21\u5f0f\u4e0d\u6b63\u786e\uff0c\u5982\u4f55\u8bbe\u7f6eftp\u7684\u5de5\u4f5c\u6a21\u5f0f\uff0c\u4ec0\u4e48\u662f\u4e3b\u52a8\u6a21\u5f0f\uff0c\u4ec0\u4e48\u53c8\u662f\u88ab\u52a8\u6a21\u5f0f\uff0c\u4e3b\u52a8\u6a21\u5f0f\u548c\u88ab\u52a8\u6a21\u5f0f\u6709\u4ec0\u4e48\u533a\u522b\uff0c\u4eca\u5929\u641c\u96c6\u4e86\u76f8\u5173\u8d44\u6599\u548c\u5e38\u7528ftp\u8f6f\u4ef6\u5de5\u4f5c\u6a21\u5f0f\u7684\u8bbe\u7f6e\u7684\u65b9\u6cd5\uff1a
\u4e00\u3001\u4ec0\u4e48\u662fPASV\u548cPORT\u65b9\u5f0f
\uff081\uff09PORT\u5176\u5b9e\u662fStandard\u6a21\u5f0f\u7684\u53e6\u4e00\u4e2a\u540d\u5b57\uff0c\u53c8\u79f0\u4e3aActive\u6a21\u5f0f\u3002\u4e2d\u6587\u610f\u601d\u662f\u201c\u4e3b\u52a8\u6a21\u5f0f\u3002
\uff082\uff09PASV\u4e5f\u5c31\u662fPassive\u7684\u7b80\u5199\u3002\u4e2d\u6587\u5c31\u662f\u201c\u88ab\u52a8\u6a21\u5f0f\u3002
\u4e8c\u3001\u4e24\u8005\u4e0d\u540c
\u4e0d\u540c\u4e4b\u5904\u662f\u7531\u4e8ePORT\uff08\u4e3b\u52a8\uff09\u8fd9\u4e2a\u65b9\u5f0f\u9700\u8981\u5728\u63a5\u4e0aTCP 21\u7aef\u53e3\u540e\uff0c\u670d\u52a1\u5668\u901a\u8fc7\u81ea\u5df1\u7684TCP 20\u6765\u53d1\u51fa\u6570\u636e\u3002\u5e76\u4e14\u9700\u8981\u5efa\u7acb\u4e00\u4e2a\u65b0\u7684\u8fde\u63a5\u6765\u4f20\u9001\u6863\u6848\u3002\u800cPORT\u7684\u547d\u4ee4\u5305\u542b\u4e00\u4e9b\u5ba2\u6237\u7aef\u6ca1\u7528\u7684\u8d44\u6599\uff0c\u6240\u4ee5\u6709\u4e86PASv\u7684\u51fa\u73b0\u3002\u800cPASV\u6a21\u5f0f\u62e5\u6709PORT\u6a21\u5f0f\u7684\u4f18\u70b9\uff0c\u5e76\u53bb\u6389\u4e00\u4e9bPORT\u7684\u7f3a\u70b9\u3002PASV\u8fd0\u884c\u65b9\u5f0f\u5c31\u662f\u5f53\u670d\u52a1\u5668\u63a5\u6536\u5230\u5ba2\u6237\u7aef\u8fde\u63a5\u8bf7\u6c42\u65f6\uff0c\u5c31\u4f1a\u81ea\u52a8\u4ece\u7aef\u53e31024\u52305000\u4e2d\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u548c\u5ba2\u6237\u7aef\u5efa\u7acb\u8fde\u63a5\u4f20\u9012\u6570\u636e\u3002\u7531\u4e8e\u88ab\u52a8\u4e14\u81ea\u52a8\u5efa\u7acb\u8fde\u63a5\uff0c\u5bb9\u6613\u53d7\u5230\u653b\u51fb\uff0c\u6240\u4ee5\u5b89\u5168\u6027\u5dee\u3002
\u4e09\u3001\u5e38\u89c1\u7684FTP\u5ba2\u6237\u7aef\u8f6f\u4ef6PORT\u65b9\u5f0f\u4e0ePASV\u65b9\u5f0f\u7684\u5207\u6362\u65b9\u6cd5
\u5927\u90e8\u5206FTP\u5ba2\u6237\u7aef\u9ed8\u8ba4\u4f7f\u7528PASV\u65b9\u5f0f\u3002IE\u9ed8\u8ba4\u4f7f\u7528PORT\u65b9\u5f0f\u3002 \u5728\u5927\u90e8\u5206FTP\u5ba2\u6237\u7aef\u7684\u8bbe\u7f6e\u91cc\uff0c\u5e38\u89c1\u5230\u7684\u5b57\u773c\u90fd\u662f\u201cPASV\u201d\u6216\u201c\u88ab\u52a8\u6a21\u5f0f\u201d\uff0c\u6781\u5c11\u89c1\u5230\u201cPORT\u201d\u6216\u201c\u4e3b\u52a8\u6a21\u5f0f\u201d\u7b49\u5b57\u773c\u3002\u56e0\u4e3aFTP\u7684\u767b\u5f55\u65b9\u5f0f\u53ea\u6709\u4e24\u79cd\uff1aPORT\u548cPASV\uff0c\u53d6\u6d88PASV\u65b9\u5f0f\uff0c\u5c31\u610f\u5473\u7740\u4f7f\u7528PORT\u65b9\u5f0f\u3002
\uff081\uff09IE\uff1a\u5de5\u5177 -> Internet\u9009\u9879 -> \u9ad8\u7ea7 -> \u201c\u4f7f\u7528\u88ab\u52a8FTP\u201d\uff08\u9700\u8981IE6.0\u4ee5\u4e0a\u624d\u652f\u6301\uff09\u3002
\uff082\uff09CuteFTP\uff1aEdit -> Setting -> Connection -> Firewall -> \u201cPASV Mode\u201d \u6216File -> Site Manager\uff0c\u5728\u5de6\u8fb9\u9009\u4e2d\u7ad9\u70b9 -> Edit -> \u201cUse PASV mode\u201d \u3002
\uff083\uff09FlashGet\uff1a\u5de5\u5177 -> \u9009\u9879 -> \u4ee3\u7406\u670d\u52a1\u5668 -> \u76f4\u63a5\u8fde\u63a5 -> \u7f16\u8f91 -> \u201cPASV\u6a21\u5f0f\u201d\u3002
\uff084\uff09FlashFXP\uff1a\u9009\u9879 -> \u53c2\u6570\u9009\u62e9 -> \u4ee3\u7406/\u9632\u706b\u5899/\u6807\u8bc6 -> \u201c\u4f7f\u7528\u88ab\u52a8\u6a21\u5f0f\u201d \u6216 \u7ad9\u70b9\u7ba1\u7406 -> \u5bf9\u5e94\u7ad9\u70b9 -> \u9009\u9879 -> \u201c\u4f7f\u7528\u88ab\u52a8\u6a21\u5f0f\u201d\u6216\u5feb\u901f\u8fde\u63a5 -> \u5207\u6362 -> \u201c\u4f7f\u7528\u88ab\u52a8\u6a21\u5f0f\u201d\u3002
\u5728\u4f7f\u7528ftp\u7684\u65f6\u4faf\uff0c\u7ecf\u5e38\u9047\u5230ftp\u94fe\u63a5\u540e\u51fa\u73b0\u6587\u4ef6\u5217\u8868\u9519\u8bef\u7684\u60c5\u51b5\uff0c\u53ea\u662f\u56e0\u4e3aftp\u7684\u6a21\u5f0f\u4e0d\u6b63\u786e\uff0c\u5982\u4f55\u8bbe\u7f6eftp\u7684\u5de5\u4f5c\u6a21\u5f0f\uff0c\u4ec0\u4e48\u662f\u4e3b\u52a8\u6a21\u5f0f\uff0c\u4ec0\u4e48\u53c8\u662f\u88ab\u52a8\u6a21\u5f0f\uff0c\u4e3b\u52a8\u6a21\u5f0f\u548c\u88ab\u52a8\u6a21\u5f0f\u6709\u4ec0\u4e48\u533a\u522b\uff0c\u4eca\u5929\u641c\u96c6\u4e86\u76f8\u5173\u8d44\u6599\u548c\u5e38\u7528ftp\u8f6f\u4ef6\u5de5\u4f5c\u6a21\u5f0f\u7684\u8bbe\u7f6e\u7684\u65b9\u6cd5\uff1a
\u4e00\u3001\u4ec0\u4e48\u662fPASV\u548cPORT\u65b9\u5f0f
\uff081\uff09PORT\u5176\u5b9e\u662fStandard\u6a21\u5f0f\u7684\u53e6\u4e00\u4e2a\u540d\u5b57\uff0c\u53c8\u79f0\u4e3aActive\u6a21\u5f0f\u3002\u4e2d\u6587\u610f\u601d\u662f\u201c\u4e3b\u52a8\u6a21\u5f0f\u3002
\uff082\uff09PASV\u4e5f\u5c31\u662fPassive\u7684\u7b80\u5199\u3002\u4e2d\u6587\u5c31\u662f\u201c\u88ab\u52a8\u6a21\u5f0f\u3002
\u4e8c\u3001\u4e24\u8005\u4e0d\u540c
\u4e0d\u540c\u4e4b\u5904\u662f\u7531\u4e8ePORT\uff08\u4e3b\u52a8\uff09\u8fd9\u4e2a\u65b9\u5f0f\u9700\u8981\u5728\u63a5\u4e0aTCP 21\u7aef\u53e3\u540e\uff0c\u670d\u52a1\u5668\u901a\u8fc7\u81ea\u5df1\u7684TCP 20\u6765\u53d1\u51fa\u6570\u636e\u3002\u5e76\u4e14\u9700\u8981\u5efa\u7acb\u4e00\u4e2a\u65b0\u7684\u8fde\u63a5\u6765\u4f20\u9001\u6863\u6848\u3002\u800cPORT\u7684\u547d\u4ee4\u5305\u542b\u4e00\u4e9b\u5ba2\u6237\u7aef\u6ca1\u7528\u7684\u8d44\u6599\uff0c\u6240\u4ee5\u6709\u4e86PASv\u7684\u51fa\u73b0\u3002\u800cPASV\u6a21\u5f0f\u62e5\u6709PORT\u6a21\u5f0f\u7684\u4f18\u70b9\uff0c\u5e76\u53bb\u6389\u4e00\u4e9bPORT\u7684\u7f3a\u70b9\u3002PASV\u8fd0\u884c\u65b9\u5f0f\u5c31\u662f\u5f53\u670d\u52a1\u5668\u63a5\u6536\u5230\u5ba2\u6237\u7aef\u8fde\u63a5\u8bf7\u6c42\u65f6\uff0c\u5c31\u4f1a\u81ea\u52a8\u4ece\u7aef\u53e31024\u52305000\u4e2d\u968f\u673a\u9009\u62e9\u4e00\u4e2a\u548c\u5ba2\u6237\u7aef\u5efa\u7acb\u8fde\u63a5\u4f20\u9012\u6570\u636e\u3002\u7531\u4e8e\u88ab\u52a8\u4e14\u81ea\u52a8\u5efa\u7acb\u8fde\u63a5\uff0c\u5bb9\u6613\u53d7\u5230\u653b\u51fb\uff0c\u6240\u4ee5\u5b89\u5168\u6027\u5dee\u3002
\u4e09\u3001\u5e38\u89c1\u7684FTP\u5ba2\u6237\u7aef\u8f6f\u4ef6PORT\u65b9\u5f0f\u4e0ePASV\u65b9\u5f0f\u7684\u5207\u6362\u65b9\u6cd5
\u5927\u90e8\u5206FTP\u5ba2\u6237\u7aef\u9ed8\u8ba4\u4f7f\u7528PASV\u65b9\u5f0f\u3002IE\u9ed8\u8ba4\u4f7f\u7528PORT\u65b9\u5f0f\u3002 \u5728\u5927\u90e8\u5206FTP\u5ba2\u6237\u7aef\u7684\u8bbe\u7f6e\u91cc\uff0c\u5e38\u89c1\u5230\u7684\u5b57\u773c\u90fd\u662f\u201cPASV\u201d\u6216\u201c\u88ab\u52a8\u6a21\u5f0f\u201d\uff0c\u6781\u5c11\u89c1\u5230\u201cPORT\u201d\u6216\u201c\u4e3b\u52a8\u6a21\u5f0f\u201d\u7b49\u5b57\u773c\u3002\u56e0\u4e3aFTP\u7684\u767b\u5f55\u65b9\u5f0f\u53ea\u6709\u4e24\u79cd\uff1aPORT\u548cPASV\uff0c\u53d6\u6d88PASV\u65b9\u5f0f\uff0c\u5c31\u610f\u5473\u7740\u4f7f\u7528PORT\u65b9\u5f0f\u3002
\uff081\uff09IE\uff1a\u5de5\u5177 -> Internet\u9009\u9879 -> \u9ad8\u7ea7 -> \u201c\u4f7f\u7528\u88ab\u52a8FTP\u201d\uff08\u9700\u8981IE6.0\u4ee5\u4e0a\u624d\u652f\u6301\uff09\u3002
\uff082\uff09CuteFTP\uff1aEdit -> Setting -> Connection -> Firewall -> \u201cPASV Mode\u201d \u6216File -> Site Manager\uff0c\u5728\u5de6\u8fb9\u9009\u4e2d\u7ad9\u70b9 -> Edit -> \u201cUse PASV mode\u201d \u3002
\uff083\uff09FlashGet\uff1a\u5de5\u5177 -> \u9009\u9879 -> \u4ee3\u7406\u670d\u52a1\u5668 -> \u76f4\u63a5\u8fde\u63a5 -> \u7f16\u8f91 -> \u201cPASV\u6a21\u5f0f\u201d\u3002
\uff084\uff09FlashFXP\uff1a\u9009\u9879 -> \u53c2\u6570\u9009\u62e9 -> \u4ee3\u7406/\u9632\u706b\u5899/\u6807\u8bc6 -> \u201c\u4f7f\u7528\u88ab\u52a8\u6a21\u5f0f\u201d \u6216 \u7ad9\u70b9\u7ba1\u7406 -> \u5bf9\u5e94\u7ad9\u70b9 -> \u9009\u9879 -> \u201c\u4f7f\u7528\u88ab\u52a8\u6a21\u5f0f\u201d\u6216\u5feb\u901f\u8fde\u63a5 -> \u5207\u6362 -> \u201c\u4f7f\u7528\u88ab\u52a8\u6a21\u5f0f\u201d\u3002
主动模式FTP:
主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口--21端口。然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令给FTP服务器。服务器会反过来连接用户本地指定的数据端口,比如20端口。
以服务器端防火墙为立足点,要支持主动模式FTP需要打开如下交互中使用到的端口:
l FTP服务器命令(21)端口接受客户端任意端口(客户端初始连接)
l FTP服务器命令(21)端口到客户端端口(>1023)(服务器响应客户端命令)
l FTP服务器数据(20)端口到客户端端口(>1023)(服务器初始化数据连接到客户端数据端口)
l FTP服务器数据(20)端口接受客户端端口(>1023)(客户端发送ACK包到服务器的数据端口)
用图表示如下:
在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。
主动方式FTP的主要问题实际上在于客户端。FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。
主动FTP的例子:
下面是一个主动FTP会话的实际例子。当然服务器名、IP地址和用户名都做了改动。在这个例子中,FTP会话从 testbox1.slacksite.com (192.168.150.80),一个运行标准的FTP命令行客户端的Linux工作站,发起到testbox2.slacksite.com (192.168.150.90),一个运行ProFTPd 1.2.2RC2的Linux工作站。debugging(-d)选项用来在FTP客户端显示连接的详细过程。红色的文字是 debugging信息,显示的是发送到服务器的实际FTP命令和所产生的回应信息。服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。
仔细考虑这个对话过程我们会发现一些有趣的事情。我们可以看到当 PORT 命令被提交时,它指定了客户端(192.168.150.80)上的一个端口而不是服务器的。当我们用被动FTP时我们会看到相反的现象。我们再来关注PORT命令的格式。就象你在下面的例子看到的一样,它是一个由六个被逗号隔开的数字组成的序列。前四个表示IP地址,后两个组成了用于数据连接的端口号。用第五个数乘以256再加上第六个数就得到了实际的端口号。下面例子中端口号就是((14*256) + 178) = 3762。我们可以用netstat来验证这个端口信息。
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,150,80,14,178
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.
扩展阅读:fe file explorer ... win7如何关闭ftp服务 ... ftp c++ 源码 ... 苹果手机ftp软件 ... 苹果手机怎么访问ftp ... ftp server apk ... ftp put命令例子 ... 苹果手机ftp精灵使用 ... ftp主动和被动模式 防火墙 ...