FreeBSD QandA 1555

FreeBSD QandA

Q. FTP の passive (パッシブ) モードの使い方を教えてください。

A. ファイアウォールが存在する場合、その設定によっては active モードでは
   外部の FTP サーバを利用できないことがあります。このようなとき、FTP
   クライアントの設定を passive モードに変更してやると、接続できるように
   なるかもしれません。

     - FreeBSD の ftp(1) コマンドの場合

         1. ftp コマンドの起動時に -p オプションをつける
         2. pftp (/usr/bin/pftp) を使う。ftp -p と全く同じ
         3. ftp> プロンプトで passive と打つ
            (もう一度 passive と打つと active モードに戻る)
         4. 環境変数 FTP_PASSIVE_MODE を設定する
            例: % setenv FTP_PASSIVE_MODE YES (csh・tcsh の場合)
                $ export FTP_PASSIVE_MODE=YES (sh・bash の場合)

       環境変数 FTP_PASSIVE_MODE は、fetch(1) コマンドに対しても
       有効なので、ports 利用時に指定すると便利です。→ [管理番号 443]
       なお、FreeBSD 4.0-RELEASE 以降ではデフォルトで
         FTP_PASSIVE_MODE=YES
       となります (これは /etc/login.conf に記述されています)。

     - ncftp の場合
       ncftp では、サイトごとの設定で passive モードに設定し、
       なおかつ、~/.ncftp/prefs 内で ftp-mode 1 と書く必要が
       あります。

       各サイトごとの設定変更は次の通りです。 

         1. ncftp のプロンプトから [open] コマンドを実行
         2. 希望のサイトをカーソルキーで選択
         3. [/ed] と打ち込んで、Edit モードへ移行
         4. [K] キーを押して ``K Can use passive FTP:'' を選択
         5. [Space] キーで ``Yes'' に変更し、[Enter] キーで選択
         6. [X] キーを押して編集を終了

       この変更は保存されます。あとは、そのまま [Enter] キーを押せば
       passive モードで接続できます。

   余談. 多くの Web ブラウザや Proxy サーバも、FTP サーバにアクセスすると
         きは、デフォルトで passive モードを使うようになっています。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。