连接FTP服务器最直接的命令是 ftp 服务器地址,输入用户名和密码就能登录,Windows和Linux都自带这个工具。
FTP命令行客户端是操作系统的“标配”,无需额外安装,它的使用逻辑很简单:先用命令建立连接,进入交互环境后再发指令操作文件,下面按场景拆解,方便你直接对照使用。
ftp连接服务器命令是什么?先记住这两步
所谓两步,其实就是先建连,再认证,在终端或命令提示符中执行:
- 建连命令:
ftp 192.168.1.10 - 认证输入:在
Name:后输入用户名,在Password:后输入密码
如果FTP服务运行在非默认端口,进入 ftp> 提示符后用 open 192.168.1.10 2121 指定端口连接。
登录成功后,你会看到 ftp> 提示符,所有文件操作都在这里完成,最常用的一组命令如下:
dir或ls列出当前目录的文件cd切换远程目录lcd切换本地目录get下载文件到本地put上传文件到远程mget批量下载文件mput批量上传文件bye退出并断开连接
不要被这么多命令吓到,实际日常操作就用 get、put、cd、bye 这几个,记不住也没关系,在 ftp> 提示符后输入 help 就能看到全部可用命令。
Linux ftp连接服务器命令怎么用?从登录到上传下载
Linux下使用FTP命令的场景非常多,尤其是维护旧服务器或内网设备时,虽然SFTP越来越流行,但很多老系统仍然只提供FTP服务,所以掌握这套命令很有必要。
先确认或安装ftp客户端
大多数Linux发行版默认没有安装传统ftp客户端,先检查:
which ftp
如果没输出,根据系统安装:
- Debian/Ubuntu:
sudo apt install ftp - CentOS/RHEL:
sudo yum install ftp
登录与基础操作
连接服务器:
ftp 192.168.1.10
输入用户名后回车,再输入密码,注意密码不会显示,甚至不显示星号,这是正常现象,登录成功后,用
dir 查看目录内容。
下载单个文件:
ftp> get index.html
上传单个文件:
ftp> put local.txt
下载到本地指定目录时,先切换本地路径:
ftp> lcd /home/user/download ftp> get index.html
批量传输时关闭交互确认
使用 mget 或 mput 时,每个文件都会询问是否操作,非常烦人,在命令前执行一次:
ftp> prompt off
之后就可以安静地批量处理:
ftp> mget .jpg ftp> mput .bak
退出与中断
ftp> bye
如果连接断开或卡住了,按 Ctrl+C 中断,再输入 bye 退出,以上命令在绝大多数Linux发行版上表现一致,可以放心使用。
Windows下用cmd执行ftp连接服务器命令
Windows用户不需要下载任何客户端,命令提示符里预装了FTP工具,按 Win + R,输入 cmd 回车,就能开始。
连接ftp服务器的两种方式
一种直接带地址启动:
ftp 192.168.1.10
另一种先进入ftp环境再连接:
ftp open 192.168.1.10
要连接非21端口时,只能用第二种方式:
ftp open 192.168.1.10 2121
这是因为Windows的ftp命令不支持在启动参数中直接指定端口。
Windows下常见命令速查
| 命令 | 作用 |
|---|---|
dir |
查看远程目录 |
lcd |
切换本地目录 |
get |
下载文件 |
put |
上传文件 |
mget |
批量下载 |
mput |
批量上传 |
delete |
删除远程文件 |
bye |
断开连接 |
这些命令与Linux下完全一致,区别只是Windows的路径用反斜杠,lcd D:ftp,其他操作逻辑和Linux大同小异,因此这里不再重复。
ftp连接服务器命令与sftp命令有什么区别?
很多人在搜索“ftp连接服务器命令”时,其实想要的是SFTP,这里必须说清楚:FTP和SFTP是两种不同的协议,虽然命令长得像,但安全性和使用方式有本质区别。
行业共识认为,只要涉及公网传输,就应该优先选择SFTP,业内专家指出,目前主流云服务器默认都会开启SSH服务,因此SFTP几乎不需要额外配置就能直接使用。
核心区别对比
| 对比项 | FTP | SFTP |
|---|---|---|
| 默认端口 | 21 | 22 |
| 是否加密 | 明文传输 | 加密传输 |
| 认证方式 | 用户名密码 | 用户名密码或密钥 |
| 防火墙友好度 | 需开放多个端口 | 只开放22端口 |
| 推荐场景 | 内网/信任网络 | 公网/跨网络传输 |
连接命令差异
FTP连接命令:
ftp 192.168.1.10
SFTP连接命令:
sftp user@192.168.1.10
注意SFTP命令的写法不同,需要在@前面带上用户名,并且SFTP中 get、put、cd、lcd 等命令同样适用,但不再有 mget 和 mput,取而代之的是 get 和 put 支持通配符,所以迁移成本并不高。
ftp连接服务器命令超时或连接失败怎么办?
实际使用中,连接不上的情况最常见,下面按错误类型给排查思路。
连接超时
- 先确认目标服务器IP或域名能不能ping通,如果没有ping通,检查网络或服务器状态。
- 再确认FTP服务是否启动,在服务器本地执行
ps -ef | grep ftp或systemctl status vsftpd。 - 国内服务器还需要检查云服务商的安全组规则,是否放行TCP 21端口,放行数据端口则需要开启被动模式。
530认证失败
用户名或密码错误是最常见原因,注意FTP密码区分大小写,而且有些服务器限制root登录FTP,遇到这种情况可以换一个普通用户试试,或者检查FTP配置中的 userlist_enable 和 userlist_deny 参数。
425 Unable to build data connection
这就是典型的FTP主动模式被防火墙拦截,解决办法是在ftp提示符下执行:
ftp> passive
开启被动模式后重新执行 dir 或 ls,一般就能看到目录列表了,如果还不行,检查服务器防火墙是否放行了被动端口范围,大多数FTP服务器支持设置被动端口段,比如vsftpd的 pasv_min_port 和 pasv_max_port。
目录列表空白
登录成功但 dir 没有输出,多数情况下也是因主动/被动模式选择错误,按上面的 passive 切换即可,如果仍然空白,尝试在图形客户端中设置“使用被动FTP”的开关,但命令行下更推荐直接使用 passive 命令。
Q&A:关于ftp连接服务器命令的常见疑问
问题1:ftp连接成功后,怎么查看当前所在远程目录?
在 ftp> 提示符下输入 pwd,即可显示远程当前目录,注意和本地当前目录区分,本地目录用 !pwd 或先执行 lcd 查看。
问题2:如何用ftp命令实现断点续传?
传统ftp命令行工具不支持断点续传,如果需要中断后继续,可以改用 lftp,它内置的 -c 参数支持断点续传,lftp -c "pget -c ftp://user:pass@host/file.zip",更简单的方法是用SFTP,它也不支持断点续传,但传输稳定性更好。
问题3:ftp命令上传中文文件名文件总失败,怎么处理?
大部分FTP客户端使用默认编码,而服务器可能使用UTF-8或GBK,命令行工具没有编码转换选项,最直接的办法是把文件名改为英文或数字,如果是批量文件,推荐使用支持编码设置的图形客户端,如FileZilla,在站点管理器中指定字符集。
掌握ftp连接服务器命令的核心,无非是连接、认证、传输三步,只要你理解了被动模式和端口开放的关系,绝大多数连接问题都能自己解决。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/579330.html




