現象:用戶反饋ftp無法登陸,ssh登陸是正常的,在登陸ftp的時候提示錯誤:連接接受發送的數據確認失敗,新建ftp站點同樣有提示錯誤:服務器端接口異常,ftp站點添加失敗。
1.解決方案1
分析過程及解決方案:我們入機器後查看,確認是/etc/vsftpd/vsftpd.conf,用戶主動模式和被動模式設置錯誤導致。
在/etc/vsftpd/vsftpd.conf文件裡用戶的源文件是這樣的:
listen=YES
anonymous_enable=NO
use_localtime=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
idle_session_timeout=180
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to www.net.cn FTP service.
chroot_list_enable=YES
chroot_list_file=/etc/ftpchroot
ls_recurse_enable=YES
pam_service_name=vsftpd
userlist_enable=YES
log_ftp_protocol=YES
max_per_ip=3
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000
設置出錯的原因分析:
在上述/etc/vsftpd/vsftpd.conf文件中connect_from_port_20=YES 是 當主動模式開啟的時候,是否啟用默認的20端口監聽的意思
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000這個是用被動模式進行設置
被動模式正確設置為:
PASV_enable=YES 開啟被動模式
PASV_min_port=%number% 被動模式最低端口
PASV_max_port=%number% 被動模式最高端口
用戶的被動模式的端口最低和最高都是30000,所有pasv_max_port=30000 pasv_min_port=30000是配置錯誤的。
2.解決方案:
1)我們將connect_from_port_20=YES這話主動模式的注釋掉
2)修改被動模式配置
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000
改為
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=25000
3)重啟vsftp後可以登錄。
3.關於ftp的主動模式和被動模式設置可以參考http://zhidao.baidu.com/question/279862735.html