ufw ubuntu不规则地阻止ftp_connectPHP

问题描述

我正在编写一个简单的PHP应用程序,该应用程序可以连接ftp服务器并从中获取数据。问题是我有时会成功建立连接,而其他时候却被阻塞。这是我的代码,可在Ubuntu和Apache中运行

$ftpConn = ftpConnect($ftpHost,$ftpUser,$ftpPassword);


function ftpConnect($host,$user,$password) {
    $ftpConn = ftp_connect($host,21,3)or die("Couldn't connect to $host");
    $login = ftp_login($ftpConn,$password);
    // check connection
    if ((!$ftpConn) || (!$login)) {
        echo 'FTP connection has Failed again! Attempted to connect to ' . $host . ' for user ' . $user . '.';
    } else {
        return $ftpConn;
    }
}

ufw状态编号如下:

[ 1] Apache Full                ALLOW IN    Anywhere
[ 2] 20/tcp                     ALLOW IN    Anywhere
[ 3] 21/tcp                     ALLOW IN    Anywhere
[ 4] 40000:50000/tcp            ALLOW IN    Anywhere
[ 5] 990/tcp                    ALLOW IN    Anywhere
[ 6] 9822                       ALLOW IN    Anywhere
[ 7] Apache Full (v6)           ALLOW IN    Anywhere (v6)
[ 8] 20/tcp (v6)                ALLOW IN    Anywhere (v6)
[ 9] 21/tcp (v6)                ALLOW IN    Anywhere (v6)
[10] 40000:50000/tcp (v6)       ALLOW IN    Anywhere (v6)
[11] 990/tcp (v6)               ALLOW IN    Anywhere (v6)
[12] 9822 (v6)                  ALLOW IN    Anywhere (v6)

我不确定为什么会这样。任何建议都欢迎

解决方法

我尝试连接的ftp服务器被配置为在被动连接时使用30000:61000 / tcp端口,因此我的本地防火墙允许其中一些端口拒绝其他端口。解决办法?扩大允许的端口范围。

谢谢!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...