wu-ftpd (Washington University FTP Daemon) 曾長期佔據互聯網 FTP 服務器超 50% 市場份額,廣泛移植於 Linux、AIX、FreeBSD、HP-UX、Solaris 等平台。其虛擬主機功能允許單實例根據客戶端連接的目標 IP/主機名,動態加載不同配置文件,實現多域名/多業務隔離 — 這在虛擬化/容器化普及前是極具價值的特性。
RPM 安裝雖簡單 (rpm -ivh wu-ftpd*.rpm),但無法啟用虛擬主機等進階特性。源碼編譯步驟:
# 1. 獲取源碼
wget https://www.wu-ftpd.org/wu-ftpd-current.tar.gz
tar -zxvf wu-ftpd-current.tar.gz
cd wu-ftpd-*/
# 2. 關鍵配置:啟用虛擬主機支持
./configure --enable-virtual \
--prefix=/usr/local/wu-ftpd \
--with-upload \
--with-throttle \
--with-logging
# 3. 編譯安裝
make && make install
關鍵參數:--enable-virtual 編譯入虛擬主機邏輯;--with-upload 支援上傳限速/配額;--with-throttle 連接節流;--with-logging 增強日誌。
成功安裝後應包含:
/etc/ftpaccess、/etc/ftpconversions、/etc/ftpgroups、/etc/ftphosts、/etc/ftpusers/usr/bin/ftpcount、/usr/bin/ftpwho、/usr/sbin/ftprestart、/usr/sbin/ftpshut、/usr/sbin/in.ftpd (主守護進程)/etc/ftphosts (舊版為 ftpservers)該文件映射目標 IP → 配置文件:
# 格式: 目IP 配置文件路徑
172.20.66.10 /etc/ftpaccess.vhost1
172.20.66.20 /etc/ftpaccess.vhost2
192.168.1.100 /etc/ftpaccess.internal
工作流程:
ftphosts 匹配目標 IP。ftpaccess.vhost1 作為本次會話的權限/限制/消息配置。/etc/ftpaccess。/etc/ftpaccess.vhost1)# 歡迎消息
banner /etc/ftpwelcome.vhost1
# 登入限制
class vhost1 real 172.20.66.0/24
limit vhost1 50 "Sorry, too many users."
# 目錄權限
Allow vhost1
Deny all
# 上傳下載限速 (bytes/sec)
upload /home/vhost1 * 102400
download /home/vhost1 * 512000
# 虛擬用戶映射 (配合 /etc/ftpgroups)
private yes
passwd /etc/ftpd.passwd.vhost1
group /etc/ftpd.group.vhost1
private yes:啟用獨立用戶/組數據庫,不使用系統 /etc/passwd//etc/group。ftpasswd 工具管理虛擬用戶:ftpasswd --passwd --file=/etc/ftpd.passwd.vhost1 --name=user1 --uid=1001 --gid=1001 --home=/home/vhost1/user1 --shell=/bin/false。# xinetd 模式 (傳統)
# /etc/xinetd.d/wu-ftpd
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/wu-ftpd/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
disable = no
}
systemctl restart xinetd
# 或獨立模式 (需配置 listen=YES)
/usr/local/wu-ftpd/sbin/in.ftpd -l -a &
# 防火牆放行
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=20/tcp # 主動模式數據端口
firewall-cmd --reload
wu-ftpd 已停止維護 (最後版本 2.6.2,2004 年),存在已知漏洞 (CVE-2001-0550 等) 且缺乏現代特性 (TLS/SSL、IPv6、虛擬用戶原生支援)。**生產環境強烈建議遷移至**:
理解 wu-ftpd 虛擬主機機制,有助於掌握「單進程多配置」的經典設計模式。但面對現代安全合規要求,**請選擇活躍維護的現代 FTP 守護進程**,並在網絡層面實施 TLS 加密 (FTPS) 或改用 SFTP/SCP (SSH 子系統)。