Я пытаюсь подключиться к другому серверу FTP с помощью PHP и загрузить на него файл.
На моей локальной машине код работает абсолютно нормально, но когда я запускаю этот код со своего промежуточного сервера, я получаю следующее предупреждение и не могу связаться с FTP-сервером.
Ниже приводится предупреждение, которое я получил.
Предупреждение: ftp_put () [function.ftp-put]: я не буду открывать соединение с 10.140.166.143 (только с 52.232.262.219) в /code/sites/my_web/model/Request.php онлайн 193
52.232.262.219 — это ip-адрес моего промежуточного сервера.
Строка 193 выглядит следующим образом:
$file_upload_status = ftp_put($conn_id, $remote_file, $file, FTP_BINARY);
Примечание: я не помещаю весь код, так как он работает с моей локальной машины. Он не работает только с промежуточного сервера.
Это происходит из-за настроек в файле php.ini. Поскольку файл php.ini на моем локальном компьютере может иметь некоторые другие настройки для этого, чем файл php.ini, присутствующий на промежуточном сервере.
Предупреждение: ftp_put () [function.ftp-put]: я не буду открывать соединение с 10.140.166.143 (только с 52.232.262.219) в /code/sites/my_web/model/Request.php в строке 193
Трудно догадаться только из этого сообщения об ошибке, но я предполагаю
Похоже, что FTP-сервер не знает, что он находится за маршрутизатором NAT и отправляет свой частный IP-адрес 10.140.166.143 в ответ на PASV
, Но клиент имеет управляющее соединение с сервером по 52.232.262.219 (общедоступный IP-адрес, вероятно, порт, перенаправленный с маршрутизатора на сервер) и, следовательно, не любит, чтобы соединение для передачи данных осуществлялось по другому адресу.
Исправлено: использовать активный режим (не работает, когда клиент находится за NAT-маршрутизатором или межсетевым экраном). Некоторые серверы также могут быть настроены на объявление другого адреса, отличного от их собственного адреса. Они также могут использоваться в пассивном режиме при условии, что маршрутизатор настроен для пересылки большого количества портов.
FTP-сервер принимает соединения только с IP-адреса 52.232.262.219, а ваш IP-адрес 10.140.166.143 🙁
Смотрите конфигурацию вашего ftp сервера