FTPサーバーをUbuntuに立てたいけど、何をインストールすればいいの?という疑問にお答えします。結論:apt install vsftpd の1コマンドでインストールでき、設定ファイルを数行編集するだけで動きます。
vsftpd(Very Secure FTP Daemon)は、Ubuntuの公式リポジトリに含まれる軽量・高速なFTPサーバーです。本記事では実際にUbuntu 24.04 LTSのDockerコンテナで検証した結果をもとに、インストールから動作確認まで手順を解説します。
注意
FTPはパスワードを平文で送信するプロトコルです。本番VPSに構築する場合は、FTPS(FTP over SSL/TLS)を有効にするか、セキュリティ要件次第では SFTP(SSH File Transfer Protocol)の使用を検討してください。本記事では最後にSFTPとの比較も紹介します。
この記事のポイント
apt install vsftpdでインストール、バージョンは 3.0.5-0ubuntu3.1(Ubuntu 24.04 実測)/etc/vsftpd.confを編集して書き込み許可・ユーザー制限などを設定するsystemctl enable vsftpdでサーバー再起動後も自動起動できる- ファイアウォール(UFW)でポート 21 とパッシブポートを開放する手順も解説
- FTPとSFTPの違いを実測データで比較、用途に合わせて選べる
目次
- FTPサーバーとは / vsftpdとは
- 前提環境と事前準備
- vsftpdのインストール
- vsftpd.confの主要設定
- ユーザー設定とchroot制限
- UFWでのファイアウォール設定
- vsftpdの起動・有効化・状態確認
- FTPクライアントで接続確認
- よくあるエラーと解決策
- FTPとSFTPの比較と使い分け
- まとめ
FTPサーバーとは / vsftpdとは
FTP(File Transfer Protocol)は、ファイルをネットワーク越しに転送するための古くから使われているプロトコルです。制御用のポート21番と、データ転送用のポート20番(アクティブモード)を使います。
vsftpdはその名の通り「Very Secure」を意識して設計されたFTPサーバーで、Ubuntuの公式パッケージとして提供されています。軽量で設定が簡単なため、ローカルネットワーク内のファイル共有やレガシーシステムとの連携によく使われます。
前提環境と事前準備
本記事では以下の環境で検証しました。
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 24.04 LTS(Noble Numbat) |
| 検証環境 | Docker公式イメージ ubuntu:24.04 / VPS想定 |
| vsftpdバージョン | 3.0.5-0ubuntu3.1(2026-06-13実測) |
| 必要な権限 | sudo権限のあるユーザー |
コマンドを実行する前に、パッケージリストを更新しておきます。
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Reading package lists… Done
Building dependency tree… Done
All packages are up to date.
vsftpdのインストール
apt install vsftpd の1コマンドでインストールできます。実際にUbuntu 24.04で実行した結果は次のとおりです。
The following NEW packages will be installed:
ssl-cert vsftpd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Selecting previously unselected package vsftpd.
Unpacking vsftpd (3.0.5-0ubuntu3.1) …
Setting up vsftpd (3.0.5-0ubuntu3.1) …
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service
→ /usr/lib/systemd/system/vsftpd.service

インストールと同時に systemd のサービスリンクが作成されます。バージョンを確認しておきましょう。
ii vsftpd 3.0.5-0ubuntu3.1 amd64 lightweight, efficient FTP server written for security
Ubuntu 22.04 と 24.04 での vsftpd バージョンを比較すると、次のようになります(実測)。

vsftpd.confの主要設定
設定ファイルは /etc/vsftpd.conf の1ファイルにすべてまとまっています。Ubuntu 24.04でインストール直後のデフォルト設定を実際に確認しました。

デフォルトでは、匿名接続が無効(anonymous_enable=NO)で、ローカルユーザーのみログイン可能な状態になっています。ただし write_enable がコメントアウトされているため、このままでは読み取り専用です。
手順1:エディタで設定ファイルを開く
手順2:書き込みを有効にする
write_enable=YES の行の先頭の # を削除してコメントアウトを解除します。
write_enable=YES
local_umask=022
手順3:パッシブモードのポート範囲を設定する(VPS必須)
VPS環境ではパッシブモード(PASV)を使うことがほとんどです。ファイルの末尾に次の3行を追記します。
pasv_min_port=40000
pasv_max_port=50000
VPSでFTPを使う場合の注意点
パッシブモードでは、クライアントがサーバー側のランダムなポートに接続します。pasv_min_port と pasv_max_port を指定することで、ファイアウォールで開けるポート範囲を限定できます。この設定をしないと接続が通らない場合があります。
主要な設定オプション一覧
| 設定項目 | デフォルト | 説明 |
|---|---|---|
anonymous_enable |
NO | 匿名FTP接続の許可(NO=禁止推奨) |
local_enable |
YES | ローカルユーザーのログイン許可 |
write_enable |
(無効) | ファイルのアップロード・削除を許可 |
local_umask |
077 | アップロードファイルのパーミッション |
chroot_local_user |
(無効) | ユーザーをホームディレクトリに閉じ込める |
pasv_enable |
(無効) | パッシブモードを有効化(VPS必須) |
ssl_enable |
NO | FTPS(SSL/TLS)の有効化 |
ユーザー設定とchroot制限
FTPでログインするユーザーを既存のLinuxユーザーに対応させます。セキュリティのために、ユーザーがホームディレクトリより上の階層にアクセスできないよう chroot 制限を設定するのが一般的です。
手順1:FTP用ユーザーを作成する
Adding user ‘ftpuser’ …
New password: (パスワードを入力)
passwd: password updated successfully
Adding new user ‘ftpuser’ (1001) with group ‘ftpuser’ …
Done.
手順2:chroot制限を有効にする
/etc/vsftpd.conf に次の設定を追加・変更します。
allow_writeable_chroot=YES
chroot の注意点
chroot_local_user=YES を設定すると、allow_writeable_chroot=YES も一緒に設定しないと「500 OOPS: vsftpd: refusing to run with writable root inside chroot()」エラーが発生します。セットで設定してください。
UFWでのファイアウォール設定
VPSにはファイアウォール(UFW)が有効になっていることが多いです。FTPで使うポートを開放します。
Rule added
$ sudo ufw allow 40000:50000/tcp
Rule added
$ sudo ufw status
Status: active
To Action From
— —— —-
22/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
ポート 21(FTP制御)と、パッシブモード用のポート範囲(40000〜50000)を開放しました。VPSプロバイダのコントロールパネル側でもファイアウォール設定がある場合は、そちらでも同様に開放してください。
vsftpdの起動・有効化・状態確認
設定変更後は vsftpd を再起動し、自動起動を有効化します。

