2015-11-09 2 views
0

Я работаю с двумя серверами, один из которых - мой производственный сервер, другой - мой сервер ресурсов.Невозможно подключиться к серверу с другого сервера ftp php

Я не могу подключиться к своему серверу ресурсов с моего рабочего сервера через ftp. Я могу подключиться к другим серверам с моего сервера. Я могу подключиться к моему серверу ресурсов с моего localhost или filezilla.

Я использую этот код для подключения:

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

Я не получаю никакого вывода, когда я запускаю этот скрипт на сервере (без ошибок). На локальном хосте проблемы не возникает.

В чем может быть проблема? Это что-то, что администратор сервера должен решить? Спасибо за помощь.

+0

Есть ли какой-либо прокси? – Random

+0

Почему вы не используете 'ftp_login()'? Вам не нужно заходить на другой сервер? – Andrius

+0

no насколько я знаю @Random – Palo

ответ

0

Вы должны сначала проверить из командной строки, является ли это проблемой сети/ОС или нет.

Итак, если у вас есть доступ к рабочему серверу, попробуйте подключиться к серверу ресурсов через ftp-клиент командной строки.

Если это не сработает, у вас есть проблема с сетевым/межсетевым экраном/доступом, не связанная с php или вашим программным обеспечением, и вам следует поговорить с системным администратором.

Если это сработает, проблема в ваших материалах, и вы должны установить уровни журнала на высокий уровень и запустить этот скрипт из командной строки, а также проверить журналы php, php-error, syslog и серверов ресурсов ftp и syslog.

Примечание: ftp является не слишком точным зверем, у серверов и клиентов есть много обходных решений, разработанных для того, чтобы относиться друг к другу так, как это работает. Могут быть проблемы с активными (множественные back-and-forth соединения) и пассивным режимом (это похоже на http), также с форматами ls и метками времени, часовыми поясами и портами.

Также некоторые серверы поддерживают только ftps (ftp с ssl) - это не то же самое, что sftp (передача файла через ssh-port 22).

На вашем рабочем сервере, вероятно, есть несколько правил брандмауэра, и ваше соединение попадает на это, чтобы отладить это, пожалуйста, используйте ftp-клиент командной строки и/или nmap/netcat.

+0

Обратите внимание, что OP не имеет доступа к командной строке на своем производственном сервере, и даже не уверен, что это машина unix или linux, см. Комментарии к указанному выше вопросу. – syck

+0

Пользователю ftp разрешалось только получать доступ к серверу из белого списка ip. Мой рабочий локальный хост оказался одним из них, что смутило меня. Спасибо за ваше время всем. – Palo

+0

@syck windows имеет брандмауэр, командную строку, FTP-клиент командной строки, netcat и т. Д. :) Для подключения Op может использовать remotedesktop, даже ssh-to-powershell. :) Конечно, syslog следует заменить. :) Я не думаю, что мой ответ зависит от какой-либо конкретной платформы (кроме «check syslog» :)).С другой стороны, здесь был ключ «проверить серверы ресурсов ftp и syslog», поскольку он должен содержать некоторые события об отказоустойчивом ip-адресе. –

Смежные вопросы