Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

GFTP / FTP 命令大全:從連接登錄到文件傳輸、目錄操作、權限管理的完整速查手冊

編輯:關於伺服器

FTP 雖老,但「斷點續傳、腳本自動化、嵌入式設備、內網大文件傳輸」場景仍不可替代。本文整理 **標準 FTP 命令 (RFC 959) + gFTP/常見客戶端擴展**,按功能分類,附高頻參數、腳本模板、避坑提示,作為運維、開發、測試人員的桌面速查手冊。

會話控制命令

命令縮寫說明示例
open連接 FTP 服務器open 192.168.1.100 21
user指定用戶名/密碼/賬戶user ftpuser password123
login重新登錄 (切換用戶)login newuser newpass
closedisconnect斷開連接,保留 ftp 提示符close
byequit斷開並退出 ftp 客戶端bye
!逃逸到本地 Shell 執行命令 (輸入 exit 返回)! ls -l
?help顯示命令幫助? get

傳輸模式設置 (關鍵:二進制 vs ASCII)

命令適用場景警告
binary / bi**所有非文本文件**:圖片、視頻、壓縮包、可執行文件、數據庫備份、Office 文檔、PDF...**默認、必須、永遠用 binary**,除非確確實實是純文本且需換行符轉換
ascii純文本文件:.txt, .csv, .log, .sql, .php, .js, .css, .html, .xml (需 CRLF ↔ LF 轉換)二進制文件用 ascii 會損壞內容 (字節插入/刪除)
type查看/設置當前傳輸類型type (顯示), type binary, type ascii

文件/目錄操作命令

命令縮寫說明示例
ls簡略列表 (僅文件名)ls /remote/path
dir詳細列表 (權限、大小、時間、擁有者)dir /remote/path
cd切換遠程目錄cd /var/www/html
cdup返回上級目錄 (等同 cd ..)cdup
pwd顯示遠程當前目錄pwd
mkdir創建遠程目錄mkdir backups
rmdir刪除空遠程目錄rmdir old_backups
delete刪除遠程文件delete test.zip
mdelete批量刪除遠程文件 (支持通配符)mdelete *.log
rename重命名/移動遠程文件rename old.sql new.sql

文件傳輸命令 (核心)

命令方向說明示例
get / recv遠程 → 本地下載單文件get backup.sql.gz /local/backups/
mget遠程 → 本地批量下載 (通配符),逐個確認 (prompt on)mget *.sql.gz
put / send本地 → 遠程上傳單文件put /local/app.zip /remote/releases/
mput本地 → 遠程批量上傳 (通配符)mput *.zip
append本地 → 遠程追加本地文件到遠程文件末尾 (斷點續傳核心)append huge.iso /remote/huge.iso

進階/輔助命令

命令說明示例
prompt切換交互確認 (mget/mput 時逐個詢問)。prompt off 批量無需確認prompt off
glob切換通配符展開 (默認 on)。glob off 禁用 * ?glob off
hash切換傳輸進度 # 打印 (每 2KB 一個 #)。視覺化進度hash on
bell切換傳輸完成響鈴bell on
debug切換調試輸出 (顯示發送給服務器的原始命令)。排查協議問題debug on
trace切換數據包路由跟蹤 (極少用)trace on
status顯示當前連接狀態、傳輸模式、提示狀態等status
quote / literal發送原始 FTP 命令給服務器 (繞過客戶端封裝)。用於非標準擴展命令quote SITE CHMOD 755 file.php
remotehelp顯示服務器支持的命令列表 (需服務器支持 HELP 命令)remotehelp
site發送 SITE 特定命令 (如 CHMOD, UMASK, IDLE, EXEC)site chmod 644 index.php

自動化腳本模板 (Shell + FTP 批處理)

# /usr/local/bin/ftp_backup.sh
#!/bin/bash
HOST="ftp.backup.com"
USER="backup_user"
PASS="StrongPassword123"
REMOTE_DIR="/backups/$(date +%Y%m)"
LOCAL_FILE="/data/backup_$(date +%F).sql.gz"

# 創建遠程目錄 (忽略已存在錯誤)
ftp -inv $HOST <

加入 crontab:0 2 * * * /usr/local/bin/ftp_backup.sh (每天凌晨 2 點備份上傳)

被動模式 vs 主動模式 — 連不上的 90% 原因

模式數據連接發起方防火牆/NAT 穿透難度客戶端設置
主動服務器主動連接客戶端端口極難 (客戶端通常在 NAT/防火牆後)客戶端需開放高端口、配置端口映射
被動 (PASV)客戶端連接服務器高端口**易** (只需服務器防火牆開放被動端口範圍)**默認、強制使用** passive on / ftp -p

服務器端配置 (vsftpd 示例):

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=你的公網IP (若服務器在 NAT 後)

防火牆放行:21 (命令) + 40000-40100 (被動數據)

安全加固清單

  • 禁用匿名登錄:anonymous_enable=NO
  • 限制用戶目錄:chroot_local_user=YES (限制在家目錄)
  • 啟用 SSL/TLS (FTPS):ssl_enable=YES, 強制加密控制/數據連接
  • 限制並發連接/速率:max_clients=50, max_per_ip=5, local_max_rate=10M
  • 日誌審計:xferlog_enable=YES, log_ftp_protocol=YES
  • 定期輪換密鑰/密碼,禁用弱密碼

總結

FTP 命令集不大,但**「Binary 模式、被動模式、批量腳本、FTPS 加密、chroot 限制」**這五大實戰鐵律決定了能否在生產環境穩定、安全地跑起來。把這份速查表存入 ~/cheatsheets/ftp.md,下次傳文件、寫腳本、排查連不上時,翻一眼就夠了——不用再去搜「ftp 怎麼下載整個目錄」。

Copyright © Windows教程網 All Rights Reserved