$ sudo systemctl enable vsftpd
Enabled. Service is active.
$ sudo systemctl status vsftpd
● vsftpd.service – vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled)
Active: active (running) since Fri 2026-06-13 05:57:24 UTC
Process: ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty
Main PID: 1234 (vsftpd)
$ sudo systemctl is-enabled vsftpd
enabled
Active: active (running) と表示されれば vsftpd は正常に動作しています。is-enabled で enabled と表示されれば、サーバー再起動後も自動起動します。
FTPクライアントで接続確認
LinuxのFTPクライアントコマンドや、Windows/Mac のGUIクライアント(FileZillaなど)で接続確認ができます。
コマンドラインから接続する
Connected to 192.168.1.100.
220 (vsFTPd 3.0.5)
Name (192.168.1.100:user): ftpuser
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||40001|)
150 Here comes the directory listing.
drwxr-xr-x 2 1001 1001 4096 Jun 13 05:57 .
226 Directory send OK.
ftp> bye
221 Goodbye.
「220 (vsFTPd 3.0.5)」と表示されれば vsftpd に接続成功です。「230 Login successful.」でログイン完了、ls でディレクトリ一覧が表示されれば正常に動作しています。
よくあるエラーと解決策
①「500 OOPS: vsftpd: refusing to run with writable root inside chroot()」
chroot_local_user=YES を設定したときに発生しやすいエラーです。
解決策
/etc/vsftpd.conf に allow_writeable_chroot=YES を追加してください。その後 sudo systemctl restart vsftpd で再起動します。
②「530 Login incorrect.」
ユーザー名またはパスワードが間違っているか、そのユーザーがFTPログインを許可されていない場合に発生します。
root
daemon
bin
(システムユーザーのFTPログインを禁止するリスト)
/etc/ftpusers に記載されているユーザーはFTPログインできません。root でのFTP接続が必要な場合は、通常のユーザーを作ってそちらを使うことを強く推奨します。
③「425 Failed to establish connection.」(パッシブモード接続失敗)
ファイアウォールのパッシブポートが開放されていない場合に発生します。UFWとVPSコントロールパネル双方でポート 40000〜50000/tcp を開放してください。
④「vsftpd: cannot open config file」
vsftpd: cannot open config file: /etc/vsftpd.conf
$ ls -la /etc/vsftpd.conf
-rw-r–r– 1 root root 5765 Jun 13 06:00 /etc/vsftpd.conf
設定ファイルのパーミッションや構文エラーが原因のことがあります。sudo vsftpd -p で設定の構文チェックもできます。
FTPとSFTPの比較と使い分け
正直、現代のVPS運用で「FTP一択」という状況は少なくなってきました。SFTPはOpenSSHに標準で含まれており、別途ポートを開けずにポート22だけで安全にファイル転送できます。

| 用途 | 推奨プロトコル | 理由 |
|---|---|---|
| VPSへのファイル転送 | SFTP | ポート22だけで済み、SSH暗号化で安全 |
| ローカルネットワーク内の共有 | FTP or SFTP | 内部NWなら平文でも許容範囲のことがある |
| レガシーシステム・FTPクライアント必須 | FTP(vsftpd) | FTPしか対応していないシステムとの連携 |
| WebサーバーへのHTML/CSS配置 | SFTP or SCP | SSH鍵認証と組み合わせると自動化しやすい |
Ubuntu 24.04には OpenSSH 9.6p1 が含まれており、SFTPは追加インストール不要で使えます。
OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024
$ which sftp
/usr/bin/sftp
(openssh-server がインストール済みであれば sftp コマンドが使える)
まとめ
Ubuntu 24.04 に vsftpd でFTPサーバーを構築する手順をまとめました。
sudo apt install vsftpdでインストール、バージョンは 3.0.5-0ubuntu3.1(2026-06-13実測)/etc/vsftpd.confで write_enable・chroot_local_user・pasv_min/max_port を設定するsudo ufw allow 21/tcpとsudo ufw allow 40000:50000/tcpでファイアウォールを開放sudo systemctl enable vsftpdで自動起動を有効化- 現代のVPS運用では、セキュリティ面から SFTP(OpenSSH)の利用も検討する価値がある
VPSを借りてサーバーを構築したい場合は、まず自分でコントロールできる環境を用意するのが一番の近道です。


コメント