FTPのパッシブ(PASV)モード接続。

考えてみたら、YAMAHAのルータ(NVR500)のファイヤーウオールでFTPでパッシブモード(PASV)接続ができないようになっていた。動的フィルタのftp を入る 出る 両方にチェックを付けるといいと思うけど、いいのかな。
20150929FirewallpassiveFTP
いいはず。
この動的IPフィルタのftp の設定で 入 にチェックがついていないと;

Mac$ ftp user@example.com
Connected to example.com.
220 example.com FTP server ready.
331 Password required for user.
Password:
230 User user logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (123,123,123,123,246,156)
ftp: Can’t connect to `123.123.123.123′: Connection refused
200 PORT command successful.
150 Opening ASCII mode data connection for directory listing.
total 48
drwx—— 13 user staff 442 Sep 9 07:05 Desktop
drwx—— 13 user staff 442 May 5 2010 Documents
226 Transfer complete.
ftp>

これはサーバの(246*256+156)番ポートでデータの送受信を行いますよとパッシブモードでトライしたんだけど、接続できなく、ポートモードで接続したら成功したということのようだ。この場合サーバのポートは20番である。つまりパッシブモードで接続できない、自動的にアクティブ(ポート)モードになってデータの送受はできるようになる。
入 にチェックが入っていると;

Mac$ ftp user@example.com
Connected to example.com.
220 example.com FTP server ready.
331 Password required for user.
Password:
230 User user logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (123,123,123,123,246,156)
150 Opening ASCII mode data connection for directory listing.
total 48
drwx—— 13 user staff 442 Sep 9 07:05 Desktop
drwx—— 13 user staff 442 May 5 2010 Documents
226 Transfer complete.

パッシーブモードで、サーバは(246*256+156)番ポートでデータを送受信しますよということで、(246*256+156)番ポートがファイヤーウオールの動的フィルタで開いたのでそのままOKとなったわけだ。
アクティブ(ポートモード)からパッシブモードに自動的に変化してだめならアクティブモードにもどりデータのやり取りを行うらしい。この間の時間が無駄だからパッシブでできるようにしておくのがいい。
アクセス元のファイヤーウオールでポート20を閉じているとアクティブモードが通らないから、アクセス先のサーバのファイヤーウオールはパッシブモードが通るようにしておいたほうがいい。
この解釈でいいのかしらん?
アクティブFTPとパッシブFTPというサイトが参考になった。
なんでこんな昔からのFTPのよくあるトラブルになったのかというと、職場のファイヤーウオール機がこの連休に交換されたわけだ。それ以来FTPが使えなくなってしまった。つまり、交換以前はポート20番が開いていたのだ。ひょっとして、管理者がここに赴任したときFTPを使うために20番を開けろと依頼したのではないだろうか。憶えていない。PASVモードだと途中にNAT変換などがあるとうまくいか無いことが多い。クライアント側もサーバ側もNAT変換をやっているわけで、うまくいなかのでアクティブモードでやるのが一番楽だったのだ。で、ファイヤーウオールが交換されて20番が塞がっちゃって、PASVでないとできなくなったのだ。でサーバ側のファイヤーウオールでFTPは動的フィルタで対応したらできるようになったのだと思う。しかし、FTPが通らないという管理者のクレームに対して、こっちのネットの管理者は委託業者に何か依頼してファイヤーウオールの設定を変えたらしいのだが、なにを変えたのかはわからない。