Ftp

vsftpd 錯誤:500 OOPS:vsf_sysutil_bind

  • December 15, 2020

我正在嘗試在 Windows 上使用 Filezilla 連接到執行 vsftpd 2.3.5 的 linux ec2 實例(也嘗試了 2.3.2 並獲得相同的結果),但伺服器一直以 500 OOPS 響應:vsf_sysutil_bind 然後出現一個次要錯誤,具體取決於關於我是使用主動模式還是被動模式(請參閱下面的日誌)。

幾天前,此設置執行良好。據我所知,伺服器的配置沒有任何變化,但現在您在連接後立即被拋出。我已經重新啟動了 vsftpd 但還沒有重新啟動伺服器本身。什麼可能導致這種行為,為什麼​​會突然出現,我該如何解決?

如果我使用主動模式,客戶端日誌如下:

...
Response:   230 Login successful.
Command:    OPTS UTF8 ON
Response:   200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PORT 192,168,1,101,250,178
Response:   200 PORT command successful. Consider using PASV.
Command:    LIST
Response:   500 OOPS: vsf_sysutil_bind
Error:  Failed to retrieve directory listing
Response:   500 OOPS: priv_sock_get_cmd
Error:  Connection closed by server

如果我使用被動模式連接,客戶端日誌會有些不同:

....
Response:   230 Login successful.
Command:    SYST
Response:   215 UNIX Type: L8
Command:    FEAT
Response:   211-Features:
Response:    EPRT
Response:    EPSV
Response:    MDTM
Response:    PASV
Response:    REST STREAM
Response:    SIZE
Response:    TVFS
Response:    UTF8
Response:   211 End
Command:    OPTS UTF8 ON
Response:   200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PASV
Response:   500 OOPS: vsf_sysutil_bind
Command:    PORT 192,168,1,101,249,253
Response:   500 OOPS: priv_sock_get_int
Error:  Failed to retrieve directory listing
Error:  Connection closed by server

無論哪種方式,vsftpd 日誌都只是說:

Tue Dec 27 23:32:18 2011 [pid 19875] CONNECT: Client "XXX.XXX.XXX.XXX"
Tue Dec 27 23:32:18 2011 [pid 19874] [username] OK LOGIN: Client "XXX.XXX.XXX.XXX"

我的 vsftpd.conf 是:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=900
ftpd_banner=Welcome to FTP
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=12000
pasv_max_port=12100
pasv_address=XXX.XXX.XXX.XXX
port_enable=YES
port_promiscuous=YES
user_config_dir=/etc/vsftpd/users

我最終擺脫了 vsftpd 並切換到proftd,它在主動和被動模式下都可以正常工作,而無需對伺服器的防火牆設置進行任何更改。我仍然不確定是什麼導致了這個問題,但如果它發生在你身上,改變 FTP 伺服器軟體可能就是答案。

在過去的幾天裡,我遇到了這個問題,起初我遵循安裝 proftpd 的唯一答案的路線。這並沒有像我希望的那樣成功,所以我嘗試了 pure-ftpd,失敗了我恢復到 vsftpd,為我解決的問題是增加被動埠的數量,我以前只允許範圍 10090:10100,只有10個埠。

從那以後,我為 vsftpd 允許更大範圍的埠,它解決了我的問題,當一次上傳包含 10 個文件的長文件列表時,我不再遇到該錯誤。

希望它對下次遇到此問題的任何人有所幫助。

引用自:https://serverfault.com/questions/344540