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如何查看当前正在运行的服务?

    在Linux系统中,服务是后台运行的关键程序,负责提供特定功能(如Web服务、数据库服务等),查看正在运行的服务是系统运维、故障排查和性能优化的基础操作,本文将详细介绍多种查看Linux运行服务的方法,涵盖常用命令、系统工具及实际应用场景,帮助用户全面掌握服务状态监控技巧,通过systemctl命令查看服务状态……

    2025年8月31日
    8900
  • 如何删除Linux用户密码?

    在Linux系统中,用户密码的存储与管理核心依赖于/etc/shadow文件,该文件存储了用户的加密密码、密码过期时间等信息,所谓“删除用户密码”,本质是将shadow文件中对应用户密码字段(第二个字段,位于分隔符之间)清空,使其无需输入密码即可通过身份验证(如本地登录、SSH等),这一操作通常需要root权限……

    2025年9月13日
    7400
  • 如何在Linux网卡添加静态IP?,(直接点明核心操作添加静态IP,使用疑问句如何…引发搜索需求,关键词Linux网卡、静态IP覆盖常见技术搜索词,19字符合要求。)

    在Linux系统中添加IP地址是常见的网络管理任务,适用于服务器负载均衡、多站点托管或网络测试等场景,以下详细说明临时添加(重启失效)和永久添加(重启生效)两种方法,涵盖主流发行版(CentOS/RHEL、Ubuntu/Debian),操作需root权限,临时添加IP地址(立即生效,重启失效)通过ip命令临时添……

    2025年8月6日
    9800
  • 如何修改linux path变量值

    Linux系统中的PATH环境变量是一个重要的配置,它定义了系统在执行命令时会搜索可执行文件的路径列表,当用户在终端输入一个命令时,系统会按照PATH变量中指定的路径顺序依次查找对应的可执行文件,若找到则执行,否则提示“命令未找到”,合理配置PATH变量可以方便地使用自定义工具或第三方程序,提升工作效率,以下是……

    2025年9月9日
    6500
  • 双系统如何彻底删除Linux系统?

    在双系统(Windows+Linux)环境中,若不再需要Linux系统,可通过删除Linux分区并修复Windows引导来彻底移除Linux,以下是详细操作步骤,涵盖准备工作、分区识别、删除操作及引导修复,确保过程安全且不影响Windows系统正常使用,操作前准备工作备份重要数据删除分区会清除该分区所有数据,若……

    2025年8月25日
    8500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信