Я недавно переключился на новый веб-хостинг, и они предлагают FTP вместо SFTP. Нет проблем, мой обычный клиент (WinSCP) справляется с этим безупречно, в том числе с (явным) шифрованием. Однако, когда я настраиваю NetBeans для автоматической загрузки файлов туда при сохранении с шифрованием, я получаю странную ошибку при включении inc.

220 ProFTPD Server ready.
AUTH TLS
234 AUTH TLS successful
USER my_username
331 Password required for my_username
PASS ******
230 User my_username logged in
PBSZ 0
200 PBSZ 0 successful
PROT P
200 Protection set to Private
TYPE I
200 Type set to I
CWD /domains/mydomain.org/public_html/dev2
250 CWD command successful
PWD
257 "/domains/mydomain.org/public_html/dev2" is the current directory
CWD /domains/mydomain.org/public_html/dev2/js
250 CWD command successful
PASV
227 Entering Passive Mode (185,182,56,157,137,191).
STOR examplefile.js.new
150 Opening BINARY mode data connection for examplefile.js.new
425 Unable to build data connection: Operation not permitted
PASV
227 Entering Passive Mode (185,182,56,157,138,255).
STOR examplefile.js.new
150 Opening BINARY mode data connection for examplefile.js.new
425 Unable to build data connection: Operation not permitted
PASV
227 Entering Passive Mode (185,182,56,157,139,229).
STOR examplefile.js.new
150 Opening BINARY mode data connection for examplefile.js.new
425 Unable to build data connection: Operation not permitted
DELE examplefile.js.new
250 DELE command successful
QUIT
221 Goodbye.

Я не совсем понимаю. Я могу войти идеально и даже CWD/DELE, но я не могу загружать файлы? Некоторое прибегая к помощи указывало на то, что я переключаюсь в активный режим, но это просто приводит к вечному сообщению синхронизации, за которым следует тайм-аут. И это работает безупречно при отключении шифрования или даже при проверке "только процесса аутентификации с шифрованием". Но это не то, что я хочу, так как мне иногда нужно передавать пароли в виде открытого текста в моем конфигурационном файле PHP.

Как я могу заставить Netbeans корректно загружать файлы на мой хост, подобно тому, как это делают другие программы (например, WinSCP)? Я проверил логи WinSCP, и они также шифруют передачу данных.

1 ответ1

2

FTP - это протокол, который использует отдельные соединения для передачи данных и обмена внутри управляющего соединения с портами, используемыми для этих соединений. Это делает его очень проблематичным для брандмауэров, потому что им либо нужно разрешить широкий диапазон возможных портов (что ослабляет защиту брандмауэром), либо они чаще всего определяют, какие порты будут использоваться, и динамически создают правила брандмауэра, чтобы разрешить конкретную передачу данных. Последнее делается путем анализа потока данных и извлечения и анализа команд PORT (активный режим) или ответа на PASV (пассивный режим).

Этот вид анализа хорошо работает, если контрольное соединение не зашифровано. Но это не удается для зашифрованных управляющих соединений, поскольку брандмауэр больше не может видеть команды PORT и ответы на PASV в открытом виде и, таким образом, динамически создавать соответствующие правила брандмауэра для соединений данных. И это приводит к проблемам, которые вы видите.

Чтобы обойти эту FTPS (т. Е. FTP через SSL, в отличие от SFTP, который является передачей файлов по SSH), предусмотрена команда CCC, которую можно использовать для переключения канала управления обратно на очистку после выполнения аутентификации, что позволяет снова создать динамическое создание правил. , Но похоже, что Netbeans не использует это. Я не знаком с возможностями конфигурации в Netbeans, но ищу варианты того, как включить шифрование только для аутентификации или подобного. Если таких опций нет, вам, вероятно, не повезло, и вам нужно либо отключить шифрование, либо ослабить брандмауэры, которые могут повлиять на трафик. Обратите внимание, что в некоторых случаях не существует настоящего брандмауэра, отвечающего за проблемы, кроме трансляции NAT, выполняемой маршрутизаторами или Интернет-провайдером, как правило, также в контексте мобильных или DS-Lite соединений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .