1. 程式人生 > >阿里雲vsftp錯誤,

阿里雲vsftp錯誤,

使用阿里雲搭建vsftp伺服器報錯:

500 Illegal PORT command.
425 Use PORT or PASV first

這種問題是由ftp的主被動問題引起的。

FTP是File Transfer Protocol(檔案傳輸協議)的縮寫,用來在兩臺計算機之間互相傳送檔案。相比於HTTP,FTP協議要複雜得多。複雜的原因,是因為FTP協議要用到兩個TCP連線,一個是命令鏈路,用來在FTP客戶端與伺服器之間傳遞命令;另一個是資料鏈路,用來上傳或下載資料。

FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。

PORT(主動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,客戶端在命令鏈路上用PORT命令告訴伺服器:“我打開了XXXX埠,你過來連線我”。於是伺服器從20埠向客戶端的XXXX埠傳送連線請求,建立一條資料鏈路來傳送資料。

PASV(被動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,伺服器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX埠,你過來連線我”。於是客戶端向伺服器的XXXX埠傳送連線請求,建立一條資料鏈路來傳送資料。 概括:

阿里雲裡經典網路裡有問題。需要改為被動模式。 修改vsftp的配置主要是以下幾條。

    	listen=YES # 監聽預設21埠
        write_enable=YES # 可寫許可權
        pasv_enable=YES  # 啟用pasv模式
        pasv_min_port=30000 # 設定pasv模式中的可用埠範圍(開始)
        pasv_max_port=30100 # 設定pasv模式中的可用埠範圍(結束)
        pasv_address=自己的IP地址。 # 設定pasv模式中的外網IP
        seccomp_sandbox=NO # 關閉 seccomp 功能

然後在阿里雲的安全組裡放行下行21號和30000~30100號埠。

這個方法比網上的改客戶端為主動模式好使。