はじめに
ファイル転送の検証やテストを行う際に、ローカル環境でFTPサーバが必要になる場面がある。
WindowsにはIIS(Internet Information Services)が標準で搭載されており、FTPサーバ機能を簡単に有効化できる。
今回は、Windows IISを使ってローカル環境にFTPサーバを構築する手順を紹介する。
環境
Windows 11 Pro
IIS 10.0IIS FTPサーバとは
IISは、Microsoftが提供するWebサーバソフトウェアで、FTP機能も含まれている。
Windows標準機能として提供されているため、追加のソフトウェアをインストールすることなくFTPサーバを構築できる。
※以前書いた記事のWindowsでIIS Webサーバを使ってみるでWindows IIS Webサーバを使っている。
IISとFTPサービスのインストール
IISの有効化
Windowsの機能からIISを有効化する。 ※既に有効化されているのであればスキップしてよい。
Windowsキー + Rで「ファイル名を指定して実行」を開くappwiz.cplと入力してEnter- 左側の「Windowsの機能の有効化または無効化」をクリック
- 「インターネット インフォメーション サービス」にチェックを入れる
- 「FTPサーバー」を展開し、以下にチェックを入れる
- FTPサービス
- FTP機能拡張

- 「Webサーバー」も展開し、必要最小限の機能にチェックを入れる
- Web管理ツール > IIS管理コンソール
- 「OK」をクリックしてインストールを開始する
インストールが完了すると、IISが利用可能になる。
IISマネージャーの起動
FTPサイトの作成
基本設定
IISマネージャーでFTPサイトを作成する。
- 左側のツリーで「サイト」を右クリック
- 「FTPサイトの追加」を選択

- 「サイト情報」で以下を設定
- FTPサイト名:
LocalFTPSite(任意の名前) - 物理パス: FTPで公開するフォルダを指定(例:
C:\FTPRoot)
- FTPサイト名:

- 「次へ」をクリック
バインドとSSLの設定
- 「バインドおよびSSL設定」で以下を設定
- IPアドレス:
すべて未割り当てまたは特定のIPアドレス - ポート:
21(FTPの標準ポート) - 仮想ホスト: 空欄
- SSL:
なし(テスト環境の場合)またはSSL証明書を要求する(本番環境)
- IPアドレス:

- 「次へ」をクリック
認証とアクセス許可の設定
- 「認証および承認情報」で以下を設定
- 認証:
基本にチェック - 承認:
指定されたユーザーを選択し、testftpuser(後ほど作成)を入力 - アクセス許可:
読み取りと書き込みの両方にチェック(必要に応じて)
- 認証:

- 「完了」をクリック
FTPサイトが作成され、一覧に表示される。
ユーザの作成
FTPサーバにアクセスするための専用ユーザを作成する。
Windowsキー + Rで「ファイル名を指定して実行」を開くlusrmgr.mscと入力してEnter- 「ローカル ユーザーとグループ」が開く
- 左側で「ユーザー」を選択
- 右クリックして「新しいユーザー」を選択

- 以下の情報を入力
- ユーザー名:
testftpuser(任意の名前) - パスワード: 任意のパスワードを設定
- パスワードの確認入力: 同じパスワードを再入力
- 「ユーザーは次回ログオン時にパスワードの変更が必要」のチェックを外す
- 「パスワードを無期限にする」にチェック
- ユーザー名:

- 「作成」をクリック
FTPサーバの動作確認
コマンドプロンプトからの接続
Windowsのftpコマンドで接続を確認する。
ftp localhostユーザー名とパスワードを入力してログインできれば成功である。
kbushi に接続しました。
220 Microsoft FTP Service
200 OPTS UTF8 command successful - UTF8 encoding now ON.
ユーザー (kbushi:(none)): testftpuser
331 Password required
パスワード:
230 User logged in.
ftp>基本的なFTPコマンドを試してみる。
| コマンド | 説明 |
|---|---|
ls | ファイル一覧を表示 |
pwd | 現在のディレクトリを表示 |
cd directory | ディレクトリを移動 |
get filename | ファイルをダウンロード |
put filename | ファイルをアップロード |
bye | 接続を終了 |
FTPクライアントからの接続
FileZillaなどのFTPクライアントソフトからも接続できる。
| 項目 | 設定値 |
|---|---|
| ホスト | localhostまたは127.0.0.1 |
| ポート | 21 |
| プロトコル | FTP |
| ユーザー名 | [設定したユーザ] |
| パスワード | [設定したパスワード] |
接続すると、設定したFTPルートディレクトリの内容が表示される。
参考
- FTP サーバーをインストールする - Microsoft Learn
https://learn.microsoft.com/ja-jp/iis/install/installing-publishing-technologies/installing-and-configuring-ftp-7-on-iis-7
おわりに
FTPの通信を行うプログラムの動作確認を行うことがあり、ローカルにFTPサーバを構築する必要があったため構築をしてみた。Windows IISを使うことで、簡単にローカル環境でFTPサーバを構築できたので手軽さでいうとかなり良かった。
構築自体は簡単ではあるが、任意のエラーを返すみたいなことはできないのでクライアントプログラムの検証用としては物足りないかもしれない…。
PythonにはpyftpdlibっていうFTPサーバを構築するものがあり、そのライブラリでは任意のエラーが返せるようなので検証用としてはこちらのほうが良さそうな気がする。
次回は、それを使って試してみるとしようかな。
