Linux系统如何通过命令下载FTP服务器上的文件?

在Linux系统中,通过FTP(File Transfer Protocol)下载文件是常见的文件传输需求,尤其适用于跨平台、大文件传输或服务器管理场景,本文将详细介绍Linux环境下使用命令行工具和图形界面工具下载FTP文件的方法,包括基础操作、进阶技巧及注意事项,帮助用户高效完成文件传输任务。

linux如何下载ftp文件

Linux下FTP下载的基础命令行工具

Linux系统提供了多种FTP客户端工具,其中最常用的是ftp(基础工具)、lftp(增强工具)和wget(支持HTTP/FTP的下载工具),可根据需求选择使用。

使用ftp命令下载文件(基础工具)

ftp是Linux系统自带的FTP客户端,支持基本的文件上传、下载、目录浏览等功能,适合简单操作。

基本操作步骤:

  • 连接FTP服务器
    在终端输入ftp [服务器IP/域名],若需指定端口(非默认21端口),可使用ftp -p [端口] [服务器IP]

    ftp 192.168.1.100

    连接后需输入FTP服务器的用户名和密码(若为匿名服务器,用户名通常为anonymous,密码留空或使用邮箱)。

  • 浏览目录
    登录成功后,使用ls列出当前目录文件,cd [目录名]切换目录。

    ls
    cd /data/files
  • 下载文件

    • 下载单个文件:使用get [文件名],例如下载example.txt
      get example.txt

      默认下载到当前本地目录(可通过lcd [本地目录]切换本地下载路径)。

    • 下载多个文件:使用mget [文件名1] [文件名2] ...,或结合通配符批量下载,例如下载所有.txt文件:
      mget *.txt
  • 退出FTP
    完成下载后,输入byequit退出FTP连接。

注意事项

  • ftp命令不支持断点续传,若下载中断需重新开始;
  • 传输过程中无法显示进度条,需通过执行本地命令(如!ls查看本地文件)。

使用lftp命令下载文件(增强工具)

lftp是功能更强大的FTP客户端,支持断点续传、多线程下载、镜像同步等高级功能,适合大文件或批量下载场景,若系统未安装,可通过包管理器安装(如Ubuntu/Debian:sudo apt install lftp;CentOS/RHEL:sudo yum install lftp)。

基本操作步骤:

  • 连接FTP服务器
    支持直接在命令中指定用户名和密码,

    linux如何下载ftp文件

    lftp ftp://用户名:密码@服务器IP

    匿名登录可省略用户名密码:lftp ftp://服务器IP

  • 浏览目录
    使用lsdir列出文件,cd [目录名]切换目录,pwd显示当前路径。

  • 下载文件

    • 下载单个文件:使用get [文件名],支持断点续传(默认开启),
      get large_file.zip
    • 批量下载:使用mget [文件名1] [文件名2] ...,或结合通配符,例如下载所有.zip文件:
      mget *.zip
    • 下载整个目录(镜像):使用mirror [远程目录] [本地目录],例如将远程/data/files目录完整下载到本地~/download
      mirror /data/files ~/download

      参数说明:-r(递归下载)、-c(断点续传)、-n(不覆盖已存在文件)。

    • 多线程下载:使用pget -n [线程数] [文件名],例如用5线程下载大文件:
      pget -n 5 large_file.iso
  • 退出lftp
    输入exitquit

优点

  • 支持断点续传、多线程,传输效率高;
  • 可设置被动模式(set ftp:passive-mode on),解决防火墙连接问题;
  • 支持后台下载(&符号,如get file &)。

使用wget命令下载FTP文件(多功能工具)

wget是常用的下载工具,支持HTTP、FTP、HTTPS协议,适合脚本自动化下载或批量处理。

基本语法

wget [选项] FTP://[用户名:密码@服务器IP/文件路径]

常用选项及示例

  • 下载单个文件

    wget ftp://用户名:密码@192.168.1.100/data/example.txt

    匿名下载可省略用户名密码:wget ftp://192.168.1.100/pub/example.txt

  • 断点续传
    使用-c选项,若下载中断,再次执行命令可从断点继续:

    wget -c ftp://用户名:密码@服务器IP/large_file.zip
  • 批量下载(递归)
    使用-r(递归下载)、-np(不下载父目录)、-nH(不创建主机目录),例如下载远程/data/files下的所有文件:

    linux如何下载ftp文件

    wget -r -np -nH ftp://用户名:密码@服务器IP/data/files
  • 后台下载
    使用-b选项,日志保存在wget-log文件中:

    wget -b -c ftp://用户名:密码@服务器IP/large_file.iso

优点

  • 支持脚本自动化,适合定时任务(如cron);
  • 可结合-i选项从文件中读取URL列表批量下载;
  • 默认支持被动模式,无需额外配置。

