DUICUO

オープンソースの無料FTPサーバーソフトウェア27選

FTPサーバー(ファイル転送プロトコルサーバーとも呼ばれます)は、ネットワーク経由でファイルを転送できるソフトウェアアプリケーションです。FTPサーバーは、ユーザーにリモートサーバー上のファイルのアップロード、ダウンロード、および管理手段を提供します。

プライベート ファイル サーバーをセットアップする際には、さまざまなソフトウェア オプションを利用できますが、その中でもオープン ソース FTP サーバーは幅広い選択肢を提供し、次のような主な利点があります。

  • カスタマイズ性:オープンソースFTPサーバーでは、ユーザーが特定のニーズに合わせてコードをカスタマイズおよび変更できます。この柔軟性により、機能の追加や変更、セキュリティの強化、パフォーマンスの最適化が可能になります。
  • 透明性:オープンソースFTPサーバーは、ソースコードが自由にレビューできるため、透明性が確保されています。これにより、ユーザーはサーバーの機能を理解し、セキュリティと信頼性を検証できます。
  • コミュニティ サポート: オープン ソース FTP サーバーには通常、サーバーの開発に貢献し、トラブルシューティングやインストールおよび使用方法のガイダンスの提供などのサポートを提供するアクティブな開発者とユーザーのコミュニティがあります。
  • 費用対効果:オープンソースFTPサーバーは通常無料で利用でき、ソフトウェアライセンス料はかかりません。そのため、予算が限られている個人や組織にとって、費用対効果の高いソリューションとなります。
  • セキュリティ:オープンソースFTPサーバーは、コミュニティの集合的な知識と専門知識の恩恵を受けており、より安全なものとなっています。脆弱性は迅速に特定・解決され、セキュリティ強化策も迅速に共有・実装できます。
  • 柔軟性:オープンソースFTPサーバーは、プラットフォームの互換性と統合において柔軟性を提供します。様々なオペレーティングシステムに導入でき、他のツールやシステムとの統合も容易です。

オープンソース FTP サーバーの利点を考慮して、この記事では主にいくつかの優れたオープンソース FTP サーバー アプリケーションを推奨します。

1. VSFTPD

https://security.appspot.com/vsftpd.html

Vsftpd は、すぐに使用できるセキュリティと、サーバー上で FTP および FTP 仮想ユーザーを構成するための一連の機能を提供するため、あらゆる種類の Linux サーバーの管理者にとって好ましい選択肢です。

Vsftpdは、Red Hat、openSUSE、Debian、FreeBSD、Gnome、KDEで使用されています。下のグラフは、1台のマシンで1500人以上の同時ユーザーが24時間あたり2.6TBのファイルサービスを提供したVsftpdのパフォーマンスを示しています。

ハイライト:

  • オープンソースGPLライセンス
  • 多くのLinuxサーバーディストリビューションと互換性があります
  • 大規模なユーザーコミュニティのサポートにより

特徴:

  • 仮想IP設定
  • ユーザー管理機能: 仮想ユーザーの作成、管理、削除、および管理。
  • ユーザーごとの設定をサポート
  • 帯域幅制限をサポート
  • IPソース構成をサポート
  • IPごとの制限設定をサポート
  • IPv6をサポート
  • SSLをサポート

2. Apache FTPサーバー

https://mina.apache.org/ftpserver-project/

Apache FTP Serverは、Javaで開発されたオープンソースのクロスプラットフォームFTPサーバーです。WindowsサーバーとLinuxサーバーの両方でスムーズに動作します。スタンドアロンサーバーとして実行することも、Javaサーバーアプリケーションに組み込んで実行することもできるため、開発者やシステム管理者に幅広い選択肢を提供します。Apache FTP ServerはSpringベースのアプリケーションと統合できるため、Spring開発者にとって非常に便利です。スタンドアロン運用の場合、Apache FTPはWindowsサービス、Linuxサービス、またはUnix/Linuxデーモンとして実行できます。

ハイライト:

  • Javaベースの開発
  • クロスプラットフォームの互換性をサポート
  • Java アプリケーションに統合できます。

特徴:

  • マルチスレッド設計に基づく
  • 仮想ディレクトリをサポート
  • ユーザー管理
  • キュー管理
  • 回復可能なファイルのアップロードとダウンロード
  • ASCIIおよびバイナリデータ転送の処理
  • IP管理
  • IP禁止をサポート
  • イベント通知
  • アップロードとダウンロードの速度を高速化する Z モードをサポートします。
  • 暗黙的/明示的なSSL/TLSをサポート
  • カスタマイズ可能なFTPメッセージ
  • MDTM には、ファイルの日付/タイムスタンプを変更するためのサポートが組み込まれています。
  • イベントログをサポート

