FTP模式说明:shell
FTP是基于TCP的服务,使用2个端口,一个数据端口和一个命令端口(也可叫作控制端口)。windows
固定的命令端口:21浏览器
数据端口:(取决于链接模式)20或者>1024其它端口服务器
主动FTP并发
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)链接到FTP服务器的命令端口,也就是21端口。而后客户端开始监听端口N+1,并发送FTP命令"port N+1"到FTP服务器。接着服务器会从它本身的数据端口(20)链接到客户端指定的数据端口(N+1)。tcp
针对FTP服务器前面的防火墙来讲,必须容许如下通信才能支持主动方式FTP:工具
1. 任何端口到FTP服务器的21端口 (客户端初始化的链接 S<-C)spa 2. FTP服务器的21端口到大于1024的端口(服务器响应客户端的控制端口 S->C)ip 3. FTP服务器的20端口到大于1024的端口(服务器端初始化数据链接到客户端的数据端口 S->C)ci 4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口 S<-C) 总结: 命令链接:客户端>1024端口-> 服务器21端口 |
被动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端口
|
根据上面的基本描述,咱们能够知道。整改备份数据上传只能使用主动模式链接才能成功!
如下为各客户端默认链接方式说明及主动模式更改方法。
各客户端默认链接方式说明: 一、 IE浏览器访问方式-------à被动模式 二、 Linux字符链接------------à被动模式 三、 Windows字符链接-------à主动模式 IE更改FTP链接方式为主动方法: 工具---Internet选项---高级---使用被动FTP(去掉勾选)-------OK Linux下更改ftp链接方式为主动: 当ftp正常链接后输入:passive 将passive 模式关闭便可。 事例以下:
|
因为整个备份计划所有由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 |
重启防火墙生效!!