だらだらと思いついたこととか書くブログ

エンジニア的なネタとか備忘録とかを書いていく予定

FTPのアクティブ/パッシブモードについて

目的

FTP接続のアクティブ/パッシブモードについてとデータ転送の関係などについて調べる必要が出てきて、色々と新たに知ることも多かったので備忘録を兼ねてまとめておく

FTPの接続モードと詳細

FTPについての基本情報

  • FTPは「コントロールコネクション」と「データコネクション」という2つのコネクションにより実現されている
    • コントロールコネクションは、ログイン認証やFTPコマンドの送受信を行うためのコネクション
    • データコネクションは、実際のデータを転送するためのコネクション。FTPコマンド毎にこのコネクションが作成される

アクティブモード

  • FTPサーバー側からFTPクライアントに接続する方式
  • デフォルトではコントロールコネクションにTCP/21番ポート、データコネクションにTCP/20番ポートを使用する

パッシブモード

  • デフォルトではコントロールコネクションにTCP/21番ポート、データコネクションには毎回ランダムで決まるポート番号Tを使用する
    • 通常はセキュリティ上、対象のポートレンジを指定してそのポートはファイヤウォールで許可しておくといった設定で利用される

アクティブ、パッシブ以外のモード

  • アクティブ、パッシブ以外に「EPSV(拡張パッシブモード?)」というものもあるらしい
    • EPSVは対になるEPRTとともにIPv6とNAT(Network Address Translation)に対応したコマンド
    • コントロールコネクションと同じ接続先に対してクライアント->サーバでデータコネクションの接続の確立も行う

参考

cos.linux-dvr.biz

www.binzume.net

  • telnetコマンドでFTP接続する場合に参照。それぞれのコネクションの使い分けなどの理解につながると思う

blog.naosan.jp

www.ibm.com