FTP的兩種主動模式和被動模式

   參考:https://blog.csdn.net/xqhrs232/article/details/54633006python

     https://blog.csdn.net/yuanhangq220/article/details/52793892安全

  一,主動模式服務器

  PORT中文稱爲主動模式,工做的原理: FTP客戶端鏈接到FTP服務器的21端口,發送用戶名和密碼登陸,登陸成功後要list列表或者讀取數據時,客戶端隨機開放一個端口(1024以上), 發送 PORT命令到FTP服務器,告訴服務器客戶端採用主動模式並開放端口;FTP服務器收到PORT主動模式命令和端口號後,經過服務器的20端口和客戶端 開放的端口鏈接,發送數據,原理以下圖:.net

 

  二,被動模式3d

  PASV是Passive的縮寫,中文成爲被動模式,工做原理:FTP 客戶端鏈接到FTP服務器的21端口,發送用戶名和密碼登陸,登陸成功後要list列表或者讀取數據時,發送PASV命令到FTP服務器, 服務器在本地隨機開放一個端口(1024以上),而後把開放的端口告訴客戶端, 客戶端再鏈接到服務器開放的端口進行數據傳輸,原理以下圖:code

 

  

  3、兩種模式的比較blog

     從上面的運行原來看到,主動模式和被動模式的不一樣簡單概述爲: 主動模式傳送數據時是「服務器」鏈接到「客戶端」的端口;被動模式傳送數據是「客戶端」鏈接到「服務器」的端口。class

    主動模式須要客戶端必須開放端口給服務器,不少客戶端都是在防火牆內,開放端口給FTP服務器訪問比較困難。登錄

    被動模式只須要服務器端開放端口給客戶端鏈接就好了。原理

 

  vsftp開啓主動被動模式

  1.  開啓被動模式的配置:
   connect_from_port_20=NO(默認爲YES) #設置是否容許主動模式
   pasv_enable=YES(默認爲YES) #設置是否容許被動模式
   pasv_min_port=50000(default:0(use any port))
   pasv_max_port=60000(default:0(use any port))
  2.  開啓主動模式的配置:
   connect_from_port_20=YES
   pasv_enable=NO

 

  vsftp默認模式爲被動模式,假如vsftp搭建在雲服務器須要開啓一個範圍很大的端口給客戶端,不安全,能夠修改爲強制主動模式而後對外只開放21端口便可

  客戶端能夠直接修改鏈接模式爲主動模式也能夠鏈接ftp

 

 

  在vsftp服務器端強制開啓爲主動模式可能會致使一些程序沒法鏈接ftp還須要保持原有的被動模式,可是被動默認是隨機產生端口通信,服務器端又不可能無限開啓端口,能夠保持被動模式配置,把被動模式開啓的端口範圍限制在必定端口範圍內,而後服務器只須要對外開啓這幾個端口則可,修改配置文件添加如下

pasv_enable=YES                  #強制開啓爲被動模式,默認也爲被動模式
pasv_min_port=60000           #被動模式開啓的最小隨機端口
pasv_max_port=60100           #被動模式開啓的最大隨機端口

  這樣設置就能夠在服務器至對外開啓21 60000-601000端口了

相關文章
相關標籤/搜索