キーワード†
- FTPClient
- PASV
- パッシブモード
現象†
FTPClientでFTP/putできない。環境は、ファイアウォールの都合上パッシブモードでしか送信できない。
エラーになるのは次のコード。
client.storeFile(remote, local)
原因†
次のコードでパッシブモードにしたつもりだができていない。
client.pasv()
対策†
こうすべきだったようです。
client.enterLocalPassiveMode()
備考†
tcpdumpすると確かにPORTコマンドを発行してるようでした。
# tcpdump -i lo -A port ftp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes ~省略~ <%.y<%.yPORT 127,0,0,1,231,155 ~省略~ <%.y<%.y200 PORT command successful. C ~省略~ <%.y<%.ySTOR /path/to/file