【FTPの基本】 「アクティブモード」と「パッシブモード」の違いとは?

レンタルサーバーにファイルをアップロードする時に「アクティブモード(Active Mode)」「パッシブモード(Passive Mode)」を正しく設定しないとFTPサーバーにつながらないことがあります。

今回はFTPサーバーの基本から「アクティブモード」「パッシブモード」の違いを解説します。

 

 

初心者向けに分かりやすく解説しました。

【初心者向け】FTPとは?

 

 

 

FTPの基本

まずはFTPの基本から整理しましょう。

FTPは何をするためのものか?

FTPは、レンタルサーバーにファイルをアップロードする時に使います。

 

図解しましたが、例としてタマちゃんは自宅からレンタルサーバーを運用しているとします。

タマちゃんの画像は自宅のパソコンの中にあります。

タマちゃんは、レンタルサーバーにお気に入りの画像をアップロードしたいと思いました。

その場合は、下図のように「FTP」を利用してインターネット経由で画像をレンタルサーバーへアップロードしています。

 

 

ポート番号

FTPで使用するポート番号は「TCP 20番」「TCP 21番」です。

ポート番号役割詳細
20/TCPデータ転送用データ転送用のデータコネクションを張る
21/TCP制御用コントロールコネクションを張る

 

分かりやすく図にしてみました。

通信の方向は矢印の流れです。

自宅のタマちゃんからレンタルサーバーの「20番ポート」「21番ポート」へアクセスします。

 

モード

ここからが今回の本題ですが、FTPには2つのモードがあります。

  • アクティブモード(Active Mode)
  • パッシブモード(Passive Mode)

 

モードの違い

ではこの2つのモードの違いはなんでしょうか?

一言で言うと「20/TCP(データ転送用のポート)」どちらから「コネクション」を張るかの違いです。

●アクティブモードの場合

サーバ から クライアントへデータコネクションを張る


 

 

 

●パッシブモードの場合

クライアント から サーバへデータコネクションを張る

 

 

 

具体的な動作の手順の違い

分かりづらくて且つ重要なところなので、もう1回解説します。

 

●アクティブモード

①クライアント から サーバへデータコネクションの要求する

②サーバ から クライアントのランダムなポートへアクセスし、データコネクションを張る

 

図解すると下図のようになります。

特徴は「サーバーがクライアントPCのどのポートにアクセスしてくるか分からない」というところです。

 

一体何が「アクティブ」なのでしょうか?

図にもありますが、外部のサーバーから内部のクライアントに対してコネクションを張りにいきます。

これが「アクティブ」で、クライアントを守っているファイアウォールから見ると「外部から攻撃を受けているようにも見える」のです。

外部から内部のクライアントに対してコネクションを張りにくる。だから「アクティブ」です。

 

●パッシブモード

一方、パッシブモードですが、詳しく解説すると以下の手順になります。

①クライアント から サーバへデータコネクションの要求

②サーバ から クライアントへサーバのどのポート番号(1024~)へアクセスしてデータコネクションを張ればいいのか通知する

③クライアント から サーバへサーバが通知したポート番号へデータコネクションを張る

※パッシブモードの場合は、20/TCPポートを使いません。

 

なんとなく「アクティブモード」との違いが分かったでしょうか?

お気づきの通り、クライアントがサーバーの指定通りのポートにコネクションを張りにいきます。

指示された通りにコネクションを張る。だから「パッシブ」です。

 

一般的な環境ではパッシブモードでないとつながらない場合が多い

実際にレンタルサーバーを運用している方は思い当たると思いますが、通常「アクティブモード」に設定すると、FTP通信がつながりません。

その原因はファイアウォール(FireWall)です。

たとえば会社で仕事をしているとして、自分のPCにFFFTPがインストールされていて、外のデータセンターにあるサーバにアクセスするとします。

その場合、「アクティブモード」だとクライアントからサーバへの接続要求は通りますが、②サーバからクライアントへのランダムなポートへのコネクションがブロックされます。

 

通常、企業のファイアウォールでは全ポートを開放していませんし、外部から内部へ1024番以上のポートへの通信をブロックしています。

クライアント/サーバのシステムの場合は、クライアントがサーバに対してサービスを要求しますが、FTPプロトコルの「アクティブモード」の場合は「サーバからクライアントに対して」コネクションを張りにいきます。

補足事項(ポート番号に関して)

アクティブモードで、サーバーが1024番以上のポートへコネクションを張りにいきますが、なぜ1024番ポート以上なのでしょうか?

その理由はネットワーク通信においてポート番号の役割が大体決まっているからです。

特に0~1023番ポートは「ウェルノウンポート」と言ってほぼ番号と役割が紐付いているので、勝手に使ってはいけないという暗黙の了解があるのです。

0~1023     ウェルノウンポート番号
1024~49151   登録済みポート番号
49152~65535  動的・プライベート ポート番号

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (4件)

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください