我在 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 包传输到他们的服务器 FWIW。
我知道 FTP 通过像这样的 NAT 很古怪,打开的连接又回来了。我需要做什么?
Windows 内置的命令行 FTP 客户端根本不支持被动模式。就 FTP 客户端而言,您在 Internet 上发现的关于
literal pasv
或实际上并没有做任何事情的黑客;quote pasv
他们告诉服务器进入被动模式,但客户端仍然幸福地不知道。您需要获取第三方 FTP 客户端。问题是您的 pasv 命令告诉服务器连接到内部 ip。不是你的外部IP。这行不通有两个原因。