Linux操作系统下FTP搭建常见错误汇总

1.Linux实例通过vsftp上传文件报“553 Could not create file”错误:

解决方案
执行如下命令,确认服务器磁盘空间满了,导致文件无法上传会报该错误。

 df -h

系统显示类似如下。在这里插入图片描述
执行如下命令,确认FTP家目录没有写的权限。

ls -l /home/ftp

在这里插入图片描述
具体以自己的ftp目录为主
执行如下命令,加上写的权限即可。

chmod +w /home/ftp

执行如下命令,确认权限添加成功。

ls -l /home/zhengbo

然后再进行文件上传测试。

2.服务器FTP连接报错421

报错截图如下
在这里插入图片描述
原因:同时连接该ftp的人数过多,一般ftp网站都有同时登陆人数的上限,超过该上限就会出现421错误。

问题解决:
在ftp软件中,把重试次数改为999,重试间隔改为60秒,一般几分钟到半小时就会连上,要注意的是,有些网站有连接时间的设定,连上后,超过一定时间不下载,就会自动断开,所以要经常去看看有没有连上。
在这里插入图片描述

3.Linux Vsftpd主被动模式下iptables设置

FTP连接包括:

(1)、一个控制连接:这个连接用于传递客户端的命令和服务器端对命令的响应,比如:登录使用的用户名与密码、变更目录命令CWD、PUT 、GET文件。它使用TCP 21端口。

(2)、多个数据连接:这些连接用于传输文件和其它数据,比如:目录列表命令LIST。使用端口依据FTP服务端工作模式决定。

vsftpd主动与被动模式的区别在于PORT命令的发出方,或者说数据连接的主动发起方。

主动模式下,由客户端通过PORT告知服务端自己的监听端口,然后服务端通过自己定义的主动模式下的端口(默认为20)发起到客户端宣告的端口的连接。

被动模式下,服务端在接到客户端的PASV命令后,通过PORT发送端口号给客户端,客户端连接这个端口进行数据传输。

1、主动模式下iptables设置

这个模式下,因为是客户端需要连接服务端的21端口,同时服务端的20端口主动外联客户端的端口,所以要确保INPUT方向的21允许访问,同时OUTPUT方向的20允许通过(通常OUTPUT默认ACCEPT,所以这个不用设置。如果为DROP,则需要添加外出方向的20访问规则),以及创建的RELATED与ESTABLISHED规则。具体如下:

iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

2、被动模式下iptables设置

针对vsftpd的设置可以使用不同策略

(1)、vsftpd未指定被动模式的端口范围

在/etc/sysconfig/iptables-config中添加:IPTABLES_MODULES=“ip_conntrack_ftp”,加载ip_conntrack_ftp模块以过滤传输与ftp控制连接相关的数据连接中经过的数据。修改设置后使用service iptables restart使新的模块加载。同时iptables需要允许访问21端口。

iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

(2)、vsftpd指定被动模式的端口范围

也可以使用(1)中的方案,或者可以在iptables的INPUT链中放行对指定范围端口的访问
比如:
在/etc/vsftpd/vsftpd.conf中设置:

pasv_enable=YES

pasv_min_port=6666

pasv_max_port=8888

在iptables中开放这段端口:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 6666:8888 -j ACCEPT或 iptables -A INPUT -p tcp -m multiport 6666:8888 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

猜你喜欢

转载自blog.csdn.net/qq_17030783/article/details/99682725