| 模式 | 命令通道 (控制連接) | 數據通道 (數據連接) | 發起方 | 防火牆難點 |
|---|---|---|---|---|
| 主動模式 (PORT/Active) | Client → Server:21 | Server:20 → Client:Random High Port | Server 主動連接 Client | Client 端防火牆/NAT 需允許入站高端口,客戶端通常無法配置 |
| 被動模式 (PASV/Passive) | Client → Server:21 | Client:Random → Server:Random (PASV Port Range) | Client 主動連接 Server | **Server 端防火牆/NAT 必須放行 PASV 端口範圍**,且需向 Client 正確報告外網 IP |
現代網絡環境 (客戶端多在 NAT 後) **強制推薦使用被動模式 (PASV)**,核心任務是**服務端防火牆放行 PASV 端口範圍**並**正確配置外網 IP 回報**。
@echo off
:: 需管理員權限運行
:: 變量定義
set PASV_START=50000
set PASV_END=51000
set RULE_NAME="Serv-U FTP PASV Port Range"
:: 創建入站規則允許 PASV 端口範圍
netsh advfirewall firewall add rule name=%RULE_NAME% dir=in action=allow protocol=TCP localport=%PASV_START%-%PASV_END% profile=any enable=yes description="Serv-U FTP Passive Mode Data Ports"
:: 同時放行命令通道 21 (若未放行)
netsh advfirewall firewall add rule name="Serv-U FTP Command Port 21" dir=in action=allow protocol=TCP localport=21 profile=any enable=yes
:: 驗證規則
netsh advfirewall firewall show rule name=%RULE_NAME%
pause
| 錯誤碼 | 含義 | 典型原因 | 對應動作 |
|---|---|---|---|
| 425 Can't open data connection | 數據連接建立失敗 | PASV 端口未放行/外網 IP 回報錯誤/防火牆 ALG 失效 | 檢查防火牆/安全組/路由器映射、Serv-U PASV IP 設置 |
| 426 Connection closed; transfer aborted | 數據連接中斷 | 大文件傳輸超時/防火牆會話超時/網絡抖動 | 調大防火牆 FTP 會話超時 (建議 3600s)、啟用斷點續傳 |
| 530 Not logged in | 認證失敗 | 用戶名/密碼錯誤/用戶被禁用/權限不足 | 檢查 Serv-U 用戶配置、NTFS 權限、域控認證 |
| 550 Permission denied | 文件系統權限不足 | NTFS ACL 未授予 IIS_IUSRS/Serv-U 用戶 讀/寫/修改 權限 | 修正目錄 ACL、啟用繼承、移除拒絕條目 |
FTP 協議設計於 1971 年 (RFC 114),存在**明文傳輸密碼、雙通道 NAT 穿透困難、無完整性校驗、不支持並行傳輸/斷點續傳標準化**等缺陷。強烈建議新業務遷移至:
- SFTP (SSH File Transfer Protocol) : 單通道 TCP 22、加密認證傳輸、密鑰認證、標準化廣泛支持 (OpenSSH/WinSCP/FileZilla/Rclone)
- FTPS (FTP over SSL/TLS) : 顯式/隱式 TLS 加密 FTP,兼容舊客戶端,但雙通道 NAT 問題依存
- WebDAV / S3 API / Azure Blob / 阿里云 OSS SDK : HTTP/HTTPS 單通道、原生穿透防火牆/代理、支持簽名直傳/斷點續傳/版本控制/生命周期管理
- Rclone / Rsync / Syncthing : 同步/備份場景首選,加密、去重、增量、跨平台
Serv-U FTP 被動模式 (PASV) 連接失敗的核心在於 **服務端防火牆/安全組/路由器未放行 PASV 數據端口範圍 (默認 3000-3010,建議擴大至 50000-51000)** 及 **外網 IP 回報配置缺失**。解決路徑:Serv-U 修改 PASV 範圍 + 設置外網 IP → Windows 防火牆/硬件防火牆/雲安全組同步放行該範圍 + 端口映射 → 客戶端強制 PASV 模式測試。長期視角下,**建議逐步淘汰 FTP,遷移至 SFTP/對象存儲/現代同步工具**,從協議層面消除 NAT 穿透與明文傳輸痛點。