今天心血来潮,研究了下ftp协议,在linux搭建了一个ftp服务器,主要是研究下ftp的主动和被动模式。简单的说下ftp安装配置吧ftp服务器:192.168.3.14 linux vsftpdftp客户端:windows 7检查是否有安装ftp没有安装直接运行yum install vsftpd -y修改ftp配置文件vim /etc/vsftpd/vsftpd.confchroot_local_user=YES——是否将所有用户限制在主目录,YES为启用anonymous_enable=NO ——不允许匿名进行访问chroot_list_enable=YES——是否启动限制用户的名单 YES为启用chroot_list_file=/etc/vsftpd/chroot_list——是否限制在主目录下的用户名单做了以上修改保存在/etc/vsftpd目录下创建用户认证文件chroot_list并添加本地系统用户进行ftp认证[root@jw vsftpd]# cat chroot_list ——添加本地操作系统用户进行认证一行一个帐号ftpuserftptest修改密码:passwd ftptest 密码为:niceman重启服务并查看21端口是否侦听使用lsof查看端口是否侦听现在开始访问ftp;注意,访问前请关闭selinux或暂时关闭防火墙,具体深入的ftp服务器配置,请自行百度查看文档,不再赘述。安装wiresharkyum install wireshark -y抓包命令:tshark -ni eth0 -R "ftp"可以发现ftp是明文传输的。tshark -ni eth0 -R "tcp.dstport eq 21"——抓包控制端口接下来说说FTP的两种模式FTP的主动模式主动FTP: 命令连接:客户端大于1023端口 ——>服务器 21端口 数据连接:客户端 大于1023端口 <——服务器 20端口客户端使用大于1023的端口建立链接服务器侦听的FTP21命令端口,服务器使用FTP20的数据端口主动链接客户端开放一个大于1023的端口被动FTP: 命令连接:客户端 大于1023端口 ——> 服务器 21端口 数据连接:客户端 大于1023端口 ——> 服务器 >1023端口客户端仍然使用大于1023的端口链接服务器侦听的FTP21命令控制端口,服务器再开启大于1023的随机端口给客户端进行数据传输,被动模式服务器不再使用20数据端口进行传输。注意:windows使用IE或者资源管理器打开输入地址ftp://ip访问,是否主动或被动模式取决于这里的配置,看截图;IE——Internet选项——高级