|
|
|
FTP.EXE и UserGate. Консольный FTP клиент работающий через proxy. | ☑ | ||
|---|---|---|---|---|
|
0
twilight5023
02.11.06
✎
15:19
|
Итак, имеется задача, отправить из bat'ника файл по ftp на ftp.narod.ru, проблема в том, что соединение с интернетом происходит через proxy UserGate (установлен на машине с ip 192.168.0.39). Итак, если в ftp.exe соединяться с 192.168.0.39:21, то он соединяется с самим UserGate'ом:
ftp> open 192.168.0.39 Connected to 192.168.0.39. 220 Hi! Welcome on UserGate! User (192.168.0.39:(none)): Как ему сказать что я хочу на ftp.narod.ru - непонятно, в мануале тоже ничего не нашел. Решил пойти другим путем создал portmap между 192.168.0.39:1121 <-> ftp.narod.ru:21 ... соединяемся и пробуем залить файл / посмотреть список файлов, что в данной ситуации все равно: D:\>ftp ftp> open 192.168.0.39 1121 Connected to 192.168.0.39. 220 ftp.narod.ru (Libra FTP daemon 0.17 20050906) User (192.168.0.39:(none)): twilight5023 331 Password required Password: 230 Logged in, proceed ftp> ls 200 PORT command OK 150 Opening data connection > ftp: get :Connection reset by peer Пробуем использовать пассивный режим: D:\>ftp ftp> open 192.168.0.39 1121 Connected to 192.168.0.39. 220 ftp.narod.ru (Libra FTP daemon 0.17 20050906) User (192.168.0.39:(none)): twilight5023 331 Password required Password: 230 Logged in, proceed ftp> literal pasv 227 Entering passive mode (213,180,199,126,203,6) ftp> ls 200 PORT command OK 150 Opening data connection > ftp: get :Connection reset by peer Тоже не работает, data connection не открывается. В чем причина не пойму... Помогите разобраться либо с этим, либо посоветуйте консольный ftp клиент, который умеет работать через http proxy. Тот же плагин к Far'у - FarNavigator (ProxyFTP) у меня замечательно работает через UserGate, но нужно что-нибудь консольное... |
|||
|
1
demonas001
02.11.06
✎
15:23
|
Не знаю - юзергейтом никогда не пользовался - а там что нет режима "прозрачного прокси"?
|
|||
|
2
twilight5023
02.11.06
✎
15:23
|
(1) Нет.
|
|||
|
3
twilight5023
02.11.06
✎
15:24
|
+2 По-крайней мере в UserGate 2.8
|
|||
|
4
twilight5023
02.11.06
✎
15:25
|
Здесь даже дело не в UserGate'е, нужен либо консольный FTP клиент умеющий работать через HTTP proxy, либо нужно разобраться почему он даже через portmap не хочет работать с ftp.narod.ru, потому что в случае portmap'а соединение все равно как бы прозрачным получается. А вот из логов видно, что data connection открывать он почему-то не хочет.
|
|||
|
5
Obed
02.11.06
✎
15:27
|
эта, поиском тут поищи, было как-то, я спрашивал... там что-то есть типа коннекта через прокси, если не найдешь, завтра гляну на работе, пиши в аську/мыло
|
|||
|
6
twilight5023
02.11.06
✎
15:28
|
(5) Да я смотрел уже... тут в основном обсуждали использование пассивного режима в ftp.exe, кто-то убежденно доказывал что его в нем нет (хотя literal pasv еще никто не отменял), вообщем ничего толкового я пока не нашел.
|
|||
|
7
demonas001
02.11.06
✎
15:36
|
а там нет опции в этом юзергейте типа перенаправлять все соединения на 21 порт на самого себя на 3128 (или какой там у тебя порт)? (ну типа прозрачного прокси только руками сделать). Так не работает?
|
|||
|
8
Obed
02.11.06
✎
15:36
|
(6) ща РАдмином гляну на работе
|
|||
|
9
Obed
02.11.06
✎
15:36
|
(7) 2.8 оч старая версия, там даже НАТа нету
|
|||
|
10
demonas001
02.11.06
✎
15:36
|
(9) я просто не юзал ни одной :)
|
|||
|
11
Obed
02.11.06
✎
15:38
|
тхтлист=СоздатьОбъект("Текст");
тхтлист.Очистить(); тхтлист.ДобавитьСтроку("open 192.168.0.2"); тхтлист.ДобавитьСтроку("u17563@u17563.ftp.masterhost.ru"); тхтлист.ДобавитьСтроку("не скажу :)"); тхтлист.ДобавитьСтроку("cd /moonlight.ru/www/catalog_files/gfx"); тхтлист.ДобавитьСтроку("ls /moonlight.ru/www/catalog_files/gfx """+КаталогВременныхФайлов()+"ftpFilelist.txt"""); тхтлист.ДобавитьСтроку("quit"); тхтлист.Записать(КаталогВременныхФайлов()+"ftpscr.tmp"); тхтлист=СоздатьОбъект("Текст"); тхтлист.Очистить(); тхтлист.ДобавитьСтроку("@cls"); тхтлист.ДобавитьСтроку("@echo off"); тхтлист.ДобавитьСтроку("echo Подождите, идет загрузка списка картинок..."); тхтлист.ДобавитьСтроку("ftp -s:"""+КаталогВременныхФайлов()+"ftpscr.tmp"">nul"); тхтлист.ДобавитьСтроку("echo Загрузка завершена"); тхтлист.Записать(КаталогВременныхФайлов()+"ftpscr.cmd"); |
|||
|
12
Obed
02.11.06
✎
15:39
|
вот есть у меня такая шняга.... ща гляну почему она работает :)
|
|||
|
13
demonas001
02.11.06
✎
15:42
|
(12) наверно потому что без прокси ftp -s:"""+КаталогВременныхФайлов()+"ftpscr.tmp"">nul")
|
|||
|
14
Obed
02.11.06
✎
15:44
|
+(12) точне работала на UG 2.8 или 2.6 не помню
|
|||
|
15
twilight5023
02.11.06
✎
15:46
|
(7) Так я же говорю... поднял portmap, 192.168.0.39:1121 <-> ftp.narod.ru:21, т.е. при коннекте на 192.168.0.39:1121 он соединяется напрямую с ftp.narod.ru - это же и видно по логам (читаем выше), даже pwd работает, показывается что мы в root'е, но data connection не устанавливает, просто скидывает соденение, т.е. закачать что-либо, скачать, просмотреть список файлов - не удается :(
|
|||
|
16
Obed
02.11.06
✎
15:47
|
(15) логи давай UG
|
|||
|
17
gr13
02.11.06
✎
15:47
|
насколько я знаю, narod использует только пассивный режим
поищи ссылки на темы, где я принимал участие, там не раз уже обсуждалась эта тема |
|||
|
18
Obed
02.11.06
✎
15:49
|
(17) ты не прав, не только пассивный..... у меня ща актив работает
|
|||
|
19
gr13
02.11.06
✎
15:49
|
а ftp.exe не поддерживает пассивный режим)
точнее поддерживает, но как-то никто в это не верит) |
|||
|
20
demonas001
02.11.06
✎
15:49
|
(17) -> (0)
230 Logged in, proceed ftp> literal pasv 227 Entering passive mode (213,180,199,126,203,6) |
|||
|
21
twilight5023
02.11.06
✎
15:49
|
(17) Читай внимательно кусок:
ftp> literal pasv 227 Entering passive mode (213,180,199,126,203,6) ftp> ls 200 PORT command OK 150 Opening data connection > ftp: get :Connection reset by peer Пассивный режим устанавливается (по-крайней мере сервер говорит про это). |
|||
|
22
gr13
02.11.06
✎
15:50
|
да?
|
|||
|
23
twilight5023
02.11.06
✎
15:50
|
(19) Ладно, черт с ним с ftp.exe ... кто что посоветует в качестве консольного ftp-клиента на замену ftp.exe?
|
|||
|
24
gr13
02.11.06
✎
15:50
|
угу) он у меня не заработал( сам помню, но сделай поиск, там был пример использования эксплорера для этого, а у него больше возможностей
|
|||
|
25
gr13
02.11.06
✎
15:52
|
(23) читай 24
|
|||
|
26
Obed
02.11.06
✎
15:53
|
(23) dialmail
|
|||
|
27
Obed
02.11.06
✎
15:54
|
+(26) для 1С
|
|||
|
28
vde69
02.11.06
✎
16:13
|
может 22 порт закрыт?
а по поводу настроек UG FTP по http - на UG2.8 не работает в принцепе кроме того необходимо включить FTP прокси, может работать и в активном и в пассивном режиме а вот по поводу режима входа по моему SITE надо использовать |
|||
|
29
twilight5023
02.11.06
✎
16:37
|
Хех... я вроде бы понял... ftp.exe все равно продолжает работу в активном режиме, дело в том, что при работе с ftp используется управляющее соединение FTP_COMM, а также канал передачи данных FTP_DATA, так вот, сейчас вычитал что управляющее соединение действительно происходит по 21-му порту, а вот передача FTP_DATA устанавливается по-умолчанию на 20-м порту TCP ... Вот что говорится про FTP_DATA:
Оно также относится к TCP-типу и устанавливается на 20-ом порту сервера, т.е. на единицу меньшем, чем порт управляющего соединения. Номер порта со своей стороны клиент выбирает самостоятельно и передает его серверу с помощью команды PORT. Эта команда имеет шесть параметров в виде десятичных чисел, которые разделены между собой запятыми. Так что ответ сервера на pasv (227 Entering passive mode (213,180,199,126,203,6)) видимо следует воспринимать как IP и номера портов 203, 6 (?) по которым он хочет установить data соединение. Наверное их можно как-то переназначить с помощью port... нет, я сейчас заставлю этот ftp.exe пассивом быть ;)) |
|||
|
30
twilight5023
02.11.06
✎
16:40
|
+29:
В пассивном режиме клиент локально открывает два так называемых непривилегированных порта (N>1024 и N+1). Первый из них как обычно используется для организации информационного канала с 21-м портом сервера. Однако после соединения и авторизации на сервере клиент не посылает команду PORT, а вместо нее передает команду PASV (переход в пассивный режим работы). В результате, сервер сам открывает произвольный порт (P>1024) и передает информацию о нем с помощью команды PORT. Клиенту в этом случае остается только установить на него TCP-соединение, со своей стороны используя заведомо открытый локальный порт N+1. Наверное все-таки не получится... сервер сообщает мне номер порта, но вот открыть его для usergate'а я видимо не смогу... |
|||
|
31
Fynjy
02.11.06
✎
16:40
|
ИМХО: UserGate и FTP не совместимы.
Поставить паралельную проксю (winroute например и открыть на ней FTP) |
|||
|
32
twilight5023
02.11.06
✎
16:47
|
Мдя... через port forwarding проблему точно не решить:
Your FTP client probably needs to run in passive mode (execute the passive command). FTP data connections carry the files being transferred. These connections occur on randomly selected TCP ports and can't be forwarded in general, unless you enjoy pain. Я никак не enjoy pain, будем другие пути искать... |
|||
|
33
twilight5023
02.11.06
✎
18:03
|
Уррра... я его победил... Все-таки с помощью FTP.EXE возможно работать с FTP через UserGate, и не говорите что это невозможно ;)) Итак, привожу лог команд:
D:\>ftp ftp> open 192.168.0.39 Connected to 192.168.0.39. 220 Hi! Welcome on UserGate! User (192.168.0.39:(none)): twilight5023@ftp.narod.ru 331 Password required Password: 230 Logged in, proceed ftp> ls 200 PORT command OK 150 Opening data connection index.html P3120165.jpg IMG_2157.jpg leto.jpg schet_fakturi_11mai2006.rar table.ert egais3.ert proxyftp.log 226 Transfer completed ftp: 116 bytes received in 0,05Seconds 2,47Kbytes/sec ftp> bye 221 Bye Правда при попытке скачать бинарный файл он приходит битым, но видимо "косяк" в методе передачи файла, текстовые вроде нормально. Сейчас еще покручу... |
|||
|
34
twilight5023
02.11.06
✎
18:05
|
Во...
ftp> open 192.168.0.39 Connected to 192.168.0.39. 220 Hi! Welcome on UserGate! User (192.168.0.39:(none)): twilight5023@ftp.narod.ru 331 Password required Password: 230 Logged in, proceed ftp> binary 200 Type: I ftp> get leto.jpg 200 PORT command OK 150 Opening data connection 226 File transferred. ftp: 11309 bytes received in 0,50Seconds 22,62Kbytes/sec. ftp> bye 221 Bye Теперь вообще все сказочно, и пусть теперь кто-то попробует сказать что в UserGate'е криво ftp реализован, вы просто не умеете их готовить ;)) |
|||
|
35
romix
модератор
02.11.06
✎
18:19
|
Работающее решение - компонента DIALMAIL
|
|||
|
36
twilight5023
02.11.06
✎
18:57
|
(35) Не всегда стоит задача отправлять файлы по ftp именно из 1С, у меня например реализован bat'ник, который запускает 1С Предприятие в пакетном режиме, далее производится выгрузка, необходимые файлы упаковываются в архив, плюс в этот же архив добавляются еще кое-какие файлы и затем этот архив отправляется по ftp. Раньше отправлялось по e-mail'у с помощью postie. Вообщем-то я рекомендовал этот пост в базу знаний, лишь по той причине, что у людей сплошь и рядом встречаются проблемы при работе с ftp с UserGate. Может быть мой опыт кому-то поможет...
|
|||
|
37
Ковычки
02.11.06
✎
19:31
|
shell.application
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |