VSFTP服務搭建及FTP併發的核心理解
踩了挺多的坑,然後才知道ftp實現併發靠的就是開多少個埠。2個使用者連線伺服器,伺服器就開2個埠。10個使用者連線,伺服器就開10個埠。
先說最核心的內容:
PORT實現併發的原理是:客戶端埠1對1。因為主動模式是在客戶端上面開放一個數據埠,然後伺服器自己隨便開N個埠去連線N個客戶端。
PASV實現併發的原理是:伺服器埠1對多。因為被動模式是在伺服器上面開放N個數據埠,然後客戶端自己隨便開1個埠去連線伺服器。
再說下自己的需求:我的客戶是NAT使用者,也就是共享IP的使用者,所以不能選擇主動模式。但是我又不能放開太多的埠,使用者大概1000臺左右,放開1000個埠不太行的通,因為有的客戶在防火牆裡把埠管制的超級嚴格。但實現併發靠的又是MIN~MAX的埠配置,所以FTP協議本身並不合適。現在也很無奈,想用FTP這種東西,它的內部併發靠的卻是埠數,沒辦法,只能讓防火牆上多放開些埠先湊合著用了,暫時沒找到更合適方案。不介意防火牆放開埠數,可以放心用FTP進行傳輸。
配置細節:
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO
local_umask=022
listen_port=21
connect_from_port_20=NO
tcp_wrappers=NO
未尾新增:
pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60000
pasv_promiscuous=YES
······················································
編輯/etc/vsftpd.user_list寫入白名單使用者infogoftp
可用防火牆驗證埠是否有效
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 60000 -j ACCEPT