概要
Windows11において、ローカルPCをFTPサーバーとして利用する方法を記載しました。
FTPサーバーへ接続してファイルの取得や配置を行うシステムの動作確認など、テスト環境の構築時に有効です。
FTPとは
FTP(File Transfer Protocol)は、ファイル転送のためのアプリケーション層のプロトコルです。
一般的に以下のような特徴があります。
制御用(コントロール) と データ転送用(データ) の2種類の接続を使う
コントロール接続は指示を出すための会話専用ラインで、データ接続ファイルのやりとり専用ラインのイメージです。
使用ポートは、コントロール接続は21番ポートを常に使用しますが、データ接続のポートは状況によって変わります。
コントロール接続とデータ接続は"用途が違うので必ず両方使う"もので、「役割が明確に分離されている」ものです。常にペアで使われる2回線構成のイメージです。
認証はユーザーとパスワードで認証する形が中心です。また、標準のFTPは暗号化を行わないため、通信や資格情報が平文になります。
アクティブモード と パッシブモード
データ接続は以下の二種類があります。
- アクティブモード:サーバー → クライアントに向けてデータ接続を張る
- パッシブモード:クライアント → サーバーに向けてデータ接続を張る
ファイアウォールやNAT配下ではパッシブがつながりやすいため、今日ではパッシブ利用が主流です。
FTPサーバーとは
FTPサーバーは、クライアントからのFTP接続を受け付け、ユーザー認証・権限管理・ファイルのアップロードやダウンロード・ディレクトリの参照などを提供するソフトウェア(およびその稼働環境)のことです。
WindowsではIIS(インターネット インフォメーション サービス)の一機能としてFTPサーバーを提供できます。
構築手順
ローカルPCを外部からはアクセスできないFTPサーバーにする手順を記載しました。
繰り返しになりますが、以下の設定は、自宅や職場などの同一ネットワーク内での利用を前提としています。そのため、インターネット上の外部ネットワークからアクセスすることはできません。
外部からアクセスできない理由は主に以下の二つです。
① ルーターが外からの通信を自動的にブロックしているため
家庭用・会社用のルーターは、外部(インターネット)から勝手にPCへ入ってこられないように、最初から“カギを閉めた状態”になっています。
特別な設定(ポート開放)をしない限り、外からは入れません。
② Windows のファイアウォールも外部からの接続を止めるため
Windows には「Windows Defender Firewall」という機能があり、これが外からのFTPアクセスを最初からブロックしています。
つまり、何もしなければ外部からアクセスされることはないので、今回の構築は安心してテスト用として使えます。
①「Windowsの機能」ウィンドウを開く
タスクバーの検索ボックスから "Windows の機能の有効化または無効化" と検索し、「Windowsの機能」を開く
② FTPに関係する項目にチェックを付ける
リストの中から、以下の項目にチェックを付ける
インターネット インフォメーション サービス
└ FTP サーバー
└ FTP サービス(チェック)
└ Web 管理ツール
└ IIS 管理コンソール(チェック)
③ 「IIS マネージャー」を開く
タスクバーの検索ボックスから "IIS" と検索し、「インターネット インフォメーション サービス(IIS)マネージャー」を開く
④ 左のツリーの「サイト」を右クリックし、「FTPサイトの追加」をクリック
⑤ サイト情報を入力する
- FTP サイト名:任意
- 物理パス:FTPのルートとなるパスを入力
次へ
- IPアドレス:自身のPCのIPアドレス(コマンドプロンプトからipconfig等で確認可能)
- ポート:21
- 仮想ホスト名を有効にする:無効
- FTPサイトを自動的に開始する:任意
- SSL:なし
次へ
- 認証:基本にチェック
- 承認:指定されたユーザー(Windowsにログインしているユーザー名を入力)
- アクセス許可:読み取りと書き込みにチェック
終了
⑥ 起動確認
IIS マネージャーのサイトにFTPが起動していたらOK
右側の「FTP サイトの管理」から起動や停止ができます。
以上で完了です。
注意点
「⑤ サイト情報を入力する」で設定するユーザーですが、会社などのドメインアカウントを指定した場合、認証時にドメインコントローラーへの問い合わせが発生します。
そのため、社内LANに接続している環境では認証が成功しても、在宅ワークなどドメインコントローラーへ接続できない環境からFTP接続を行うと、認証エラーとなります。
この場合、FTPの認証にはローカルアカウントを設定し、ローカルアカウントでPCにログインしたうえでFTP接続を行うことで対応可能です。