Сбой FTP «PUT» на виртуальной машине, но не на хост-ПК: 504 Команда не реализована для этого параметра

3945
BrianH

У меня есть FTP-скрипт, который я использую для автоматизации передачи файлов. Передача отлично работает на моем ПК (XP SP2), но когда я пытаюсь запустить его на виртуальной машине на моем ПК (XP SP2), команды "put" выдают:

504 Command not implemented for that parameter. 

Файл FTP:

open [ftp site] [username] [password] cd [directory on FTP server] binary hash put ..\[subfolder1]\[Subfolder2]\[subfolder3]\[filename] bye 

FTP-сайт / сервер находится по всему миру, и не под моим контролем.

Из того, что я понимаю для 504, это означает, что команда НИКОГДА не должна работать, но так как тот же сценарий РАБОТАЕТ на моем ПК (хостинге ВМ), что исключает синтаксис, присвоение имен файлам и т. Д.

Команда put при запуске с виртуальной машины фактически создает файл 0 длины на целевом FTP-сервере, но не заполняет файл.

1
Может быть, хотите перенести это на http://serverfault.com. squillman 14 лет назад 1
Я не очень хорошо разбираюсь в области сценариев FTP, но может ли это иметь какое-либо отношение к использованию обратной косой черты для пути? jtbandes 14 лет назад 0
Как виртуальная машина подключена к вашей хост-сети? Это за NAT? heavyd 14 лет назад 0
Это не обратная косая черта, я перешел в исходный каталог. Выход FTP -v: невозможно подключиться к [IP-адресу ftp-сервера]: 52933 - Неизвестная ошибка: 0. Выход-FTP -d: ---> ПОРТ [IP-адрес виртуального ПК, разделенный запятыми], 19,129 504 Команда для этого параметра не реализована , ---> STOR [имя файла] 550 Не удается подключиться к [IP-адресу ftp-сервера]: 52934 - Неизвестная ошибка: 0. Виртуальная машина использует общую сеть (NAT), которая, на мой взгляд, является проблемой в данный момент ... BrianH 14 лет назад 0
yikes ... возврат каретки обстрелян в комментариях, извините! BrianH 14 лет назад 0

3 ответа на вопрос

2
Snark

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

Не должен ли брандмауэр на вашем хост-компьютере быть открыт для трафика от программного обеспечения виртуальной машины. Мне кажется, что все команды FTP разрешены (порт 20), но когда вы начинаете фактическую передачу данных, он не может открыть канал данных (на порт 21).

Есть ли у вас такая же ошибка с другими командами, которые передают данные? Например, «СПИСОК».

Попробуйте пассивный режим (команда «PASV»), поскольку он не откроет другой канал для данных.

0
nik

Машина, на которой размещена виртуальная машина, отличается от самой виртуальной машины.
Если команда работает в базовой ОС машины, этот FTP-сервер разрешает ее.
Когда команда не работает в ОС VM, этот FTP-сервер (другой) не разрешает ее.

Я что-то упускаю в этом вопросе?
Хорошо, вы говорите, что FTP-сервер тот же, и
вы не можете FTP-PUT с клиента виртуальной машины, где-как он работает с FTP-клиентом вашей базовой ОС?

Если это так, может быть целесообразно сделать перехват пакетов двух сеансов FTP.
Если сбойный сеанс работает по-другому, эта часть может не поддерживаться вашим FTP-сервером.
Например, проверьте различия в активном / пассивном режимах FTP (возможно, это не ваша проблема, но что-то вроде этого).

Вы можете делать снимки с помощью Wireshark или tcpdump, отфильтрованных для TCP-порта сервера.


Обновление на основе вашего комментария.
я бы все еще сказал, что вам нужно сделать снимок, чтобы увидеть, что терпит неудачу.
Тем не менее, есть еще одна вещь, которую вы можете сделать, ftp -vпредоставит все контрольные сообщения, как они происходят. Вы можете использовать это, чтобы увидеть, как два FTP-клиента ведут себя по-разному, чтобы определить проблему. К сожалению, это не правильный вариант ... было что-то, что отследило обмен командами, не может получить это сейчас. Может быть, кто-то здесь помнит.

Я просто уточнил вопрос, извините за путаницу. Виртуальная машина и хост-компьютер - это WinXP SP2, и целевой FTP-сервер совпадает. BrianH 14 лет назад 0
0
harrymc

Из моего исследования, 504 может иметь иные значения, чем Command not implemented for that parameter. Это также может быть:

504: истекло время ожидания шлюза
504: неизвестный механизм безопасности

Надеюсь, это поможет. Первый из них особенно наводит на мысль.

Вопросы:
что происходит, когда вы вводите пут?
Вы пытались использовать протокол анализатор, чтобы найти точную разницу между связью с ПК и виртуальной машиной?

РЕДАКТИРОВАТЬ

Возможно ли, что удаленный FTP-сервер имеет какой-то механизм безопасности, который позволяет вашему компьютеру, но не виртуальной машине?

Похожие вопросы