Tips

FTP接続時の10048のエラー

日付2007/11/05
ID07-023
バージョン2004
プラットフォームMac & Win

4D Internet Commandsにおける10048のエラーは、データコネクションをオープンできなかったというエラーです。

http://www.4d.com/4ddoc2004/CMU/CMU88906.HTM

データコネクションを確立できないように邪魔をしている何かが存在するのだと思われます。ルータやファイアウォールの設定を見直してください。

データコネクションとは

FTPのコネクションは2種類あります。コマンドコネクション(制御コネクション)とデータコネクションと呼ばれ、それぞれ命令用、データ送受信用と役割が分かれています。コマンドコネクションはFTP通信が行われている間中使われ、データコネクションは必要な時のみコネクションが確立されます。

またコマンドコネクションは必ず21番ポートを使います。一方データコネクションは、接続モードによって使うポートも確立の方法も変わります。

アクティブモードの時

アクティブモード時のデータコネクションは、20番ポートに固定されていますが、確立方法が他のものとは全く逆になる点に注意が必要です。

コネクションの確立は、FTPサーバ側からFTPクライアント側に向かって行われます。つまりFTPクライアント側は、データ送受信の時に限り、まるでサーバのように20番ポートで接続されるのを待ち受けます。もしクライアントとサーバ間にルータが介在し、FTPクライアントがIPマスカレードのようなサービスを通してFTPサーバに接続しているのであれば、ルータの20番ポートに外からアクセスがあった時に特定のFTPクライアントに通すNATのような仕組みが必要になります。

またFTPクライアントがサーバのように、外からデータコネクションを確立されるのを待つ点に注意してください。例えばクライアントにファイアウォールが使われていると、外から20番ポートへのアクセスはできず、結果としてデータコネクションを確立できずにエラーになります。

パッシブモードの時

パッシブモード時のデータコネクションは、FTPサーバが任意に指定したポートが利用されます。FTPサーバはコマンドコネクションを通してポート番号を指定し、FTPクライアントが指定された番号のポートに接続します。

一般的には1024番以上の番号のポートが指定されますが、サーバの設定によっては1024番以下を指定するよう設定することも可能です。この場合のコネクションの確立は一般的なコネクションと同様、FTPクライアントからFTPサーバに対して行われます。

見直しのポイント

こうした理由から見直すべきルータやファイアウォールの設定は、接続モードやFTPサーバの設定によって変わります。接続モードがアクティブモードならクライアント側を見直し、接続モードがパッシプモードならサーバ側を見直すことになります。