我需要在公司内部网络内设置一个临时 FTP 服务器,并在其中一台服务器上安装了一个全新的虚拟 CentOS。我可以通过 ssh 访问服务器,安装并配置 vsFTPd。然后事情变得有点复杂,因为我无法从我的机器 FTP 到服务器。我不断得到提示,这ftp: connect: No route to host
表明存在一些连接问题。然后我检查了 vsFTPd 是否正在运行。
经过谷歌搜索后,我发现这可能是由于被动连接导致的问题,并按照接受的答案进行操作这个问题这里是 ServerFault。
这就给我带来了一个问题,那就是去iptables
上班而不是firewalld
。按照以下答案这个问题在 StackOverflow 上,我也解决了这个问题。最后这个问题及其答案到
“跟踪 ftp 连接,iptables 将在必要时允许它们。”
仍然无济于事。我无法通过 ftp 协议访问服务器。但是我可以,ftp localhost
而且工作正常。作为最后的手段,我nslookup
在服务器端和客户端都做了 s。它们似乎没问题。我是否遗漏了一些显而易见的东西,或者这里有什么可疑之处?
附言:我试图找到 vsftpd.log 文件,但似乎找不到它,是不是出于某种原因它有另一个名字?另外值得一提的是,它journalctl
不包含任何有关被拒绝连接的信息。
答案1
值得检查一下 SELinux 设置(http://wiki.centos.org/HowTos/SELinux)。
几年前,我尝试在 CentOS 5.5 上设置 vsFTP(恐怕我记不清具体版本了),但遇到了很多困难。我不再有权访问相关机器,但我发现默认的 SELinux 策略是阻止 vsFTP 本身或它正在访问的文件挂载。它出现的唯一地方是 SELinux 日志本身。vsFTP 日志中的消息并没有明显地让我知道是 SELinux 阻止了它。