3. ProFTP(Linux)

http://www.proftpd.org/

ProFTPdはUnix/Linuxシステム用のFTPサーバーです。インストールも使いやすく、高度な設定が可能です。Apacheの「.htaccess」によく似た「.ftpaccess」設定ファイルを使用することで、複数の仮想FTPサーバーをサポートできます。

ハイライト:

  • オープンソースライセンス GPL
  • モジュール設計: データベース、LDAP サーバー、TLS/SSL 暗号化、RADIUS 用の多くのモジュールが作成されています。
  • 複数の仮想FTPサーバーをサポート

特徴:

  • Apache の「.htaccess」ディレクトリ設定と同様に、「.ftpaccess」をディレクトリ設定に使用できます。
  • 匿名FTPをサポート
  • 1つ以上の仮想FTPサーバーまたは匿名FTPサービスを構成する
  • Linux ファイル システムの権限に基づいて隠しファイルとディレクトリをサポートします。
  • ログ
  • IPv6をサポート
  • 期限切れのアカウント設定
  • スタンドアロンモードでは非特権ユーザーとして使用できます

4. クロスFTP

http://www.crossftp.com/crossftpserver.htm

CrossFTPは、WindowsおよびUnix/Linuxシステムで動作するクロスプラットフォームFTPサーバーです。Javaで開発されているため、インストール、管理、アップデートが簡単です。CrossFTPはシンプルなグラフィカルユーザーインターフェースを備え、設定管理モジュールで簡単に接続、IP制御、ファイルディレクトリ、FTPメッセージなどを設定できます。CrossFTPのグラフィカルインターフェースでは、ログ設定オプションやサーバー使用状況統計情報も確認できます。

ハイライト:

  • Pure Java アプリケーションは複数のプラットフォームをサポートします
  • 高度な設定が可能
  • あらゆるタイプのユーザー向けのコマンドラインとGUI
  • Apache v2.0オープンソースライセンスに基づく
  • 上級者と初心者向けのチュートリアル
  • 詳細なマニュアルとよくある質問(FAQ)のナレッジベース

特徴:

  • インストール、管理、保守、更新が簡単
  • UTF-8に基づくディレクトリエンコーディング
  • ユーザーの仮想ディレクトリをサポート
  • ユーザーの書き込み/読み取り権限設定をサポート
  • アイドル時間の設定をサポート
  • アップロード/ダウンロード制限の設定をサポート
  • 匿名ログインをサポート
  • IP 管理: フィルタリング、バインディング、ブロック。
  • データベースストレージまたはLDAPストレージをサポート
  • カスタマイズ可能なFTPメッセージ
  • 暗黙的/明示的なSSL/TLSをサポート
  • 検出プロトコルをサポート
  • データのタイムスタンプによるファイルのクエリをサポート
  • アップロード/ダウンロード速度を高速化する「MODE Z」をサポート
  • ASCIIおよびバイナリデータ転送をサポート

5. uFTP (Linux、Unix)

https://www.uftpserver.com/

uFTPは、C言語で書かれたオープンソースで軽量かつポータブルなFTPサーバーであり、高いパフォーマンスを提供します。主にUnix/Linux (POSIX) サーバー向けに設計されています。さらに、uFTPは非常に使いやすく、FTPコマンドライン操作をサポートしており、FTPサーバーのすべての機能を実行できます。MITライセンスの下でリリースされていますが、OpenSSLプロジェクトによって開発されたOpenSSL Toolkitソフトウェアが含まれていることにご注意ください。そのため、使用前にOpenSSLライセンスを確認することをお勧めします。

