WindowsのFTPクライアントではパッシブモード(PASV)では接続できない?

最終更新日付: 2021年2月4日

FTPクライアントの接続には

  • パッシブモード
  • アクティブモード

の二種類があり、
このモードの違いにより、TCPレベルで接続が方法が異なります。
詳しくは別途説明するとしまして、
WindowsのFTPクライアント(標準ftp.exe)では、パッシブモードでのFTPサーバーへのアクセスは出来ないのでしょうか?

環境・前提条件

確認した環境は以下になります。

  • FTPサーバー(Windows Server 2016 の IIS 10)
  • FTPクライアント (Windows 10 のバージョン10 )

結論、Windows標準のftp.exeではパッシブモード(PASV)接続できない

結論から言ってしまうと、
残念ながらWindows標準のftp.exeではパッシブモード(PASV)接続はできません。
変更もできません。

どうしてもFTPクライアントでパッシブモード接続をしなければならないサーバー環境の場合は、
Windowsでは別のFFFTPやWinSCPといったソフトを使用し、パッシブモード接続する必要があります。

image

パッシブモード(PASV)かアクティブモード(PORT)か見極める方法

image

そのFTPクライアントの接続が、

  • パッシブモード(PASV)接続しようとしているか
  • アクティブモード(PORT)での接続をしようとしているのか

見極める方法は、デバックモードでFTPクライアントを実行することでわかります。

ftp –d

上記は、Windowsの場合のデバックモードの起動オプションです。

デバックモードで、ftp接続をし、lsコマンドを実行したあとのデバックが

  • PORT クライアントIPアドレス(接続ポート)

の場合は、アクティブモードで、
サーバーへクライアントのIPアドレスを返信し、サーバーからクライアントへの接続を促します(アクティブモード)

一方、

  • PASV サーバーIPアドレス(接続ポート)

の場合は、クライアントにサーバーへの接続ポートの教えクライアントからのサーバー接続を促します(パッシブモード)

上記は、FTPコマンド単位で再接続が行われます。

噂のquote pasvコマンドではパッシブモード(PASV)に変更できないの?

image

残念ながら、できません。

quote pasv

コマンドを発行することにより、サーバーから接続先のポート情報が来ますが、
FTPコマンドを実行すると、そのPASVポートには接続せず、結局PORTコマンドでアクティブモード接続してしまう挙動となります。

image
image

LinuxやAS400のFTPクライアントはデフォルトでパッシブモード(PASV)で動作し、アクティブモードへのへの変更ができるのですが、
Windowsのftpクライアントの場合は、残念ながらアクティブモードでしか接続できないんですね。

以上、Windows 標準ftpクライアントの接続動作モードの話でした

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です