zoukankan      html  css  js  c++  java
  • 记一次ftp服务器错误 centOS 6.4 vsftpd 500 illegal port command

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

    以下是操作过程:

    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

  • 相关阅读:
    AtCoder Beginner Contest 205
    Codeforces Round #725 (Div. 3)
    Educational Codeforces Round 110 (Rated for Div. 2)【A
    Codeforces Round #722 (Div. 2)
    AtCoder Beginner Contest 203(Sponsored by Panasonic)
    AISing Programming Contest 2021(AtCoder Beginner Contest 202)
    PTA 520 钻石争霸赛 2021
    Educational Codeforces Round 109 (Rated for Div. 2)【ABCD】
    AtCoder Beginner Contest 200 E
    Educational Codeforces Round 108 (Rated for Div. 2)【ABCD】
  • 原文地址:https://www.cnblogs.com/move22/p/5993100.html
Copyright © 2011-2022 走看看