FTP主動模式上傳檔案時返回"ftp: accept: Resource temporarily unavailable"
阿新 • • 發佈:2022-05-09
FTP主動模式上傳檔案時返回
Passive mode off
ftp: accept: Resource temporarily unavailable
這個問題要從ftp的2種模式說起
PORT & PASV FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。 PORT(主動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,客戶端在命令鏈路上用PORT命令告訴伺服器:“我打開了XXXX埠,你過來連線我”。於是伺服器從20埠向客戶端的XXXX埠傳送連線請求,建立一條資料鏈路來傳送資料。 PASV(被動)方式的連線過程是:客戶端向伺服器的FTP埠(預設是21)傳送連線請求,伺服器接受連線,建立一條命令鏈路。當需要傳送資料時,伺服器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX埠,你過來連線我”。於是客戶端向伺服器的XXXX埠傳送連線請求,建立一條資料鏈路來傳送資料。
解決辦法
1,繼續使用PORT模式,那麼客戶端就需要放開FTP伺服器的IP(因為客戶端到底開放多少埠去跟伺服器連線也不知道.當然如果客戶端機器沒開啟防火牆就不會有這個問題.)
firewall-cmd --add-rich-rule="rule family="ipv4" source address="1.2.3.4" accept"
firewall-cmd --reload
firewall-cmd --list-all
2,vsftpd,需新增:pasv_address=公網IP
listen=YES #指定被動模式時的公網IP地址時只能監聽在IPv4地址 listen_ipv6=NO #與listen衝突,預設監聽IPv6地址,當監聽在IPv4時IPv6必須禁用,否則vsftpd.service將無法啟動 pasv_enable=YES pasv_min_port=12000 #ftp服務端也要放開對應範圍埠 pasv_max_port=12100 pasv_address=1.2.3.4 #指定被動模式時的公網IP地址