CentOS中vsftpd的主动和被动方式

网址http://blog.csdn.net/nyunyuzhao/article/details/5734978,学习了。

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

PORT & PASV

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

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

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

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

使用FTP客户端的注意事项

请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端。

一、客户端只有内网IP,没有公网IP

从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。

二、客户端有公网IP,但安装了防火墙

如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开1024以上的高端端口。

三、常见的FTP客户端软件PORT方式与PASV方式的切换方法。

大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。

在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。

IE:

工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。如果找不到这个选项,请看 图片。

CuteFTP:

Edit -> Setting -> Connection -> Firewall -> “PASV Mode”

或File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”

FlashGet:

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

FlashFXP:

选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”

或站点管理 -> 对应站点 -> 选项 -> “使用被动模式”

或快速连接 -> 切换 -> “使用被动模式”

LeechFTP:

Option -> Firewall -> Do not Use

四、请尽量不要用IE作为FTP客户端

IE只是个很粗糙的FTP客户端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试的时候,强烈建议不要使用IE。

时间: 2024-10-13 08:37:36

CentOS中vsftpd的主动和被动方式的相关文章

Java Web:主动和被动方式检测安全的框架

对于某些敏感的系统例如支付.交易需要为其加固,有必要将可能的攻击情况考虑进来加以防范,于是有了这么一个简易的安全框架.在前辈的代码上( 详见 :http://blog.csdn.net/zhongweijian/article/details/8680737)我大幅度重构,更好地理解 Java Web 安全实施措施. 源代码在:http://git.oschina.net/sp42/ajaxjs/tree/master/ajaxjs-security?dir=1&filepath=ajaxjs-

PHP Cli FTP主被动方式的影响

某项目需要使用FTP上传文件.测试过程中,PHP在Cli模式下,FTP连接并传输很正常.但文件稍大便超时中断. 使用 Netstat -ano|findstr 'FTP服务器IP' 查看时,发现传输数据使用的是20端口,即表明默认使用了主动模式.此时,FTP服务器的20端口,会主动连接FTP客户端临时开启的端口传输数据.因为客户端一般有防火墙保护,所以导致传输不稳定或被终止. 此时,设置为被动方式的方法为: ftp_pasv($conn,TRUE); 这样速度与稳定性都提高很多.

cacti与nagios的 主动,被动监控

我一直比较赞同的是主动请求式的监控模式,主要原因是被动探测会给监控结点带来很大的压力,就Cacti而言,用Spine轮询,共35个设备,每分钟轮询一次,能吃掉我35%的CPU.相比之下,通过客户机主动发送请求给监控机的Ganglia,占用资源就非常小.一台监控机估计挂200台客户机监控不是问题.区别就在于,主动请求式是客户机把自己的监控信息主动发送给监控机,监控机只要接收这些信息处理即可.被动探测式是监控机把监控请求发送到客户机,客户机接到请求把需要的监控信息返回给监控结点.所以,被动探测式会给

7 zabbix主动、被动、trapper模式

参考blog: https://www.iyunv.com/thread-9683-1-1.html zabbix节点node架构搭建 1.如何修改每页显示字段 每页 10条数据 实质 修改的是数据库,所有的操作都会在数据库中生效 MariaDB [zabbix]> select * from users\G; 2.主动.被动.trapper 对于agent来说 被动 主动 类型type 还有其他的 3.主动模式 先full clone个模板 修改item 全选,批量修改 还有几个没有改变 模板

CentOS中Python pip包管理工具的安装和使用

Python有很多第三方的模块或包,要管理这些包,有很多方法.python的pip包管理工具,类似与CentOS中yum,使用该工具安装Python包非常方便. 从Python内部来说,pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.distribute是setuptools的取代(Setuptools包后期不再维护了),pip是easy_install的取代. pip的安装前需要setuptools 或者 distribute,如果你使用的是P

CentOS中vsftp安装与配置

1. 安装使用chkconfig --list来查看是否装有vsftpd服务:使用yum命令直接安装:yum -y install vsftpd然后为它创建日志文件:touch /var/log/vsftpd.log 2.建立ftp用户及主目录:    # mkdir /var/ftp    # useradd -d /var/ftp ftp 3. 配置vsftp服务编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务:#vi /etc/vsftpd/vsftpd.conf

CentOS中与网络相关的常用

CentOS中与网络相关的常用配置文件 1. 常见的网络配置文件 /etc/hosts           本地域名解析表,用于解析主机名.对应于win系统中的C:\Windows\System32\drivers\etc\hosts的文件    如果你有后端开发经验,相信你对此目录很熟悉 /etc/resolv.conf       域名服务器ip地址配置文件,通过NetworkManager可以自动生成该文件 /etc/sysconfig/network 配置所有网卡路由和主机信息 /etc

iOS 在类实现定义中声明成员变量的怪异方式

WebGL 规范(WebGL Specification) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的漂亮人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 看看下面的使用方法,几年前系统地看过 Objective-C 2.0 的官方文档和那本

CentOS 中使用yum出现的“UnicodeDecodeError: 'ascii' codec”问题解决方法

问题 新装了CentOS 6.5系统,打算使用yum安装程序是出现了例如以下错误: Loading mirror speeds from cached hostfile Traceback (most recent call last): File "/usr/bin/yum", line 29, in <module> yummain.user_main(sys.argv[1:], exit_code=True) File "/usr/share/yum-cli