可能原因:服务器地址/IP错误、端口不正确(FTP默认21、SFTP默认22)、FTP/SFTP服务未运行、防火墙阻止连接。
解决方法:
ping命令检查服务器地址是否可达;sudo systemctl status ssh(SFTP)或sudo systemctl status vsftpd(FTP)检查服务状态,未运行则用sudo systemctl start ssh启动;iptables添加-A INPUT -p tcp --dport 21 -j ACCEPT(FTP)、-A INPUT -p tcp --dport 22 -j ACCEPT(SFTP),或firewalld运行sudo firewall-cmd --permanent --add-service=ftp --add-service=ssh && sudo firewall-cmd --reload。可能原因:输入的用户名或密码有误、服务器禁止该用户登录(如/etc/ssh/sshd_config中DenyUsers设置)。
解决方法:
su - 用户名测试用户是否能正常登录;sudo vi /etc/ssh/sshd_config,找到PasswordAuthentication no改为yes,保存后重启SSH服务sudo systemctl restart ssh。可能原因:FileZilla与服务器端字符编码不一致(如服务器用UTF-8,客户端用GBK)。
解决方法:
编辑→设置→传输→文件名编码,选择与服务器一致的编码(推荐UTF-8);local_encoding设置为UTF-8)。可能原因:网络带宽不足、未启用被动模式(PASV)、防火墙阻止被动模式端口范围。
解决方法:
iperf3测试带宽);编辑→设置→传输→被动模式设置,勾选“使用被动模式连接”;iptables添加-A INPUT -p tcp --dport 60000:60020 -j ACCEPT,或firewalld运行sudo firewall-cmd --permanent --add-port=60000-60020/tcp && sudo firewall-cmd --reload。可能原因:FTP用户对目标目录没有读写权限、目标目录不存在。
解决方法:
ls -ld /path/to/directory,若用户无权限,运行sudo chown -R 用户名:组名 /path/to/directory(修改所有者)或sudo chmod -R 755 /path/to/directory(设置读写执行权限);mkdir -p /path/to/directory创建。可能原因:SSH服务未运行、防火墙阻止SSH(22端口)、sshd_config配置错误(如PasswordAuthentication no)。
解决方法:
sudo systemctl status ssh检查SSH服务状态,未运行则启动;sudo vi /etc/ssh/sshd_config,确保PasswordAuthentication yes(允许密码登录),Port 22(端口正确),保存后重启SSH服务。可能原因:服务器未开启被动模式、被动模式端口范围未放行、vsftpd配置错误。
解决方法:
sudo vi /etc/vsftpd/vsftpd.conf,确保pasv_enable=YES(开启被动模式)、pasv_min_port=60000(最小端口)、pasv_max_port=60020(最大端口);sudo systemctl restart vsftpd。