Как использовать команду PORT для адреса IPv6 - PullRequest
1 голос
/ 20 января 2020

Из https://support.solarwinds.com/SuccessCenter/s/article/PORT-FTP-command я вижу, что команда PORT в основном принимает ввод в виде PORT (h1, h2, h3, h4, p1, p2). Но мне нужно инициировать команду PORT (или некоторую альтернативу) на машине IPv6. Есть ли способ / альтернатива, чтобы я мог выполнить sh соединение?

Когда я попытался запустить команду PORT с IPv6-адресом, используя recv WinAPI recv(tsocket, buf, size, flag);, вывод был: 500 'PORT xxxx, xxxx, xxx, xxxx, xxxx, 4,176 ': команда не понятна.

4176 - это порт, к которому я пытаюсь подключиться (т. Е. 1200), а остальные «x» - это IPv6-адрес моей системы.

Я пытаюсь установить соединение с активным режимом на FTP.

Дополнительно: есть ли способ установить sh соединение между FTP-сервером IPv4 и клиентом IPv6?

Ответы [ 2 ]

3 голосов
/ 20 января 2020

Для IPv6 вам необходимо использовать EPRT вместо PORT.

EPRT определено в RF C 2428 ( FTP-расширения для IPv6 и NAT ) в разделе 2: Команда ERPT .

В RF C приведен следующий пример:

EPRT |2|1080::8:800:200C:417A|5282|

Конечно, встречная сторона должна поддержать команду. Если это не так, вы не можете использовать IPv6.

1 голос
/ 20 января 2020

Могу ли я установить sh соединение между FTP-сервером IPv4 и клиентом IPv6?

Не напрямую. Вам понадобится какой-нибудь шлюз, который транслирует между IPv6 и IPv4 на уровне IP, но также и на уровне приложений, то есть переписывает адреса, используемые для настройки соединения, и, возможно, также транслирует между PORT / PASV (только IPv4) и EPRT / EPSV (IPv6). и IPv4, но поддерживается не всеми системами IPv4).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...