FTP工具对比与选择

为方便用户选择工具,以下是ftplftpwget的对比:

工具名称 适用场景 优点 缺点 常用命令示例
ftp 简单单文件/小批量下载 系统自带,无需安装;操作直观 无断点续传、无进度条;功能单一 get file.txtmget *.zip
lftp 大文件、批量下载、镜像同步 支持断点续传、多线程;功能强大 需额外安装;命令稍复杂 mirror /remote /localpget -n 5 file
wget 脚本自动化、批量下载 支持HTTP/FTP/HTTPS;适合定时任务 批量下载时目录结构可能复杂 wget -c -r ftp://.../data

注意事项与常见问题

  1. 被动模式配置
    部分FTP服务器需开启被动模式(PASV)才能正常传输数据,在ftp中可通过passive命令开启,在lftp中通过set ftp:passive-mode on设置,wget默认支持被动模式。

  2. 防火墙与端口
    FTP默认使用21号端口(控制端口)和20号端口(数据端口),若防火墙拦截,需开放对应端口,被动模式下数据端口可能随机,建议开放1024-65535端口范围。

  3. 权限问题
    确保本地下载目录有写入权限(如chmod 755 ~/download),FTP服务器用户对目标文件有读取权限。

  4. 文件名编码
    若FTP服务器文件名包含中文,可能出现乱码,可通过lftpset file:charset utf8设置编码为UTF-8。

相关问答FAQs

Q1:Linux下下载FTP文件时提示“Permission denied”,如何解决?
A:通常由本地权限或服务器权限问题导致。

  • 本地权限:检查下载目录的写入权限,例如执行chmod 755 /path/to/download
  • 服务器权限:确认FTP服务器用户对目标文件有读取权限,若为匿名服务器,检查ftpusers文件是否禁止匿名访问,或服务器配置是否允许下载。

Q2:如何批量下载FTP服务器上某个目录下的所有子目录及文件?
A:可根据工具选择不同方法:

  • 使用lftpmirror命令
    lftp ftp://用户名:密码@服务器IP
    mirror -r /remote/dir /local/dir  # -r表示递归下载整个目录
  • 使用wget的递归下载
    wget -r -np -nH -R index.html ftp://用户名:密码@服务器IP/remote/dir

    参数说明:-np(不下载父目录)、-nH(不创建主机目录)、-R index.html(排除默认的首页文件)。

通过以上方法,可高效完成Linux下的FTP文件下载任务,根据实际需求选择合适的工具和参数,确保传输稳定性和效率。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/29088.html

(0)
酷番叔酷番叔
上一篇 2025年9月23日 20:13
下一篇 2025年9月23日 20:34

相关推荐

  • Linux如何启动Java程序?详细操作步骤是什么?

    在Linux系统中启动Java程序是Java开发与运维中的基础操作,涉及环境配置、启动命令、参数调优及服务管理等多个环节,本文将详细说明从Java环境准备到不同场景下启动Java程序的完整流程,帮助读者掌握Linux下启动Java的核心方法,Java运行环境准备在启动Java程序前,需确保系统已安装Java开发……

    2025年9月9日
    15800
  • Linux系统服务异常时如何通过命令正确重启?

    Linux系统服务是后台运行的关键程序,负责提供网络、存储、数据库等核心功能,当服务配置修改、异常卡顿或依赖更新时,重启服务是最常见的恢复手段,不同Linux发行版采用的初始化系统不同,重启服务的方法也存在差异,需根据系统环境选择合适的方式,主流重启服务方法及操作步骤基于systemd的系统(主流发行版推荐)目……

    2025年9月22日
    9100
  • CDlinux如何将系统语言切换为中文?

    CDlinux是一款轻量级的Linux发行版,常被用于系统维护、数据恢复和网络启动等场景,其体积小巧、资源占用低,适合在老旧电脑或救援环境中使用,对于中文用户而言,将系统界面和语言环境切换至中文能大幅提升操作体验,便于查看日志文件、配置系统参数或进行故障排查,以下将详细介绍CDlinux切换到中文的具体步骤、注……

    2025年9月28日
    10800
  • 为什么这个技巧能引爆流量?

    在Linux系统中,将PNG格式的位图转换为EPS(Encapsulated PostScript)格式是常见的需求,尤其在学术出版或LaTeX文档排版中,以下是几种可靠、高效且易于操作的方法,均基于开源工具,符合Linux社区的最佳实践:步骤:安装ImageMagick(若未安装):sudo apt inst……

    2025年7月20日
    10200
  • 如何检验linux的php

    Linux 中,可通过命令 php -v 查看 PHP 版本信息来检验是否

    2025年8月18日
    11300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信