1. 程式人生 > >開啟LINUX防火牆後,FTP PASV不能正常登入問題

開啟LINUX防火牆後,FTP PASV不能正常登入問題

linux伺服器開啟防火牆,常規設定在防火牆配置檔案中新增21埠, FTP伺服器通過port能夠訪問,pasv不能訪問。而客戶端一般是採用pasv方式連線。解決方法如下: 首先要了解概念; FTP支援兩種模式,一種方式叫做Standard (也就是 PORT方式,主動方式),一種是 Passive (也就是PASV,被動方式)。 Standard模式 FTP的客戶端傳送 PORT 命令到FTP伺服器。Passive模式FTP的客戶端傳送 PASV命令到 FTP Server。 PORT 和 PASV的簡單區別如下: Port模式FTP 客戶端首先和FTP伺服器的TCP 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道上傳送PORT命令。 PORT命令包含了客戶端用什麼埠接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20埠連線至客戶端的指定埠傳送資料。 FTP server必須和客戶端建立一個新的連線用來傳送資料。 Passive模式在建立控制通道的時候和Standard模式類似,但建立連線後傳送的不是Port命令,而是Pasv命令。FTP伺服器收到 Pasv命令後,隨機開啟一個高階埠(埠號大於1024)並且通知客戶端在這個埠上傳送資料的請求,客戶端連線FTP伺服器此埠,然後FTP伺服器將通過這個埠進行資料的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連線。 因為IE瀏覽器預設使用的是Passive(被動)模式,所以要連線Linux伺服器大於1024埠,而防火牆並沒有開發1024以上的埠,導致登入ftp伺服器被防火牆阻止。 vsftp: 修改vsftpd.conf配置檔案讓它支援Passive(被動)模式 #vim /etc/vsftpd/vsftpd.conf 在最後一行新增如下內容: pasv_min_port=10050 (設定被動模式的埠範圍) pasv_max_port=10060(設定被動模式的埠範圍) pureftp: vi pure-ftpd.conf # 被動連線響應的埠範圍。- for firewalling. # PassivePortRange 10050 10060  在防火牆配置檔案iptables中新增埠 #vim /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10050:100060 -j ACCEPT 重啟服務使其生效 #service vsftpd rstart #service iptables restart