linux架设vsftpd后为什么始终无法连接?

记得那次,我在家用笔记本电脑连接公司的FTP服务器,突然发现文件无法上传,导致连接被切断。
我尝试了几次,但没有成功,所以我只好请教我的队友。
同事说被动FTP模式没设置好,让我修改配置文件。
我这样做了,重新启动服务器后问题就解决了。
不幸的是,艺术品真的很烦人,每一个小问题都必须仔细调查。
等等,还有别的事。
我突然想到,如果以后再遇到类似的问题怎么办?

ftp linux用不了

说白了,FTP在Linux系统下是不能使用的,而且比较复杂,因为可能的原因有很多。
我们先来说说最重要的事情。
该服务尚未开始。
例如,在我们去年工作的项目中,如果您没有安装或启动 FTP 服务(如 vsftpd),则不会使用它。
您可以使用命令 systemctl status vsftpd 检查服务状态。
如果没有启动使用systemctl start vsftpd来启动。
启动后使用systemctl status vsftpd验证服务是否正常运行。

另一件事是防火墙限制很常见。
例如,FTP 端口(通常为 2 1 )可能被防火墙阻止。
可以使用 iptables -l 查看规则;或者您可以使用 cat /etc/sysconfig/iptables 检查 FTP 端口是否打开。
如果没有,则需要添加权限规则。
很多人没有注意到这个事实,但它非常重要。

另一个重要细节是 SELinux 限制。
起初我以为FTP问题是配置引起的,后来发现不对劲。
有时 SELinux 会出现错误。
您可以使用 setenforce 0 暂时禁用 SELinux 进行测试。
如果 FTP 正常返回,则这是 SELinux 问题。
使用 getsebool ftpd_disable_trans 检查状态;然后使用setsebool ftpd_disable_trans=1 修改策略。
添加-P参数使其永久化。

最后,我想提醒大家一个容易的难点,那就是用户权限的问题。
确保登录的用户具有正确的 shell 设置并且未被 /etc/ftpusers 文件阻止。
匿名模式下,默认共享目录/var/ftp的权限需要允许写入。
您可以将所有者更改为ftp用户,以确保该用户有足够的权限进行文件操作。
日志分析也是一个很好的方法。
通过查看日志文件(例如/var/log/vsftpd.log或/var/log/xferlog)来获取具体的错误信息;您可以更准确地找到错误原因。
我认为值得一试。

linux下ftp 无法连接目标主机报421 service not available, remote server ha

嘿,这是我两年前给隔壁老王做的。
在他的小网站上,他使用FTP上传文件,但一连接就返回4 2 1 消息,说服务不可用,连接已关闭。

看到这里,我首先问老王,你用的是什么FTP软件?他说使用一个名为 FileZilla 的软件。
我让他先换个客户端试试,改成WinSCP。
嘿,他能够连接了!这表明问题可能出在 FileZilla 客户端上。
后来老王更换了它,问题就消失了。
你看,有时候事情就是这么简单。

当然,并非所有情况都是如此巧合。
还有一次,我遇到了公司里的一个年轻人。
他的服务器使用vsftpd。
连接时出现 4 2 1 我让他先检查服务是否开启,打开一个终端,systemctl vsftpd status 看到没有运行。
直接systemctl start vsftpd,启动一下,立刻就一切正常了。
您会看到,有时服务根本不起作用。

最困难的时刻是帮朋友购买Linux服务器。
服务器使用ProFTPD并启用SELinux。
升到4 2 1 了,纠结了半天,查了半天日志,tail -f /var/log/proftpd.log,也查不出原因。
后来我尝试了一下,发现用root登录就没有问题了。
我问他你平时是否以普通用户身份登录。
他是对的。
我说然后尝试将 /sbin/nologin 添加到该用户的 shell 中,或者尝试直接 chroot 进入他们的主目录。
添加后结果变得更好了!你看,SELinux 有时确实让人头疼。

所以你看到这个数字4 2 1 由于各种原因是不正确的。
检查客户端、服务器、网络、权限、SELinux,有时甚至检查用户配置。
没有万能的公式,一切都需要一步一步来。