阿里雲vsftp錯誤,
阿新 • • 發佈:2018-12-18
使用阿里雲搭建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號埠。
這個方法比網上的改客戶端為主動模式好使。