• ftp的主动模式active mode和被动模式 passive mode的配置和区别


    ftp的主动模式active mode和被动模式 passive mode的配置和区别

    本文主要记录的是在linux上的区别,弄了一整天才整明白区别快哭了

    ftp模式分为主动模式(active mode)和被动模式(passive mode),ftp是tcp连接,所以要进行三次握手

    1. active和passive模式的配置:

    在命令行输入vim /etc/vsftpd/vsftpd.conf:

    1> active mode:

    pasv_enable=NO     (passive模式关闭)
    pasv_min_port=3000
    pasv_max_port=4000
    port_enable=YES    (active模式开启)
    connect_from_port_20=YES  (即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。)

    2>passive mode:

    pasv_enable=YES
    pasv_min_port=3000  
    pasv_max_port=4000

    设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意(1024 – 65535端口)。默认值为0。把端口范围设在比较高的一段范围内,比如3000-4000。

    在linux上,如果不配置pasv_enable=NO,默认是passive模式。

    2.  service vsftpd restart 重启ftp服务;

    3.  通过命令行连接ftp server:

    1> active mode:   ftp -A 3.3.3.3   

    active模式连接ftp server时一定要加-A

    2> passive mode: 可以直接使用  ftp 3.3.3.3   也可以使用 ftp -p 3.3.3.3

    4.   ftp client: 192.168.168.169   ftp server: 3.3.3.3

    1> active 模式:

         在active模式下,如下图抓的包中,在命令连接部分(ftp类型的包),client端使用的端口是36439,这个端口是大于1024的任意端口,ftp server端用的端口是21:

    如下图,在active模式下,要传输数据时,ftp client通过第23个包通过21号端口告诉server数据传输联系端口43187(大于1024的任意端口),并进行listen,server端用端口20主动和client端43187建立数据传输通道,并传输数据(第30,32,34个包)。这里是server知道了client端的数据通道监听端口后,主动建立了数据传输通道,所以是主动模式。

    在active模式下,数据传输部分(FTP-DATA类型的包),ftp-server端用的端口是20,默认情况下,FTP PORT主动模式进行数据传输时使用20端口,ftp-client端用的是43187端口,是上一步client发给server的数据传输监听端口。

    总结:active 模式

    2> passive 模式:

         在passive 模式下,如下图所抓的包中,在命令部分(ftp类型的包),client端使用的端口是36434,这个端口是大于1024的任意端口,ftp server用的端口是21.

    在passive模式下,如下图的第28个包,是由client端发起PASV(passive mode)的数据传输通道连接请求,所以为被动模式。

    而在passive模式的数据传输部分(FTP-DATA类型的包),ftp-server端用的端口是3542,这个端口是在/etc/vsftpd/vsftpd.conf文件中passive模式下设置的端口范围(3000-4000,可以自己设置)中任意选的一个端口,ftp-client端用的是53001端口,是大于1024的任意一个端口。

    总结:

    passive模式

  • 相关阅读:
    springboot笔记
    SpringBoot
    SpringBoot整合JPA
    Docker
    SpringMVC学习04:异常处理和拦截器
    SpringMVC学习03:文件上传
    SpringMVC学习02:响应数据和结果视图
    Mybatis学习04
    【java基础】初步理解面向对象、类、对象
    【Java基础】方法的重载
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/9298727.html
Copyright © 2020-2023  润新知