FTP服务器命令就是通过命令行与FTP服务器交互的指令集,掌握这些命令能让你在全图形化的今天,依然用一条命令完成上传、下载和批量管理。 我见过不少运维老手,桌面开着FileZilla,但遇到服务器没装图形界面时,照样能靠命令把文件搬得飞快,这篇文章就把最常用的FTP命令按场景拆开,你直接照着敲就行。
ftp服务器常用命令有哪些?先搞清楚连接和登录
连接服务器:一条ftp命令搞定
打开终端,输入 ftp 主机地址 回车,系统会提示输入用户名和密码,如果服务器默认端口不是21,直接在地址后面加端口号,ftp 192.168.1.1 2121。
- 连接默认端口:
ftp 192.168.1.1 - 跳过自动登录,手动输入用户:
ftp -n 192.168.1.1,然后输入user admin和pass 密码 - 退出连接:输入
bye或quit
这里有个细节:ftp -n 会关闭自动登录功能,适合脚本里使用,避免卡在交互式用户名输入上。
登录控制:user、pass、prompt
登录后,你会看到 ftp> 提示符,此时所有命令都是在这个提示符下执行的。
user 用户名:切换登录用户pass 密码:输入密码(部分服务器要求)prompt:关闭或开启交互式提示,批量传输文件时,关闭提示能避免每个文件都问“是否确认”
文件传输与目录操作:ftp服务器命令怎么用
查看与切换目录:pwd、ls、cd
刚登录时,你通常站在用户主目录下,先看看自己在哪,再决定去哪儿。
pwd:显示远程服务器当前目录ls:列出远程目录下的文件,支持通配符,如ls .txtcd 目录名:切换远程目录,cd /var/www/htmllcd 目录名:切换本地目录,lcd /home/user/downloads,很多人漏掉这个命令,导致下载文件不知道存哪了
上传下载:put、get、mput、mget
上传下载是使用频率最高的操作,记住这四个命令。
put 本地文件:把单个文件上传到远程当前目录get 远程文件:把单个文件下载到本地当前目录mput .jpg:批量上传所有jpg文件mget .zip:批量下载所有zip文件
批量操作前,先执行 prompt 关闭确认,否则每个文件都要你按一次Y,效率极低。
删除与重命名:delete、mdelete、rename
delete 文件名:删除远程单个文件mdelete .log:批量删除远程日志文件rename 旧名 新名:重命名远程文件
注意,删除操作不可逆,执行前用 ls 确认一下路径。
权限与目录创建:mkdir、rmdir、chmod
mkdir 目录名:在远程创建新目录rmdir 目录名:删除空目录chmod 权限 文件名:修改远程文件权限,chmod 755 index.php
chmod 命令是否可用,取决于服务器端FTP软件的配置,如果提示命令无效,检查vsftpd是否开启了chmod许可。
linux ftp命令和windows ftp命令有什么区别?
两种系统自带的ftp客户端对比
Windows和Linux都内置了ftp命令,但细节上有些差异,用表格对比最直观:
| 功能点 | Linux(ftp命令) | Windows(ftp命令) |
|---|---|---|
| 被动模式切换 | 支持 -p 参数启动时开启,或输入 passive |
无启动参数,需输入 passive 切换 |
| 自动登录抑制 | -n 参数 |
-n 参数 |
| 本地目录切换 | lcd 命令 |
lcd 命令 |
| 批量传输提示 | prompt 命令 |
prompt 命令 |
| 命令补全 | 支持Tab键补全 | 不支持 |
整体命令集基本一致,但Linux下的ftp命令更稳定,适合脚本化;Windows自带的ftp命令在写脚本时容易出现编码问题,更推荐用PowerShell的ftp模块或第三方工具。
mac ftp命令怎么连接服务器?场景技巧
新版macOS已经删除了自带的 ftp 命令,取而代之的是 open 命令和 lftp,如果你只是临时连一下,可以使用:
open ftp://用户名:密码@主机地址
但这样会在终端历史里暴露密码,不推荐,更安全的方式是安装 lftp:
brew install lftp
lftp -u 用户名,密码 主机地址
lftp 支持断点续传、镜像同步,比原生ftp命令强大得多,国内开发者常用它来同步服务器上的静态资源,/var/www/html 目录。
实战技巧:ftp服务器命令在批量传输和脚本中的应用
用脚本自动化ftp传输
运维场景中,定时备份文件到远程FTP服务器是典型需求,写一个bash脚本,配合 cron 就能实现无人值守。
#!/bin/bash
ftp -n 192.168.1.1 <<EOF
user admin backup2026
binary
prompt
put /var/log/nginx/access.log backup_access.log
bye
EOF
关键点:
binary:切换为二进制传输模式,避免图片、压缩包损坏prompt:关闭交互确认,让脚本安静跑完bye:正常退出,确保连接释放
遇到问题怎么办?常见错误排查
连接超时、登录失败是最常见的坑,按下面顺序排查:
- 防火墙是否放行21端口?国内云服务器默认安全组经常拦FTP端口,去控制台放行即可
- 服务器是否配置了被动模式端口范围?如果开启被动模式,需要放行对应的端口段,比如vsftpd中设置的
pasv_min_port=30000和pasv_max_port=31000 - 中文文件名乱码?尝试输入
literal OPTS UTF8 ON,如果服务器支持UTF8,问题会立即解决
关于ftp服务器命令的常见问题(Q&A)
问题1:ftp服务器命令和sftp命令是一回事吗?
不是,FTP命令基于FTP协议,数据和控制信息均以明文传输;SFTP命令基于SSH协议,所有数据都经过加密,SFTP命令的用法类似,但连接方式不同,sftp user@host,行业共识认为,公网环境下应优先使用SFTP,避免账号密码被嗅探。
问题2:Windows下怎么列出ftp服务器上的隐藏文件?
Windows自带ftp的 ls 命令默认不显示隐藏文件,可以尝试输入 ls -a,但能否生效取决于服务器端的FTP软件是否支持该参数,更可靠的方式是使用 quote SYST 查看服务器系统类型,然后根据类型选择 mlsd 命令。mlsd 在Windows自带客户端中不支持,建议切换到 lftp 或 WinSCP 操作。
问题3:ftp命令如何断点续传?
自带的ftp命令不支持断点续传,传输中断后只能重新传,替代方案是使用 lftp 或 curl,例如使用curl断点续传下载:
curl -C - -O ftp://用户名:密码@主机地址/大文件.zip
-C - 表示自动从断点处继续,适用于网络不稳定的大文件传输场景。
FTP命令虽然古老,但在批量操作和脚本化场景中依然高效。 连接、传输、切换目录”这三大类命令,你就能在没有图形界面的服务器上从容处理文件,平时多敲几次,肌肉记忆比任何教程都管用。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/558606.html

![[java漫谈系列152]ftp常用命令](https://i0.hdslb.com/bfs/archive/9a6f1ae1e28f50037586dc82a1ef637d63986a4d.png)