[20071015]【转】内网用户Fxp

很多内网用户会碰到一些ftp能登陆, 但是不能list的情况, 这一般都是因为这个ftp不能使用pasv(被动)模式传输数据, 只能用port(主动)模式.

先简单解释一下pasv和port模式的区别:
pasv就是服务器告诉你服务器的数据传输地址加端口, 你去连.
port(active)是你告诉服务器你的地址和端口, 让服务器来连你.

这里都以ftprush举例说明:
一般ftprush默认先尝试pasv连接,
引用

[2] PASV
[2] 227 Entering Passive Mode (12,123,40,33,13,18)
[2] Opening data connection IP: 12.123.40.33 PORT: 3346
[2] Unable connect to 12.123.40.33:3346 (Connection Refused(10061))
从这里可以看出, rush尝试连接ftp server的3346端口, 但是尝试的结果是拒绝连接, 说明这个ftp不能用pasv模式连.

pasv不行,rush就开始尝试用port(主动)模式,
引用
[2] Listening at IP: 192.168.0.101 PORT: 2078 for data connecting
[2] PORT 192,168,0,101,8,30
[2] 200 PORT Command successful.
[2] LIST
[2] 150 Opening ASCII mode data connection for /bin/ls.
结果port command是成功了,但是rush也就死那里了, =\,
原因在这里--Listening at IP: 192.168.0.101 PORT: 2078 ,
rush告诉ftpserver." 我这里(192.168.0.101) 的端口2078打开了,你来连我吧"
但是这个ip是内网ip, 在外网的ftpserver是不可能连这个ip的.

解决办法:

解决的办法就是让rush告诉server外网ip. 同时打开一定数量的端口.

首先设置Ftprush, 如下图
option-> connection.


设置你要绑定的外网ip,和打开的端口.
外网ip可以直接是ip,也可以是动态域名.
打开的端口最好大于10个, 因为每次list都会用不同的端口.

然后设置网关的防火墙, 如下图




打开相应的端口,就行了
引用
[2] Listening at IP: 24.123.123.123 PORT: 2079 for data connecting
[2] PORT 24,123,123,123,123,31
[2] 200 PORT Command successful.
[2] LIST
[2] 150 Opening ASCII mode data connection for /bin/ls.
[2] 226 Transfer complete.
[2] List Complete: 316 bytes in 1.00 seconds (0.00KB/s)

大功告成, 快下载吧. =D

但是, 如果你无法设置网关, 好像就没有办法连这个ftp了, 如果有哪位大侠知道,还望指教.



UPDATE:

新版的ftprush(1.0.0524) 已经开始支持UPnP, 所以当你的防火墙(或者router)支持UPnP, 一切都简单了, 直接enable UPnP(options-> general -> UPnP), 剩下的事就都由RUSH来搞定了.
引用
[10:10:25] : UPnP Searching UPnP router...
[10:10:43] : UPnP UPnP search finished
......
......
[2] UPNP + 24.xx.xx.xx:2783
[2] Listening at IP: 24.xx.xx.xx PORT: 2783 for data connecting
[2] PORT 24,xx,xx,xx,10,223
posted on 2007-10-15 22:06  如天转圈圈  阅读(234)  评论(0编辑  收藏  举报