无法从另一个服务器ftp-php连接到服务器


Cannot connect to server from another server ftp php

我使用两台服务器,一台是生产服务器,另一台是资源服务器。

我无法通过ftp从生产服务器连接到资源服务器。我可以从生产服务器连接到其他服务器。我还可以从本地主机或filezilla连接到资源服务器。

我用这个代码连接:

$conn_id = ftp_connect("resource server ip", "21", "5");
if ($conn_id) {
    echo "connected";
    ftp_close($conn_id);
}
print_r(error_get_last());

当我在服务器上运行这个脚本时,我没有得到任何输出(没有错误)。在本地主机上,它运行没有问题。

这可能有什么问题?这是服务器管理员必须解决的问题吗?谢谢你的帮助。

您应该首先从命令行检查是否是网络/OS问题。

因此,如果您拥有对生产服务器的shell访问权限,请尝试通过命令行ftp客户端连接到资源服务器。

如果这不起作用,那么你就遇到了网络/防火墙/访问控制问题,与php或你的软件无关,你应该与系统管理员谈谈。

如果它确实有效,那么问题就出在你的东西上,你应该将日志级别设置为高,并从命令行运行这个脚本,还检查php、php错误、syslog以及资源服务器ftp访问日志和syslog的日志。

注意:ftp不是一个太精确的野兽,服务器和客户端有很多内置的解决方案来以某种方式对待彼此,这在某种程度上是有效的。主动(多个来回连接)和被动模式(就像http)可能会出现问题,ls格式和时间戳、时区和端口也会出现问题。

此外,有些服务器只支持ftps(带ssl的ftp),这与sftp(通过ssh端口22传输文件)不同。

您的生产服务器可能有一些防火墙规则,并且您的连接被捕获,要调试此规则,请使用命令行ftp客户端和/或nmap/netcat。