这个错误是因为是主动模式的,应该改为被动模式

以下是操作过程:

iptables中加

-A INPUT -p tcp -m state --state NEW -m tcp --dport 10221:10231 -j ACCEPT

重启iptables

#/etc/init.d/iptables restart

vsftpd.conf中

最后加上

pasv_enable=YES
pasv_min_port=10221 #随机最小端口,原来是4000
pasv_max_port=10231 #随机最大端口,原来是5000.
#anon_other_write_enable=YES
#port_promiscuous=YES
pasv_promiscuous=YES #这个如果不打开, 在连接时可能会出现bad ip ....可能是网络不稳定..也或者是ip在传输时有改变.....

重启 vsftpd

#service vsftpd restart

记得如果ftp是在虚拟机上面架设的,则一定要在代理服务器的防火墙上面/物理主机上面添加监听端口

netsh interface portproxy add v4tov4 listenport=10221 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10221
netsh interface portproxy add v4tov4 listenport=10222 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10222
netsh interface portproxy add v4tov4 listenport=10223 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10223
netsh interface portproxy add v4tov4 listenport=10224 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10224
netsh interface portproxy add v4tov4 listenport=10225 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10225
netsh interface portproxy add v4tov4 listenport=10226 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10226
netsh interface portproxy add v4tov4 listenport=10227 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10227
netsh interface portproxy add v4tov4 listenport=10228 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10228
netsh interface portproxy add v4tov4 listenport=10229 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10229
netsh interface portproxy add v4tov4 listenport=10230 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10230
netsh interface portproxy add v4tov4 listenport=10231 listenaddress=物理主机ip connectaddress=内网虚拟机ip connectport=10231

如果是被动模式的话,出现如下错误,是因为端口被占用或者端口没有开放的问题


500 Illegal PORT command的问题(主被动模式)

在windows的dos窗口用FTP命令去连时,可以登录,但使用ls等命令时,出现:
500 Illegal PORT command.
425 Use PORT or PASV first.
根据提示是被动模式的问题。

 FTP主/被动模式的原理
-----------------------------------------------------------
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

概括:
--------------------------------------------
主动模式:服务器向客户端敲门,然后客户端开门
被动模式:客户端向服务器敲门,然后服务器开门

所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口

--------------------------------------------

要用主动模式来下载,请您把下载工具的被动模式(PASV)都不要打勾,用主动模式来下载就OK了,如果在出错,那就被动主动相互转换一下

---------------------------------------------

如何设置vsftpd的主动与被动模式:

Vsftpd的配置文件 /etc/vsftpd/vsftpd.conf 
主动模式设置
Port_enable=YES              开启主动模式(default:YES)
Connect_from_port_20=YES     当主动模式开启的时候 是否启用默认的20端口监听
Ftp_date_port=%portnumber%   上一选项使用NO参数是 指定数据传输端口 
被动模式
PASV_enable=YES  开启被动模式
PASV_min_port=%number% 被动模式最低端口
PASV_max_port=%number% 被动模式最高端口

----------------------------------------------

大部分FTP客户端默认使用PASV方式,PASV模式的意式是被动模式。在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”。

IE: 工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。

CuteFTP: Edit -> Setting -> Connection -> Firewall -> “PASV Mode”
或 File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”

FlashGet: 工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”

FlashFXP: 选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”
或 站点管理 -> 对应站点 -> 选项 -> “使用被动模式”
或 快速连接 -> 切换 -> “使用被动模式”

LeapFTP: Option ->Preferences -> General->Proxy->Use Pasv Mode

