登陆FTP后,直接使用另外一台Linux服务器来连接ftp, 使用ls 就一直报错:
查询了一下,说是被动模式的问题,按照设置搞了一下,还是一直无法成功,不知道什么情况,用filezilla工具又是可以正常使用的。 在使用另外一台Linux服务器用ftp命令连接时,过程如下:
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode off.
ftp> ls
500 Illegal PORT command.
ftp>
具体vsftpd的配置如下:
local_enable=YES
write_enable=YES
allow_writeable_chroot=YES
chroot_local_user=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
chown_uploads=NO
xferlog_std_format=YES
nopriv_user=vsftpd
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
chroot_list_enable=NO
ls_recurse_enable=NO
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_address=47.99.69.84
pasv_max_port=30099
pasv_min_port=30001
还是一直没处理好,求助各位
遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到FTP被动模式连接问题时,确保你的vsftpd配置正确无误是非常关键的。根据你提供的信息,这里有几个可能的问题点和解决建议:
pasv_enable: 你已经设置为YES,这是正确的。
pasv_address: 你设置了具体的IP地址47.99.69.84
。请确认这个IP是你的服务器的公网IP,并且从外部网络可以访问到这些端口。如果服务器位于阿里云上,请确保安全组规则允许了被动模式使用的端口范围(30001-30099)的入站流量。
pasv_max_port 和 pasv_min_port: 你已经指定了一个范围,这很好,但请确保这些端口没有被其他服务占用,并且在防火墙和安全组中都已开放。
被动模式命令错误: 你在FTP命令行中使用了 passive
命令,它实际上关闭了被动模式。你应该使用 passive on
或直接 pasv
来启用被动模式。
网络环境与路由: 确保两台服务器之间的网络路径没有阻止FTP数据连接。有时候,企业或云服务商的网络策略可能会阻拦这类连接。
DNS解析问题: 如果pasv_address使用的是域名而不是IP,请确保该域名能正确解析到你的服务器IP,并且所有涉及的服务器都能正确解析这个域名。
检查日志: 查看vsftpd的日志文件,通常位于/var/log/vsftpd.log
或由xferlog_file
指定的位置,以获取更详细的错误信息。
针对你的具体情况,你可以尝试以下步骤来进一步排查和解决问题:
pasv on
命令确保被动模式开启。netstat -tuln
检查服务器是否真的监听了指定的被动模式端口。如果以上步骤都无法解决问题,考虑完全禁用防火墙进行测试(仅用于诊断目的,完成后应立即恢复),以排除网络策略干扰的可能性。同时,也可以尝试使用Wireshark等工具抓包,分析FTP会话过程中的网络交互,以便更深入地理解问题所在。