首先確認vsftpd服務是否已啟動并正常運行。使用以下命令查看服務狀態:
sudo systemctl status vsftpd
若服務未啟動,執行以下命令啟動:
sudo systemctl start vsftpd
為確保服務開機自啟,運行:
sudo systemctl enable vsftpd
確??蛻舳伺c服務器之間的網絡連接正常。使用ping
命令測試服務器IP可達性:
ping <服務器IP地址>
若ping
不通,需排查網絡線路、DNS解析或服務器網絡配置問題。
FTP默認使用21端口(控制連接),若服務器啟用了防火墻(如iptables
或UFW
),需開放該端口:
sudo ufw allow 21/tcp
sudo ufw reload
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables.rules
若使用被動模式(PASV),還需開放動態數據端口范圍(需在vsftpd.conf
中配置pasv_min_port
和pasv_max_port
),并在防火墻中放行該端口段。
編輯/etc/vsftpd.conf
文件,確保關鍵配置正確(以允許本地用戶登錄為例):
listen=YES # 啟用IPv4監聽
listen_ipv6=NO # 禁用IPv6(避免沖突)
local_enable=YES # 允許本地用戶登錄
write_enable=YES # 允許用戶上傳文件
chroot_local_user=YES # 限制用戶只能訪問其主目錄(增強安全性)
allow_writeable_chroot=YES # 允許chroot目錄可寫(避免上傳失?。?/span>
修改配置后,重啟vsftpd服務使更改生效:
sudo systemctl restart vsftpd
/etc/ftpusers
文件,若目標用戶在該文件中,則無法登錄(需注釋或刪除對應行)。755
,用戶對目錄有讀寫權限):chmod 755 /home/username
chown username:username /home/username
若使用被動模式連接時出現“連接超時”或“無法建立數據連接”,需調整vsftpd配置:
pasv_enable=YES # 啟用被動模式
pasv_min_port=60000 # 設置被動模式最小端口(根據需求調整)
pasv_max_port=61000 # 設置被動模式最大端口
pasv_address=<服務器公網IP> # 若服務器在NAT后,需指定公網IP
同時,需在防火墻中放行上述端口范圍(如60000-61000
),并確保路由器/安全組配置了NAT穿透(將外部請求轉發至服務器IP)。
若以上步驟無法解決問題,可通過vsftpd日志獲取詳細錯誤信息:
tail -f /var/log/vsftpd.log # 實時查看日志
或使用journalctl查看系統日志:
sudo journalctl -u vsftpd -f
根據日志中的錯誤提示(如“530 Login incorrect”“553 Could not create file”)進一步排查。
若使用舊版本vsftpd,可能存在已知bug,建議更新至最新版本:
sudo apt update
sudo apt upgrade vsftpd
更新后重啟服務:
sudo systemctl restart vsftpd