Skip to main content.

FTPで「500 Illegal PORT command」と出た

 
1つのネットワーク内にサーバを複数設置して、各々のサーバにFTPでアクセスするためにNATで標準以外のポートを割り当ててFTPを立ち上げてみたところ「500 Illegal PORT command」というお返事が。

ログインまでは一応できてるっぽいので、ググってみたところ下記のような記述を発見。

http://www.atmarkit.co.jp/fwin2k/win2ktips/649ftpport/ftpport.html
FTPの標準ポート番号を変更する − @IT


標準的なFTPポートを使用している場合は、アドレス変換部(ルータ)において適切に処理されるが、ポート番号を変更すると、FTPの通信であることが認識できなくなるので、FTPの通信ができなくなる。

ふむ、ようするに標準ポートでは制御用ポートとデータ転送用ポートが決まっているから問題無いけど、ポート番号を変更すると制御用ポートは変更した値に合わせられるけど、データ転送のポートは未指定の状態なので、「ログインはできてもデータ一覧取得などはできませんよー」、という認識でいいんでしょうかね。

それで対処法は

このような設定を利用する場合は、イントラネットや(アドレス変換を伴わない)VPNネットワークなどで使用するか、FTPのパッシブ・モードを利用するファイアウォールのFTP処理に対して、ポート番号を明示的に指示する、などの対処が必要である。

ということらしいです。

そういうわけで、パッシブモード用のポートを空けて接続してみたらちゃんと繋がりました。
多分、上記3つの方法の中ではパッシブが一番楽なのではないでしょうか。

1つのグローバルIP内に複数のFTPサーバがある状況なんて、面倒なシステムを作らない限りそうそう無いとは思いますが、セキュリティ面の都合でFTPのポート番号を変更した人も同じところでつっかかるかも。
このエントリーをはてなブックマークに追加
 

comments powered by Disqus