Amazon-Ec2

FTP - 500 我不會打開到 xx.xx.xx.xx 的連接

  • April 10, 2018

我在 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。這行不通有兩個原因。

  1. 伺服器看不到你的內部IP。
  2. 雖然 ftp 協議確實支持您設置數據連接以與控制連接中的不同 ip 通信。大多數伺服器現在拒絕接受它(出於安全原因),有些伺服器會簡單地忽略 ip 而只使用埠。像這樣的其他人只會拒絕接受命令。

引用自:https://serverfault.com/questions/537650