找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6373|回复: 11

[其它] FTP连接解决方法

[复制链接]
发表于 2006-10-20 01:46:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
访问FTP服务器的问题

一、环境介绍:

内网FTP服务器映射到外网,对外开放。
FTP服务器端软件:SERV-U6.1。

二、问题现象

有的网络网络环境下无法用任何方式登录FTP。

三、问题**

FTP协议有两种工作方式:PORT方式(主动)和PASV方式(被动)。
1、PORT(主动)方式的连接过程是:
  1)客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
  2) 当需要传送数据时服务器默认从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。

 2、PASV(被动)方式的连接过程是:
   1) 客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
  2) 当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。

四、发现问题所在

  因为PORT(主动)方式在传送数据时,由FTP服务器主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT(主动)方式将无法与Internet上的FTP服务器传送文件。这种情况需要使用PASV(被动)方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是IE,IE默认是用PORT(主动)方式的。如果要在ie里启用PASV(被动)方式,请打开IE,在菜单里选择:工具-Internet选项-高级,在“使用被动ftp”前面打上钩(需要IE6.0以上才支持),确定即可。
  当使用主动方式登录FTP时,建立了命令链路后,接下来是服务器向客户发起数据传送请求,数据包到达网关后,网关并不知道要把这个数据转到内网的哪台机器上,所以就无法建立数据传送链接。
  从以上的**看来,在这样的环境下是不可能用主动方式进行登录FTP了。解决的方法是用被动方式,但是服务器堵了端口,而用被动方式链接时,要求服务器开放一段动态的端口,所以此方法也不可能实现。

五、解决问题

  利用SERV-U现有的功能,把原先被动模式访问时服务器端需要动态开启端口变成服务器端打开固定的端口。
1、把客户端设置成被动方式,链接FTP服务器,因为不可能链上所以要过比较久的时间才会出现出错提示信息,从出错信息中找到类似这样的一行数据[*.*.*.*,m,n](例如:10.0.0.3,14,183),(格式:IP,m,n)找到它我们利用公式计算出如果客户端用被动方式登录服务器时,服务器要动态开放的第一个端口值。公式为m*256+n

2、SERV-U里的设置
选中你的服务器(非域),点高级,里面有一项“pasv port range”,把这里面的端口改成你计算出来的,可以在你计算出来的数值上再加上一段值,多开几个动态端口。比如你算出来的端口是:3256的话,这里就填“3256-3280”

3、在防火墙、TCP/IP筛选、本地安全策略等处对外开放以上设置的端口.

  

  以上是在网上找到一篇文章,自己做了些改动,希望对大家有用.用我自己的话理解就是,如果你的客户端在内网,用主动方式访问的话,要FTP服务器去连接客户端的空闲端口,会被客户端网关防火墙、IP策略等拦截,或原本就不可到达。只能通过被动,用被动是客户端主动访问FTP服务器的开放的空闲端口,而自己在做映射时可能这个端口没有对外映射出去,容易造成客户端访问时出错。
routeros
发表于 2006-10-20 09:02:48 | 显示全部楼层
楼主好人啊,论坛上这样的朋友不多见了,有点道行的一般都潜水!
routeros
回复

使用道具 举报

发表于 2006-11-3 09:42:46 | 显示全部楼层
支持!!!!

我在用SERV-U时在服务器端也遇到被动模式(站对站)传输问题,但已解决。
routeros
回复

使用道具 举报

发表于 2007-5-15 21:03:00 | 显示全部楼层
支持!
routeros
回复

使用道具 举报

发表于 2007-5-15 21:03:52 | 显示全部楼层
支持!
     不光自己学还提倡大家学
routeros
回复

使用道具 举报

发表于 2007-5-17 14:59:17 | 显示全部楼层
不需要这么复杂,如果内部FTP服务器工作在被动模式,而端口又是非21,只需要把自定义的端口加到 NAT Helper 列表上。

例如:

ip firewall service-port set ftp ports=21,2121

2121 是自定义的被动端口,随机高位端口会自动打开和关闭。
routeros
回复

使用道具 举报

发表于 2007-5-17 15:05:22 | 显示全部楼层
推荐初学者看一本书,对大家理解 iptables 的原理很有帮助,Linux Firewall 第三版,有中文版。

虽然中文版翻译的并不好。

看这本书的目的不是要大家学 iptables 语法,目的是理解 iptables 的工作原理,对制定防火墙策略很有帮助。
routeros
回复

使用道具 举报

发表于 2007-5-17 15:17:07 | 显示全部楼层
另外,关于被动FTP模式的一个问题是,Windows防火墙是不能自定义非21端口的FTP的,所以要关上Windows防火墙。
routeros
回复

使用道具 举报

发表于 2007-10-22 03:50:27 | 显示全部楼层
我出现了一个问题。内网一台机器开22端口做FTP。映射完成。在内网用公网的IP:22可以正常访问。。但是外网的机器就是不能访问到FTP。。。求解
routeros
回复

使用道具 举报

发表于 2007-10-22 04:27:53 | 显示全部楼层
说的真是好。谢谢。。。先顶一下
routeros
回复

使用道具 举报

发表于 2007-10-22 20:10:51 | 显示全部楼层
我看了好久。。但是还是解决不了问题。
ros 2.9.27  ,用dst-nat 映射内网 FTP ,(内网ftp 用Ser-U架设)

外网能用ftp:打开,输入帐号,密码后,打不开列表!

求救!
routeros
回复

使用道具 举报

发表于 2007-10-24 01:05:50 | 显示全部楼层
用SERV-U架设了FTP!
在外网用FTP工具能传输...但用浏览器输入地址却显示没权限什么的!这是为什么 ?
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-9 18:18 , Processed in 0.065817 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表