FreeBSD QandA 1555
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 まで
お知らせください。