记一次ftp服务器错误 centOS 6.4 vsftpd 500 illegal port command的更多相关文章

  1. centOS 6.4 vsftpd 500 illegal port command

    原先配置好的vsftpd突然不行了,不知为啥,感觉跟网络有关,这个网络总是有dns拦截的现象,..小公司.真烦人,用联通线路就没问题, 但同事就是连不上,我的笔记本却可以连接上..我的ubuntn,同 ...

  2. ftp:500 Illegal PORT command. 425

    局域网用FTP命令访问外网的FTP SERVER,执行任何命令(如dir,ls,put,get)总是报下面的错误ftp:500 Illegal PORT command. 425ftp:Use POR ...

  3. 记一次ftp服务器搭建走过的坑

    记一次ftp服务器搭建走过的坑 1.安装 ①下载 wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz #要FQ ②解压 ta ...

  4. FTP服务器(SOCKET)返回异常 500 Command not understood

    出现着这样的问题,一般是NLST中的参数包含特殊字符,如"\n",所以在发送SOCKET命令时,一定要检查命令参数的合法性.

  5. Linux CentOS 6.5 下 vsftpd ftp服务器搭建

    Linux CentOS 6.5 下 vsftpd ftp服务器搭建 by:授客 QQ:1033553122   操作系统环境:CentOS 6.5-x86_64 下载地址:http://www.ce ...

  6. centos FTP服务器的架设和配置

    yum install vsftpd 2.启动/重启/关闭vsftpd服务器 [root@localhost ftp]# /sbin/service vsftpd restart Shutting d ...

  7. Ubantu下FTP服务器资源进行控制

    在FTP服务器的管理中无论对本地用户还是匿名用户,对于FTP服务器资源的使用都需要进行控控制, 避免由于负担过大造成FTP服务器运行异常, 可以添加以下配置项对FTP客户机使用FTP服务器资源进行控制 ...

  8. linux搭建FTP服务器并整合Nginx

    操作系统:Centos7 1.1.服务器配置 # 关闭SELINUX,把SELINUX=enforcing改为SELINUX=disabled,reboot重启服务器生效 vim /etc/sysco ...

  9. Linux上的ftp服务器vsftpd之配置满天飞--设置匿名用户访问(不弹出用户名密码框)以及其他用户可正常上传

    一.问题背景 没事谁折腾这鬼玩意哦...还不是因为bug. 我们的应用,用户头像是存在ftp上的.之前的ftp服务器是一台windows,我们后台服务器程序收到用户上传头像的请求时,会用一个ROOT/ ...

随机推荐

  1. POJ 3468 A Simple Problem with Integers 线段树 区间更新

    #include<iostream> #include<string> #include<algorithm> #include<cstdlib> #i ...

  2. ACM编程技巧--代码片段

    验证n是否是完全平方数 #include<math.h> double m=sqrt(n); if(floor(m+0.5)==m) printf("%d是完全平方数.\n&qu ...

  3. ZOJ-2362 Beloved Sons 贪心 | KM

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2362 裸的匹配问题,直接KM,就算是O(n^4)的KM也不会超. ...

  4. [JSOI2008]星球大战

    正向进行很显然很BT, 所以逆向离线此题是个不错的选择. 使用并查集统计劫难之后的联通状态, 然后逐个添加结点即可. #include <stdio.h> #include <std ...

  5. IOS网络多线程-GCD

    Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispat ...

  6. [网络]让局域网的电脑通过路由的公网ip可以被访问到的设置

    http://公网IP:服务端口/访问路径(http://110.16.166.135:8081/pra/unionpay/v_asyn_notify.jspx这个地址就会通过公网ip来访问到你的ip ...

  7. JS 单元测试

    JS单元测试,我工作时主要以mocha + chai 下面时具体的文档: mocha: https://mochajs.org/#asynchronous-code Chai: http://chai ...

  8. Ⅵ.spring的点点滴滴--自定义类型转换器

    承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...

  9. Supervisor的安装与使用入门

    Supervisor是一个进程管理工具,官方的说法 自己开发的应用往往也希望做到随系统自动启动, 而且启动之后最好还能方便的控制其停止/重启. 传统的做法是在 /etc/init.d/ 下建立启动脚本 ...

  10. Java开发中常见的危险信号(中)

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/12/common-red-flags-in-java-1 Dustin Ma ...