FTP支持兩種模式,一種方式叫作Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。linux
主動模式下FTP 客戶端首先和FTP服務器的TCP 21端口創建鏈接,經過這個通道發送命令,客戶端須要接收數據的時候在這個通道上發送PORT命令,PORT命令包含了客戶端用什麼端口接收數據,在傳送數據的時候,服務器端經過本身的TCP 20端口鏈接至客戶端的指定端口發送數據。vim
被動模式(Passive)模式在創建控制通道的時候和Standard模式相似,但創建鏈接後發送的不是Port命令,而是Pasv命令,FTP服務器收到Pasv命令後,隨機打開一個高端端口(端口號大於1024)而且通知客戶端在這個端口上傳送數據的請求,客戶端鏈接FTP服務器此端口,而後FTP服務器將經過這個端口進行數據的傳送,這個時候FTP server再也不須要創建一個新的和客戶端之間的鏈接。服務器
由於大部分ftp客戶端軟件都是被動模式,因此就只介紹被動模式tcp
一、設置被動模式打開的配置文件ide
#vim /etc/vsftpd/vsftpd.conf
添加或修改如下內容spa
connect_from_port_10021=YES //這裏的10021端口,你能夠修改成你喜歡的 pasv_min_port= //設置被動模式最小端口數,能夠不用那麼大,但數值最好大些(至少也大於1024) pasv_max_port= //設置被動模式最大端口數
二、而後更改防火策略rest
#vim /etc/sysconfig/iptables
添加如下防火規則orm
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10021 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888:8899 -j ACCEPTserver
三、最後重啓服務使防火規則生效ip
#service vsftpd restart #service iptables restart
到這裏咱們的vsftp正式修改端口到10021
經過 ftp://IP:10021 來指定端口訪問,固然,若是你發現selinux仍是會阻止ftp那就先設置爲臨時關閉吧!(#setenforce 0)