LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2969|回复: 3

跨网段访问内网vsFTP Server出错:500 Illegal PORT command

[复制链接]
发表于 2007-10-13 10:03:32 | 显示全部楼层 |阅读模式
各位,本人的实验室分布着多个C类网段,其中2个网段具体情况如下:
无线路由A外部地址:202.117.246.110 内部网段地址:192.168.0.1
无线路由B外部地址:202.117.247.17 内部网段地址:192.168.1.1

在访问vsftp时,碰到了一个难题。具体情况如下:

1.我在路由器A的内网架设了一台vsftp服务器,IP:192.168.0.199
默认开启了pasv模式,关闭了port模式。listen_port = 2121, 数据端口设置在3201-3210间。
2.在路由器A做了如下配置:将外网从端口2121,3201-3210发出的TCP和UDP请求全部映射到
内网vsftp服务器:192.168.0.199的2121,3201-3210端口上。
3.从路由器B的网段内,开启了一台workstationI: 192.168.1.199。并从该ws访问网段A的vsftp。
命令行如下:
ftp> o 202.117.246.110 2121
在登陆后,输入ls命令时,遇到如下错误:
ftp> ls
500 Illegal PORT command.
425 Use PORT or PASV first.
不知该错误,如何解决?

我已做过如下测试:在A网段内,也开启一台workstationII:192.168.0.12,用如下命令访问vsftp:
ftp> o 192.168.0.199 2121
登陆后,输入命令,一切正常。
但是!!!
使用ftp > o 202.117.246.110 2121时,仍然碰到上述错误。

为了进一步定位错误,我在A网内部客户端workstationII上使用netstat查看vsftp连接,发现如下信息:
TCP    192.168.0.12:1864       202.117.246.110:2121   ESTABLISHED
说明ftp指令传输连接已经建立。为什么通过A网段外部地址202.117.246.110:2121访问时,无法传输ftp指令?
另外,使用ftp> o 192.168.0.199 2121建立连接后,传输数据,我发现vsftp服务器开启的端口
不在3201-3210之间:TCP    192.168.0.12:1866       202.117.246.110:4486   ESTABLISHED
这又是为什么?

敬请专家赐教!不慎感激。
 楼主| 发表于 2007-10-16 17:32:51 | 显示全部楼层

难道没有人碰到过这种情况吗?

难道没有人碰到过这种情况吗?
回复 支持 反对

使用道具 举报

发表于 2007-10-16 20:56:35 | 显示全部楼层
ftp命令行软件默认工作在port模式,必须输入passive指令才能进入被动模式,所以才会出现下面错误:
ftp> ls
500 Illegal PORT command.
425 Use PORT or PASV first.
其实错误信息中已经说明解决办法了,你不看就没办法了。
注意:不同环境下进入被动模式的方法可能会不同,用?命令查一下吧,windows下的ftp中根本就没有进被动模式的指令。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-17 15:59:34 | 显示全部楼层
我后来做了新的更改,把vsFTP的listen_port=21,路由器A的映射端口也改成了21,就可以正常使用了。不知道这是为什么?(跟pasv模式没有关系)
回复 支持 反对

使用道具 举报

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

本版积分规则

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