QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1629|回复: 11

关于linux之间访问ftp的问题

[复制链接]
发表于 2005-1-6 10:12:55 | 显示全部楼层 |阅读模式
问题描述如下:
我现在用的是FC3中的vsftp架设的ftp服务器
但是用朋友的机器联接我的机器ftp的时候,会出现问题。
对方用windows的时候可以用ie正常的连接我机器上的ftp
对方用linux系统的时候,使用konquer浏览器可以正常连接我的ftp
对方用mozilla或是firefox时不能连接
对方使用gftp程序时,在设置中设置为被动模式连接时,不能正常连接我的ftp,显示找不到路由。
将其中的被动模式的钩去掉后可以连接。
使用命令行的ftp命令时,连接后无法显示文件目录,错误提示也是找不到路由设备

目前我的机器防火墙打开了,开放了ftp服务,信任设备中没有选。(如果关掉防火墙,或是在信任设备中选中eth0网卡的时候,各种情况的ftp访问都很正常。)

我试着在vsftpd.conf中加入了一项pasv_enable=YES,但是问题依旧。
请高手帮忙出一下主意,如何才能在linux下各种方式都能正常访问我的ftp服务呢?
发表于 2005-1-6 11:01:38 | 显示全部楼层
防火墙挡住了被动ftp打开的端口。主动ftp都正常。
是主动ftp还是被动ftp方式是由客户端决定的,vsftpd两个都支持,不用改vsftpd.conf
用iptables的state参数修改防火墙。
回复

使用道具 举报

 楼主| 发表于 2005-1-6 11:22:21 | 显示全部楼层
能具体说一下state参数吗?谢谢。
回复

使用道具 举报

发表于 2005-1-6 11:30:53 | 显示全部楼层
具体怎么用我不记得了,在一本书上见过。
找找书看看或man一下学习学习。
回复

使用道具 举报

 楼主| 发表于 2005-1-6 12:11:46 | 显示全部楼层
我查了一下共用三种设置NEW ESTABLISHED RELATED但是试用了一下都不行啊??
还有什么新的建议吗?
回复

使用道具 举报

 楼主| 发表于 2005-1-6 12:22:19 | 显示全部楼层
我现在能肯定是防火墙配置的问题,但是如何才能让我的防火墙允许被动模式连接呢?
高手们帮忙啊!!!
回复

使用道具 举报

 楼主| 发表于 2005-1-6 16:20:43 | 显示全部楼层
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
这个是FC3中在防火墙中打开 ftp服务中相关的一行,还应该怎么改呢
我试着加入
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
不管用,还是主动方式连接
回复

使用道具 举报

 楼主| 发表于 2005-1-6 17:30:55 | 显示全部楼层
这个问题我看到很多人都遇到过,可是大家多满足于使用主动模式连ftp就完了,没有人解决一下如何用被动方式连接的问题吗。
几个浏览器默认情况下:IE 和konqueror是主动模式(IE被动模式也可,konqueror我不知道怎么改为被动模式)
mozilla和firefox是用的被动模式。
回复

使用道具 举报

发表于 2005-1-6 17:58:52 | 显示全部楼层
我也是遇到这个问题哈。解决方案正在寻求中……
解决后我再写上来。
回复

使用道具 举报

发表于 2005-1-6 18:26:04 | 显示全部楼层
这个问题我是这样解决的,在vsftpd.conf中设好PASV的最大、最小端口(比如5000,6000),并把防火墙开放这些端口即可。
不过我感觉应还有更灵活安全的方法,有点纳闷,请你参考参考:
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=100554
回复

使用道具 举报

发表于 2005-1-7 11:16:49 | 显示全部楼层
大哥们好,小弟发表下自己的看法,希望各位大哥能够斧正

我觉得可能是由于路由的问题,我以前这样也遇到这样的问题,客户端在访问vsftp服务器的时候会分别使用port,pasv模式,关键是这样,我通过微软cmd使用ftp命令(当时我在内网使用iptable防火墙)能够登陆上ftp服务器,但无法显示目录,我打开debug命令查看发现
ftp> debug
Debugging On .
ftp> ls
---> PORT 192,168,0,103,15,213
200 PORT command successful. Consider using PASV.
---> NLST
150 Here comes the directory listing.
原来在客户端发送port命令的时候告诉服务器是开的192.168.0.103的4053端口,当然采用主动模式当然无法访问到,这种情况下只能采用被动的访问方式
当时我也是对这个问题不知所然
后来直到我在内网用iptables映射ftp服务器的时候我发现客户端出现了这样的问题
200 Switching to ASCII mode.
PORT 192,168,0,103,16,224
500 Illegal PORT command.
PASV
227 Entering Passive Mode (192,168,0,77,175,76)
LIST
425 Security: Bad IP connecting.
原来当时我的客户端和服务端都在内网,并且没有实现路由跟踪,我无论使用主动还是被动模式,都是传递给对方是内网地址,当然就无法登陆了
后来我看了一些大哥的帖子增加了执行模块
/sbin/depmod -a
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
就一切OK了,现在在内网我用客户端可以用PORT访问对方任何可以使用主动访问的ftp服务器,而外网也可以访问用被动的方式访问我的在内网映射的ftp服务器
但是我对路由跟踪不是很了解对
/sbin/depmod -a
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
也是不得甚解,请各位大哥帮忙,告诉一下小弟。
回复

使用道具 举报

 楼主| 发表于 2005-1-7 11:35:56 | 显示全部楼层
谢谢,用你的方法我也可以了。
期待着能找到更灵活的方法:)
一起努力了:)
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-6 17:30 , Processed in 0.040243 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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