1

我正在尝试使用以下方式连接到 FTP 服务器:

ftp = Net::FTPFXPTLS.new
ftp.passive=true
ftp.debug_mode=true
ftp.connect('200.111.111.11',21)
ftp.login('Username','Pass')
ftp.chdir('inbound')
ftp.putbinaryfile("./#{filename}", "/#{filename}")
ftp.close()

在本例中,200.111.111.11 是正确的 IP,10.1.1.1 是假 IP。

当我通过 FTP 客户端(例如 Transmit)连接时,我连接正常,一切正常,但在脚本中它指出:

Cmd: PASV
227: Entering Passive Mode (10,1,1,1,47,79).
Fixing bogus PASV data address from 10.1.1.1:12111 to 200.111.111.11:12111.

然后当它尝试通过 ruby​​ 脚本连接时:

get: 425 Failed to establish connection.

当它尝试执行 LIST 或 STOR 之类的任何操作时,因为 PASV 命令总是返回 10.1.1.1:12111。

那么无论如何要确保 PASV 命令使用 200.111.111.11 而不是发送回它的内容?

4

1 回答 1

1

这似乎是 gem 的更多问题,有一个解决方案,但需要一些时间来实施。为了节省时间,我们只是将协议切换为使用完美运行的 SFTP。(切换服务器和代码)

于 2012-10-16T08:45:04.273 回答