Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
ISLAM
Есть сервер WinServ2008r2+ Hypervisor. На гипервизоре система CRM Мегаплан. Работа ведется в Web интерфейсе с доступом по IP. Резервное копирование БД этой системы предусмотрено по FTP. Решил воспользоваться встроенным FTP сервером Mychat. Так вот эта система ругается что нету прав доступа в каталог FTP. Но есть ряд странностей:
1.Клиент Mychat через проводник Windows корректно открывает FTP Каталог. Во все сетях. Просто проводник тоже открывает (с использованием опции "войти как")
2.Браузеры при указании ip адреса и порта не открывают FTP сервер вообще. Только Опера ругается на неподдерживаемый метод аутентификации.
3.Тотal Сommander из той же подсети открывает FTP сервер, а из других(маршрутизация) подвисает в процессе получения папок с сервера.
Что может быть причиной? И есть ли возможность все перенести только на один стандартный 21 порт?
Аватара пользователя
Алексей Пикуров
Здравствуйте, Ислам.

Во-первых, следует подробнее рассказать, как работает FTP вообще и FTP в MyChat Server в частности, чтобы вы чётко понимали, где может крыться причина проблемы. Будет "многабукафф", но прочитайте вдумчиво.

1. Первичная аутентификация клиента на сервере и процесс обмена файлами.
Итак, FTP - это протокол передачи файлов, работает всегда по двум портам. Порты эти могут быть произвольными. Например, 20 и 21. Или 20000 и какой-нибудь порт из диапазона (так работает MyChat Server), как настроите сервер. Но портов всегда два.

Один порт нужен для первичной аутентификации подключающегося клиента на сервере (проверка логина/пароля) и для обмена технической информацией в процессе работы (копируем файл, удаляем файл, создаём каталог и т.п.), а второй порт всегда нужен для передачи бинарных данных (файлов) в ту или иную сторону. Важный момент, о номере второго порта клиент узнаёт только после того, как он уже аутентифицировался на сервере, сервер сообщает клиенту номер порта, по которому будут передаваться непосредственно файлы. Вы можете быть удивлены - но получение списка файлов в каталоге - это тоже передача бинарных данных по второму порту.

2. Как клиент работает через NAT, файрволы и т.п. препятствия?
Есть такое понятие в FTP - пассивный режим, или Passive Mode, если на англицком. Если кратко - это специальный режим работы, когда соединение с сервером по порту передачи файлов (второй порт, о котором я говорил в предыдущем пункте) открывает клиент. В классическом FTP соединение с клиентом по второму порту - открывает сервер. Понятное дело, что при наличии NAT такое соединение будет невозможным. Поэтому клиент сам должен открыть соединение с сервером по второму порту. Это и называется пассивный режим работы.

Важный момент заключается в том, что об этом нужно сказать явно, иначе по умолчанию будет работать активный режим и клиент не сможет работать с сервером, ему будет мешать NAT. Опция пассивного режима настраивается в любом FTP клиенте, будь то Проводник, Total Commander, FAR или что-то ещё.

3. Как правильно подключиться к FTP серверу через Проводник? Что нужно указать в адресной строке?
Общая схема записи: ftp://user:password@host:port/dir
Предположим, что IP сервера - 192.168.10.1, логин для подключения к MyChat FTP серверу - mcuser, а пароль - mychat.

Тогда строка будет выглядеть так: ftp://mcuser:[email protected]
Подразумевается, что сервер работает на 21-м порту и тогда его указывать не нужно.

Если FTP будет работать, например, на 20000 порту, тогда строка будет выглядеть так: ftp://mcuser:[email protected]:20000

Это справедливо не только для MyChat, но и для любого FTP сервера.

Думаю, теперь понятно, почему в Проводнике вы не могли подключиться к FTP серверу, вводя адрес вручную.

4. Как работать с FTP из других подсетей?
Прочитав предыдущие нравоучения :), вы уже поняли, что вам необходимо использовать пассивный режим (passive mode) для работы клиента с сервером. Я не могу знать точно, как у вас устроена сеть, однако могу точно сказать, какая настройка сервера точно не помешает. Не буду вдаваться в технические подробности, об этом сможете спросить потом, если будет необходимость, но в MyChat Server стоит сделать вот такую настройку:
mychatpassiveftpmode.png

Вместо 192.168.10.1 следует подставить тот адрес, на который вы соединяетесь конкретным FTP клиентом. Иными словами, если у вас сервер MyChat стоит в DMZ или за NAT, и вы занимаетесь маппингом портов (port mapping) с внешнего IP на какой-то внутренний в вашей локальной сети, то на сервере MyChat следует явно указать его внешний IP.


Надеюсь, я ответил на ваши вопросы и этой информации будет достаточно. Спрашивайте и уточняйте, если что-то непонятно.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ISLAM
Спасибо большое очень познавательно! Постараюсь разобраться.
ISLAM
Спасибо Алексей!
Если пытаться подключаться как вы описали(Общая схема записи: ftp://user:password@host:port/dir) то и браузеры тоже открывают. Осталась одна проблема. Сообщу Вам тоже, но вероятно это к разработчику той программы. Может Вы тоже что нибудь подскажете.
Так вот прикладываю картинку, посмотрите пожта скрин, как правильнее заполнить поля, разработчик той системы думает что проблема в моем ftp сервере. но после вашего ликбеза убедился что сервер FTP MyChat не виноват.
ip адрес сервера myChat 192.168.110.10 в портах ничего не менял.
P.S поле номер порта на скрине число для примера, при получении фокуса оно очищается.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Алексей Пикуров
По поводу того, что конкретно вводить в этих полях - вам лучше проконсультироваться с разработчиками данной системы.
Могу только предположить, что в "Сервер" - IP сервера, в поле "Логин" - mcuser, а в "Пароль" - mychat. Поле, где прописано 21, очевидно следует заполнить в соответствии с тем, как у вас настроен FTP в MyChat Server.

Опять же, не видя ваших настроек MyChat Server, я не могу писать какую-то конкретику.
ISLAM
Я так пробовал конечно, разного рода ошибки выдает... Ну ладно это уже точно к ним
Аватара пользователя
Алексей Пикуров
Можете дать их специалисту линк сюда, мы можем пообщаться. Возможно, мы быстрее поймём друг друга :)
ISLAM
Да, я думал об этом. В понедельник так и сделаю.
Аватара пользователя
Алексей Пикуров
Ислам, решили проблему?
ISLAM
Баг в одном из модулей разработчика нашей системы мегаплан, к сожалению пока исправить не обещают, решили пока делать бэкапы по протоколу Samba. В первое время и с этим у них были проблемы, но это уже исправлено. Спасибо за Вашу поддержку!
Аватара пользователя
Алексей Пикуров
Ок, обращайтесь, если поправят :)