ハイライト:

  • MITオープンソースライセンス
  • 軽量
  • C言語で書かれています。
  • ポータブル
  • 単一の構成ファイル (uftpd.cfg)
  • すべての主要なFTPクライアントと互換性があります
  • ドキュメントは包括的です (https://www.uftpserver.com/wiki/opensource-ftp-server)。

特徴:

  • FTPコマンドをサポート
  • スムーズなパフォーマンス
  • 簡単にインストールできます
  • シンプルな構成
  • 使いやすい

6. glFTPd (Linux、Unix)

https://glftpd.io/

glFTPdは、Unix/Linuxオペレーティングシステム用の無料かつオープンソースのFTPサーバーです。最初のバージョンは1998年初頭にまで遡る、古くからあるフリーソフトウェアです。glFTPdはGreyLine FTP(オリジナルの開発者の名前)の略称です。glFTPdはFreeBSD、OpenBSD、UbuntuなどのUnixシステムでスムーズに動作します。glFTPdは多くのFTP/siteコマンドをサポートし、chroot環境で動作するため、比較的安全です。

特徴:

  • chrootモードで実行
  • 仮想ユーザー管理
  • グローバルまたはユーザー固有の帯域幅制限をサポート
  • TLS/SSL暗号化をサポート
  • アップロード/ダウンロード比率制御
  • ユーザー管理: 作成、更新、削除
  • IPv6サポート
  • ユーザーに IPv6 マスクを追加できるようにする
  • ダウンロード(DL)とアップロード(UL)の使用状況統計
  • クッキーサポート
  • ECDHE キー交換をサポートし、PFS を ECC 証明書と互換性のあるものにします。
  • ディスク容量、使用量、使用可能容量、使用済み容量の表示をサポートします。
  • ファイル リスト内の実際のユーザー名とグループ名を非表示にします。
  • 「dirlog」キャッシュをサポート
  • XCWD、XMKD、XRMD、XPWD、XCUP などの FTP コマンドをサポートします。
  • SSCN コマンドは、SSL FXL を実行するための代替方法としてサポートされています。

7. ColoradoFTP (Windows、Linux)

https://cftp.coldcore.com

ColoradoFTPは、クロスプラットフォーム互換性をサポートするJavaベースのオープンソースFTPサーバーです。WindowsおよびLinuxサーバーで簡単に実行でき、最新のJavaVMでもスムーズに動作します。ColoradoFTPは、RFC 959およびRFC 3659ファイルプロトコルと互換性があります。

ハイライト:

  • Java で開発されており、Windows、macOS、Linux、Unix システムでの実行をサポートしています。
  • プロジェクトコードに埋め込んで実行する

特徴:

  • コマンドライン操作をサポート
  • XMLベースの構成
  • 無制限アカウント
  • 簡単なユーザー管理
  • ユーザーのグループ化をサポート
  • アクセス管理
  • プラグインのサポート
  • 複数のダウンロードおよびインストールオプション

8. ワープ

http://waarp.github.io/Waarp/index.html

Waarpはオープンソースのウェブサーバーで、複数のプロトコル(HTTP、FTP、FTPS、SSH、SFTP)といくつかの独自プロトコルをサポートし、非常に機能的なサーバーとなっています。Waarpでは、開発者がプロ​​ジェクト内で実装をカスタマイズできるため、カスタムFTPサーバーを作成できます。Waarpチームはまた、WaarpFTPを基盤として構築された強力なFTPサーバーであるWaarpGatewayFTPもリリースしました。

ハイライト:

  • LGPLオープンソースライセンス。
  • 複数のプロトコルをサポート
  • 開発APIを提供する

特徴:

  • シンプルな構成
  • FTP、FTPS、SFTPをサポート
  • 複数の認証オプション (ファイルベース、データベース ベース、LDAP ベースなど)。
  • コマンド前/コマンド後のアクティビティをサポート
  • レコーダーをサポート
  • リモートファイルのMD5とSHA-1の計算
  • リモートサーバーのシャットダウンを許可する
  • [WaarpGatewayFtp]: 拡張 SITE コマンドを介して認証を動的に変更する機能をサポートします。
  • [WaarpGatewayFtp]: (STOR 操作と同様) 前または後に実行される明示的なコマンドを指定する機能 (RETR)。
  • HTTPSベースの管理インターフェースを提供する
  • 各ユーザーのコマンドライン機能を指定する
  • 送信ログをデータベースに保存する機能をサポート
  • CPU または接続の数の制限をサポートします。

9. FileZilla FTPサーバー

https://filezilla-project.org/

FileZillaはオープンソースの無料FTPクライアント兼サーバーです。FileZilla ServerはWindows上で動作し、Windows 7、8、8.1、10の32ビット版と64ビット版をサポートしています。FileZillaクライアントは複数のプラットフォームに対応しています。FileZillaは長年にわたり利用されており、多くの商用有料ソフトウェアプログラムと競合しています。

ハイライト:

  • Windowsのみ。
  • 32 ビットと 64 ビットの両方をサポートします。
  • エンドユーザーが簡単にインストールして使用できる
  • ホームサーバー、中小企業、個人使用に適しています。
  • マルチプロトコルサポート

特徴:

  • 簡単なインストールをサポートするシンプルなUIを提供します
  • 構成マネージャーを提供する
  • カスタムポートをサポート
  • ユーザーマネージャーを提供する
  • 速度制限をサポート
  • パッシブ モードは、使いやすいマネージャーを通じてサポートされます。
  • TLS/SSL サポート
  • IPフィルターとマネージャー
  • ユーザーあたりの接続制限
  • 共有フォルダマネージャー
  • ファイル転送圧縮をサポート
  • フォルダ/ディレクトリの権限設定オプション
  • 制御可能なスレッド数
  • ネットワーク接続、送信なし、ログインなどのタイムアウト設定。
  • 別のマシンでのリモートフォルダ共有をサポート
  • 匿名ユーザーログインをサポート

10. ドクターFTPD

http://drftpd.org/

DrFTPは、WindowsおよびLinux/Unixサーバー上で動作するJavaで開発された分散FTPサーバーです。マスター・スレーブアーキテクチャを採用し、優れたファイル転送効率とセキュリティを提供します。分散FTPデーモンを使用することで、FTPグリッドまたは複数のFTPサイトを構築できます。

ハイライト:

  • 無料
  • プラグイン
  • マスター/スレーブの概念を使用してファイル転送を制御します。
  • 最も人気のあるFTPクライアントをサポート

特徴:

  • ルート/管理者権限のないネットワーク サーバー。
  • パッシブ(PASV)モードをサポート
  • キャッシュ検証に基づいたメモリ ファイルのリスト。
  • プラグイン機能をサポート
  • 監視プラグインを提供する
  • ユーザーの帯域幅に基づいてスレーブ デバイスを選択します。
  • スレーブデバイス間でファイルを転送します。
  • トライアルアカウントのオプション

11. Python FTP (1.6k スター)

https://github.com/giampaolo/pyftpdlib

Python FTP サーバー ライブラリは、高レベルの移植可能なインターフェイスを提供し、これにより Python を使用して非常に効率的でスケーラブルな非同期 FTP サーバーを簡単に作成できるようになります。

12. SFTPGo (7K スター)

https://github.com/drakkan/sftpgo

SFTPGo は、さまざまなストレージ バックエンド、仮想フォルダー、カスタム コマンドとフック、複数の認証方法、LDAP/Active Directory 統合、クォータ サポート、帯域幅制限、レート制限、IP フィルタリング、シェル モード フィルタリング、アイドル接続の終了、ブロックされたユーザー リストの管理、Geo-IP フィルタリング、Git リポジトリ、SCP、rsync、FTP/S、WebDAV をサポートする多目的ファイル転送サーバーです。

また、TLS 証明書の ACME プロトコル、双方向 TLS 認証、Prometheus メトリック、HAProxy PROXY プロトコル、Linux システム ユーザー アカウントからの簡単な移行、ポータブル モード、SFTP サブシステム モード、パフォーマンス分析、柔軟な構成形式、正確なログ ファイル、プラグイン システム、Terraform プロバイダーの Infrastructure as Code (IaC) サポートもサポートしています。

13. ライトFTP

https://github.com/hfiref0x/LightFTP

LightFTP は、BSD-2-Clause ライセンスに基づいた軽量のオープンソース FTP サーバーです。

14. Golang FTPサーバー

https://github.com/fclairamb/ftpserver

この FTP サーバーは、afero (https://github.com/spf13/afero) の Fs インターフェイスを使用し、ftpserverlib (https://github.com/fclairamb/ftpserverlib) のリファレンス実装として機能する、従来の FTP デバイスと最新のクラウド ファイル システム間のゲートウェイです。

15. ポータブルFTPサーバー

https://github.com/FubarDevelopment/FtpServer

この FTP サーバーは .NET Standard 2.0 ライブラリとして記述されており、抽象ファイル システムを備えています。

16. uftpd(スター164)

https://github.com/troglobit/uftpd

uftpd は、デフォルトの標準の組み込み構成オプションを備えた UNIX デーモンです。

特徴:

  • FTPおよび/またはTFTPをサポート
  • 複雑な設定ファイルはありません
  • 標準の UNIX inetd またはスタンドアロンで実行できます。
  • /etc/passwd またはカスタム パスに基づいて FTP ユーザーの $HOME を使用します。
  • ftp/tcp および /etc/services で tftp/udp またはカスタム ポートを使用します。
  • 権限を分離し、ポートからルート権限を解除します。
  • シンボリック リンクは FTP ホーム ディレクトリの外部でも使用できます。
  • 書き込み可能な FTP ホーム ディレクトリをユーザー グループに応じて割り当てることができます。

17.MinimalFTPサーバー(スター144)

https://github.com/Guichaguri/MinimalFTP

これは軽量でシンプルなFTPサーバーです。完全にJavaで開発されており、他の基盤ライブラリに依存しません。

主な機能は次のとおりです。

  • 「最小限」という名前が付いていますが、次のようなさまざまな機能をサポートしています。
  • 100% Java開発
  • 軽量
  • 57個のFTPコマンドをサポート
  • TLS/SSLをサポート
  • カスタムファイルシステムをサポート
  • カスタムユーザー認証をサポート
  • カスタムコマンドをサポート
  • 一部の FTP クライアントがまだ使用している可能性のある古いコマンドをサポートします。

18.ftpd

https://github.com/goftp/ftpd

これはgithub.com/goftp/serverをベースにしたオープンソースのFTPサーバーです。ただし、このプロジェクトは現在メンテナンスされていません。

19. シンプルFTPサーバー

https://github.com/xreef/SimpleFTPServer

これは、Arduino、Arduino SAMD WiFiNINA、ESP8266、ESP32、STM32、または Raspberry Pi にインストールできるシンプルでコンパクトな FTP サーバーです。

20. ポータブルFTPサーバー

https://github.com/dubasdey/portable-ftp-server

これはJavaで開発されたオープンソースのクロスプラットフォーム対応ポータブルFTPサーバーで、Windows、Linux、Macなどのシステムに適しています。コマンドラインモードとGUIモードをサポートしています。

21. TFTPサーバーを開く

https://sourceforge.net/projects/tftp-server/

これは、Windows/Unix PXEBOOT、ハードウェアローディング、tsize、blksize、そして大容量ファイルのブロック番号スクロールをサポートする、無料のマルチスレッドTFTPサーバーです。サービスとして独立して実行できます。

主な機能は次のとおりです。

  • ほぼすべての業界標準をサポート
  • 合計サイズ(tsize)、データブロックサイズ、間隔時間、データブロックのスクロール
  • ルートではなく、プロセス所有者の権限をサポートします。
  • 拡張ログと履歴ログをサポートします。
  • サーバーのインターフェースとポートを指定できます。
  • サポートされているポート範囲
  • スレッドプールのサポート
  • UnixデーモンまたはWindowsサービスをサポート
  • システムへの影響は非常に小さいです。

22.bftpd

https://sourceforge.net/projects/bftpd/

bftpdはUnixシステムをベースとしたFTPサーバーです。inetdモードとスタンドアロンモードをサポートし、ほとんどのRFC FTPコマンドをサポートし、設定も非常に簡単です。

23. Java FTPサーバー

https://sourceforge.net/projects/pj-ftp-server/

これは無料のオープンソースの純粋な Java FTP サーバーです。

主な機能には、マルチスレッド、マルチプラットフォーム互換性、高速性、GUI および CMD モードのサポート、IP フィルタリング、読み取り/書き込みサポート、インターフェイス選択、レート制限構成、匿名モード、TCP ポート選択、フォルダー選択、ログ記録、ログイン制限などがあります。

24. FTPサーバーライブラリ .NET

https://github.com/taoyouh/FtpServer

これは、.NET Core で使用できる FTP サーバー プログラムであり、カスタム開発用の .NET 標準コア ライブラリでもあります。

25. ユニFTP

https://github.com/UlyssesWu/UniFTP

UniFTP は C# で書かれた FTP サーバー ライブラリです。

26. ゼプトサーバー

https://github.com/junk-machine/ZeptoServer

ZeptoServer は、強力な機能と柔軟性を誇る、最小限の軽量 FTP サーバーです。

主な機能は効率性とセキュリティです。さらに、モジュール設計により、あらゆるテキストベースのプロトコルへの拡張が容易です。つまり、HTTP、SMTP、その他のテキストベースのプロトコルに対応したサーバーが必要であっても、ZeptoServerなら簡単に対応できます。

ZeptoServerのもう一つの利点は、ホスティングオプションにおける豊富な機能セットです。スタンドアロンサーバーとしてホスティングできるだけでなく、インプロセスホスティングのオプションも提供しています。さらに、ServerHostプロジェクト内のZeptoServerクラスを活用することで、ZeptoServerを既存のアプリケーションにシームレスに直接統合できます。

27. SmallHTTPサーバー

https://sourceforge.net/projects/smallsrv/

SmallHTTP Server は、電子メール、DNS、FTP、プロキシ サーバー機能などのさまざまな機能を提供する、小型でオープン ソースの無料 HTTP サーバーです。

CGIスクリプト、サーバーサイドサポート、仮想ホスティング、ディレクトリサービスを提供します。さらに、詳細な統計情報、Web管理、ローカル管理、IPv6およびSSL/TLSサポート、GZip圧縮、HTTP TLS VPNサーバーも提供します。