Я использую сервер на AWS и подключаюсь к FTP-сайту партнера (не очень понимаю, что они запускают). У моего сервера эластичный IP. В результатах ниже xx.xx.xx.xx - это внутренний IP-адрес (такой же, как я получил от IPConfig). yy.yy.yy.yy - это внешний IP-адрес (такой же, как у меня RDP).
Connected to ftp.site.com.
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 22:47. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
User (ftp.site.com:(none)): someuser
331 User someuser OK. Password required
Password:
230 OK. Current restricted directory is /
ftp> literal pasv
227 Entering Passive Mode (69,28,68,87,255,170)
ftp> ls
500 I won't open a connection to xx.xx.xx.xx (only to yy.yy.yy.yy)
Я попробовал режим PASV, но он не работает.
В моей группе безопасности ничего не открыто, кроме RDP.
Брандмауэр Windows также работает на сервере с конфигурацией по умолчанию Amazon.
Как только я получу это соединение, я, вероятно, буду отправлять данные из пакета SSIS по FTP на их сервер FWIW.
Я знаю, что FTP необычный через NAT, когда открываемые соединения возвращаются. Что мне нужно сделать?
FTP-клиент командной строки, встроенный в Windows, вообще не поддерживает пассивный режим. Те хаки, которые вы нашли в Интернете по поводу literal pasv
или quote pasv
на самом деле ничего не делайте с FTP-клиентом; они говорят сервер для входа в пассивный режим, но клиент остается в блаженном неведении. Вам потребуется сторонний FTP-клиент.
Проблема в том, что ваша команда pasv сообщает серверу подключиться к внутреннему ip. Не твой внешний ip. Это не сработает по двум причинам.