Activeモードだと
500 Illegal PORT command.
ftp: bind: アドレスは既に使用中です
Passiveモードだと
227 Entering Passive Mode (0,0,0,0,234,103).
ftp: connect: 接続を拒否されました
になった。
サーバーは外部管理のもので、Passiveでの接続が保証されているか微妙だったので、Activeモードで接続する方法を探すことに。
VPC内のEC2インスタンスから外部のFTPサーバとデータ転送するときに気をつけること
完全にこの記事に救われた。
ftp.rb
require 'bundler'
require 'net/ftp'
require 'net/ftp/port_command'
ftp = Net::FTP.new('FTPサーバーのIPアドレス')
ftp.port('EIP', 10020)
ftp.login('ID', 'パスワード')
puts ftp.list
# ftp.get 'ファイル名' # データ取得する時
bundle exec ruby ftp.rb
今までろくに触ったことのなかった生のFTPをまさかの2018年に触ることになったお話でした。(触らないまま人生を終えたかった)
まぁわりと勉強になったのでよかった。