27個開源免費FTP服務端軟件
FTP服務器,也稱為文件傳輸協議服務器,是一種允許通過網絡傳輸文件的軟件應用程序。它為用戶提供了一種在遠程服務器上上傳、下載和管理文件的方法。
在搭建私有化文件服務器時有許多軟件可以選型,其中開源FTP服務器選型范圍更廣,主要優勢如下:
- 可定制性:開源FTP服務器允許用戶根據自己的特定需求定制和修改代碼。這種靈活性使用戶能夠添加或修改功能,增強安全性并優化性能。
- 透明性:開源FTP服務器提供透明性,因為源代碼可免費供審查。這使用戶能夠了解服務器的功能并驗證其安全性和可靠性。
- 社區支持:開源FTP服務器通常擁有活躍的開發人員和用戶社區,他們為服務器的開發做出貢獻并提供支持。包括幫助解決問題、提供安裝和使用方面的指導等。
- 成本效益:開源FTP服務器通常免費使用,無需軟件許可費用。這使得它們成為預算有限的個人和組織的經濟有效的解決方案。
- 安全性:開源FTP服務器受益于社區的集體知識和專業知識,使其更安全。可以及時識別和解決漏洞,并快速共享和實施安全增強措施。
- 靈活性:開源FTP服務器在平臺兼容性和集成方面提供了靈活性。它們可以部署在各種操作系統上,并輕松與其他工具和系統集成。
鑒于開源FTP服務器的優勢,本文主要推薦一些較好的開源FTP服務器應用程序。
1.Vsftpd
https://security.appspot.com/vsftpd.html
Vsftpd是各類Linux服務器管理員的首選,它提供了開箱即用的安全性,以及一組功能來配置服務器上的FTP和FTP虛擬用戶。
Vsftpd被Red Hat、openSUSE、Debian、FreeBSD、Gnome、KDE使用。下面圖表展示的是Vsftpd的性能,在一臺機器上通過Vsftpd提供2.6TB的文件服務,在24小時內并發用戶數超過1500。
亮點:
- 開源GPL許可
- 與許多Linux服務器發行版兼容
- 具有龐大的用戶社區支持
功能特性:
- 虛擬IP配置
- 用戶管理功能:創建、管理、刪除、虛擬用戶
- 支持每用戶配置
- 支持帶寬限制
- 支持IP源配置
- 支持每IP的限制設置
- 支持IPv6
- 支持SSL
2.Apache FTP-Server
https://mina.apache.org/ftpserver-project/
Apache FTP服務器是一個開源的跨平臺FTP服務器,它基于Java開發,可以在Windows服務器上流暢運行,在Linux服務器上也是如此。可以作為獨立的服務器運行,也可以嵌入到Java服務器應用程序中運行,因此它為開發人員和系統管理員提供了更多的選擇。Apache FTP Server可以與基于Spring的應用程序集成,為Spring開發人員提供支持。 對于獨立運行方面,Apache FTP可以作為Windows服務以及Linux服務或Unix/Linux守護進程運行。
亮點:
- 基于java開發
- 支持跨平臺
- 可以集成到Java應用程序中
功能特性:
- 基于多線程設計
- 支持虛擬目錄
- 用戶管理
- 隊列管理
- 可恢復的文件上傳和下載
- 處理ASCII和二進制數據傳輸
- IPs管理
- 支持IP禁令
- 事件通知
- 支持Z模式,上傳下載速度更快
- 支持隱式/顯式 SSL/TLS
- 可自定義的FTP消息
- 通過MDTM內置支持更改文件日期/時間戳
- 支持事件日志記錄
3.ProFTP (Linux)
http://www.proftpd.org/
ProFTPd是一個用于Unix/Linux系統的FTP服務器。它易于安裝、易于使用、高度可配置。可通過“.ftpaccess”配置文件提供多個虛擬FTP服務器支持,該文件與Apache的“.htaccess”非常類似。
亮點:
- 開源協議GPL
- 模塊化設計:許多模塊已經為數據庫,LDAP服務器,TLS/SSL加密,RADIUS編寫。
- 支持多個虛擬FTP服務器
功能特性:
- 類似于Apache的“.htaccess”的目錄配置“.ftpaccess”
- 支持匿名FTP
- 配置單個或多個虛擬FTP服務器或匿名FTP服務
- 支持基于Linux文件系統權限的隱藏文件和目錄
- 日志
- 支持IPv6
- 過期賬戶配置
- 可在獨立模式下作為非特權用戶使用
4.CrossFTP
http://www.crossftp.com/crossftpserver.htm
CrossFTP是一個跨平臺的FTP服務器,可在Windows和Unix/ Linux系統上運行。使用Java開發,很容易安裝、管理和更新。CrossFTP有一個簡單的用戶圖形操作界面,提供了一個易于配置的設置管理器模塊,可以配置連接、IP控制、文件目錄、FTP消息等,CrossFTP圖形操作界面還提供了日志記錄配置選項和服務器使用情況統計信息。
亮點:
- 純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是一個開源的、輕量級的、可移植的FTP服務器,采用C語言編寫,因此具備較高性能。它主要是為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可以流暢地運行在Unix系統上,如FreeBSD、OpenBSD、Ubuntu等。glFTP支持許多FTP/ site命令,并在chroot環境中運行,這使得它相對安全。
功能特性:
- 在chroot模式下運行
- 虛擬用戶管理
- 支持全局或者按用戶限制帶寬
- 支持TLS/SSL加密
- 上傳/下載比率控制
- 用戶管理:創建、更新、刪除
- IPv6支持
- 允許向用戶添加IPv6掩碼
- 下載(DL)和上傳(UL)使用量統計
- cookie支持
- 支持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.Waarp
http://waarp.github.io/Waarp/index.html
Waarp是一個開源Web服務器,它提供多種協議(HTTP、FTP、FTPS、SSH、SFTP)和多種專有協議,是一個功能齊全的服務器。Waarp支持開發人員在項目中進行自定義開發,可以構建自定義FTP服務器。Waarp的團隊發布了WaarpGatewayFTP,這是一個強大的FTP服務器,正是構建在WaarpFTP之上。
亮點:
- LGPL開源協議。
- 支持多種協議
- 提供開發API
功能特性:
- 配置簡單
- 支持FTP、FTPS和SFTP
- 多種身份驗證選項(包括:基于文件、數據庫、LDAP)
- 支持命令前/命令后活動
- 支持記錄儀
- 遠程文件MD5、SHA-1計算
- 允許關閉遠程服務器
- [WaarpGatewayFtp]:支持通過擴展的SITE命令動態更改身份驗證的能力
- [WaarpGatewayFtp]:指定要在(RETR)之前或之后(類似STOR的操作)執行的顯式命令的能力
- 提供基于HTTPS的管理界面
- 為每個用戶指定命令行能力
- 支持在數據庫中保存傳輸日志
- 支持限制CPU或連接數量
9.FileZilla FTP Server
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.DrFTPD
http://drftpd.org/
DrFTP是一個用Java開發的分布式FTP服務器,它可以在Windows以及Linux/Unix 服務器上運行。它使用主從架構來提供更好的文件傳輸效率和安全性能。可以用通過分布式FTP守護進程來創建一個FTP網格或多FTP網點。
亮點:
- 免費
- 插件
- 使用主從概念來控制文件傳輸
- 支持大多數流行的FTP客戶端
功能特性:
- 沒有root/管理員權限的網絡服務器。
- 支持被動(PASV)模式
- 基于緩存校驗的內存文件列表。
- 支持插件功能
- 提供監控插件
- 根據用戶帶寬選擇從機。
- 在從機之間傳輸文件。
- 試用賬戶選項
11.Python FTP(Star 1.6k)
https://github.com/giampaolo/pyftpdlib
Python FTP服務器庫提供了一個高級的可移植接口,可以輕松地使用Python編寫非常高效、可擴展的、異步的FTP服務器。
12.SFTPGo(Star 7K)
https://github.com/drakkan/sftpgo
SFTPGo是一個多功能的文件傳輸服務器,支持各種存儲后端,虛擬文件夾,自定義命令和鉤子,多種身份驗證方法,LDAP/Active Directory集成,配額支持,帶寬限制,速率限制,IP過濾器,shell模式過濾器,空閑連接終止,阻止用戶列表管理,Geo-IP過濾,Git存儲庫,SCP,rsync,FTP/S,WebDAV。
它還支持TLS證書的ACME協議,雙向TLS身份驗證,Prometheus指標,HAProxy PROXY協議,從Linux系統用戶帳戶輕松遷移,可移植模式,SFTP子系統模式,性能分析,靈活的配置格式,準確的日志文件,插件系統和Terraform提供程序的基礎設施即代碼(IaC)支持。
13.LightFTP
https://github.com/hfiref0x/LightFTP
LightFTP是一個基于BSD-2-Clause License協議的輕量級開源FTP服務器。
14.Golang FTP Server
https://github.com/fclairamb/ftpserver
這個FTP服務器是老式FTP設備和現代云文件系統之間的網關,使用afero(https://github.com/spf13/afero)的Fs接口,并作為ftpserverlib(https://github.com/fclairamb/ftpserverlib)的參考實現。
15.Portable FTP server
https://github.com/FubarDevelopment/FtpServer
這個FTP服務器被編寫為.NET標準2.0庫,并有一個抽象的文件系統。
16.uftpd(Star 164)
https://github.com/troglobit/uftpd
uftpd是一個UNIX守護進程,有默認的常規內置配置項。
功能特性:
- 支持FTP和/或TFTP
- 沒有復雜的配置文件
- 可以在標準UNIX inetd運行或單獨運行
- 根據/etc/passwd或自定義路徑,使用ftp用戶的$HOME
- 使用ftp/tcp中的tftp/udp和/etc/services或自定義端口
- 權限分離,解除綁定到端口的根權限
- 可以在FTP主目錄之外使用符號鏈接
- 可以按照用戶組分配可寫FTP主目錄
17.MinimalFTP Server(Star 144)
https://github.com/Guichaguri/MinimalFTP
這是一個輕量級的、簡單的FTP服務器。純Java開發,沒有其他底層庫依賴。
主要特征包括:
- Although it's named "minimal", it supports a bunch of features:雖然它被命名為“minimal”,但它支持一系列功能:
- 100% Java開發
- 輕量級
- 支持57個FTP命令
- 支持TLS/SSL
- 支持自定義文件系統
- 支持自定義用戶身份驗證
- 支持自定義命令
- 支持某些FTP客戶端可能仍然使用的過時的命令
18.ftpd
https://github.com/goftp/ftpd
這是一個基于github.com/goftp/server的開源FTP服務器。但這個項目目前已經沒有在維護。
19.SimpleFTPServer
https://github.com/xreef/SimpleFTPServer
這是一個簡單小巧的FTP服務器,可以安裝在Arduino、ArduinoSAMD WiFiNINA、esp8266、esp32、stm32或者樹莓派上。
20.Portable FTP server
https://github.com/dubasdey/portable-ftp-server
這是一個Java開發的開源的跨平臺便攜式FTP服務器,適用于Windows、Linux Mac等系統。支持命令行模式或GUI模式。
21.Open TFTP Server
https://sourceforge.net/projects/tftp-server/
這是一個免費的多線程TFTP服務器,支持Windows/Unix的PXEBOOT,支持硬件加載,支持tsize、blksize,大型文件的塊號滾動,可以作為服務獨立運行。
主要特征包括:
- 支持幾乎所有行業標準
- 總大小(tsize)、數據塊大小、間隔時間、數據塊滾動
- 支持進程所有者權限,而不是root。
- 支持擴展日志記錄、歷史日志記錄
- 可以指定服務器接口和端口
- 支持端口區間
- 支持線程池
- 支持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.FtpServer Library .Net
https://github.com/taoyouh/FtpServer
這是一個可以用于.NET Core的FTP服務器程序以及用于自定義開發的.NET標準核心庫。
25.UniFTP
https://github.com/UlyssesWu/UniFTP
UniFTP是一個用C#編寫的FTP服務器庫。
26.ZeptoServer
https://github.com/junk-machine/ZeptoServer
ZeptoServer是一個極簡的輕量級FTP服務器,具備強大功能和靈活性。
關鍵特性是高效和安全。另外,其采用模塊化設計,可以輕松擴展任何文本協議。這意味著無論您需要HTTP、SMTP或任何其他基于文本的協議的服務器,ZeptoServer都可以輕松搞定。
ZeptoServer的另一個優勢是它在托管選項方面的功能非常豐富。它可以作為一個獨立的服務器托管,同時也提供了在進程中托管的選項。還可以利用ServerHost項目中的ZeptoServer類,您可以無縫地將ZeptoServer直接集成到現有的應用程序中。
27.SmallHTTP Server
https://sourceforge.net/projects/smallsrv/
SmallHTTP Server是一個小型的、開源的、免費的HTTP服務器,提供了郵件、DNS、FTP和代理服務器等一系列功能。
它提供了CGI腳本、服務器端、虛擬主機和目錄服務等。另外它還提供詳細的數據統計、Web管理、本地管理、IPv6和SSL/TLS支持,GZip壓縮和HTTP TLS VPN服務器。