• ftp主动模式和被动模式


    FTP模式说明:

    FTP是基于TCP的服务,使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。

    固定的命令端口:21

    数据端口:(取决于连接模式)20或者>1024其它端口

    主动FTP

    主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令"port N+1"到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

    针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:

    1. 任何端口到FTP服务器的21端口 (客户端初始化的连接 S<-C)

    2. FTP服务器的21端口到大于1024的端口(服务器响应客户端的控制端口 S->C)

    3. FTP服务器的20端口到大于1024的端口(服务器端初始化数据连接到客户端的数据端口 S->C)

    4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口 S<-C)

    总结:

    命令连接:客户端>1024端口-> 服务器21端口
    数据连接:客户端>1024端口<- 服务器20端口

    被动FTP

    为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。

    在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

    对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:

    1. 从任何端口到服务器的21端口 (客户端初始化的连接 S<-C)

    2. 服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接 S->C)

    3. 从任何端口到服务器的大于1024端口 (入;客户端初始化数据连接到服务器指定的任意端口 S<-C)

    4. 服务器的大于1024端口到远程的大于1024的端口(出;服务器发送ACK响应和数据到客户端的数据端口 S->C)

    总结:

    命令连接:客户端>1024端口-> 服务器21端口
    数据连接:客户端>1024端口-> 服务器>1024端口

    根据上面的基本描述,我们可以知道。整改备份数据上传只能使用主动模式连接才能成功!

    以下为各客户端默认连接方式说明及主动模式更改方法

    各客户端默认连接方式说明:

    1、 IE浏览器访问方式-------à被动模式

    2、 Linux字符连接------------à被动模式

    3、 Windows字符连接-------à主动模式

    IE更改FTP连接方式为主动方法:

    工具---Internet选项---高级---使用被动FTP(去掉勾选)-------OK

    Linux下更改ftp连接方式为主动:

    当ftp正常连接后输入:passive 将passive 模式关闭即可。

    事例如下:

    Remote system type is Windows_NT.

    ftp> ls

    227 Entering Passive Mode (192,168,6,23,4,10).

    ftp: connect: Connection refused

    ftp> passive

    Passive mode off.

    ftp> ls

    200 PORT command successful.

    由于整个备份计划全部由shell完成。故windows下面可不做任何更改。Linux下面则需做少许改动。

    实际操作如下:

    更改shell上传部分脚本如下:

    ftp -inv <<EOF

    open 192.168.x.xx

    user username password

    passive

    binary

    cd bakdir

    mput ${backname}*

    mdelete ${backname}${olddate}.tgz

    EOF

    更改防火墙策略。增加以下内容:

    # vi /etc/sysconfig/iptables

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --sport 20 -j ACCEPT

    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --sport 21 -j ACCEPT

    重启防火墙生效!!

  • 相关阅读:
    Python--Event
    Java生鲜电商平台-搭建个性化推荐系统的设计思路(小程序/APP)
    Java生鲜电商平台-生鲜电商中微服务体系中的分层设计和领域划分?(小程序/APP)
    Java生鲜电商平台-生鲜电商中分销系统的实践与思考总结?(小程序/APP)
    Java生鲜电商平台-生鲜电商用户画像的架构与系统设计?(小程序/APP)
    Java生鲜电商平台-生鲜电商B端用户会员系统设计?(小程序/APP)
    vSphere Client上安装虚拟机工具VMware Tools
    maven项目pom.xml报错Failure to transfer org.apacheXXX from/to XXX
    一个因为URLEncoder和URLDecoder引发的bug
    Elasticsearch中文分词+全文搜索
  • 原文地址:https://www.cnblogs.com/randomlee/p/8882064.html
Copyright © 2020-2023  润新知