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系统中,为新添加的硬盘进行挂载是常见的系统管理操作,完整的流程涉及硬盘识别、分区、格式化、创建挂载点及配置自动挂载等步骤,以下是详细操作指南:识别新硬盘首先需要确认系统是否已识别新硬件,通过以下命令查看当前磁盘信息:lsblk或fdisk -l新硬盘通常会显示为/dev/sdb(第二个SATA/SA……

    2025年9月29日
    1300
  • Linux 内核如何合入patch补丁文件?

    在Linux开发与维护中,合入补丁(Patch)是一项核心操作,无论是修复安全漏洞、优化性能还是新增功能,都依赖于将代码变更以补丁形式准确应用到目标代码库中,补丁本质上是记录源代码变更差异的文件,常见的格式包括unified diff(.patch/.diff)和Git格式补丁(.patch),其核心价值在于可……

    2025年10月7日
    900
  • Linux如何查看swap分区的大小?

    在Linux系统中,swap(交换空间)是作为物理内存的补充,当物理内存不足时,系统会将部分不常用的数据暂时存放到swap空间中,从而保证当前运行的程序能够继续执行,查看swap的大小和使用情况,对于系统性能监控、资源优化以及故障排查都至关重要,本文将详细介绍Linux系统中查看swap大小的多种方法,包括常用……

    2025年8月23日
    2700
  • Linux权限配置不当,服务器会被黑?

    理解Linux权限基础权限三元组r(读):查看文件/目录内容w(写):修改或删除x(执行):运行程序或进入目录通过 ls -l 查看权限(如 -rwxr–r– 表示所有者有读写执行,同组和其他用户仅有读权限),权限对象用户(User):文件所有者组(Group):共享权限的用户集合其他(Others):系统……

    2025年7月17日
    4400
  • Linux环境下执行SQL脚本文件的具体操作步骤是怎样的?

    在Linux环境下执行SQL是数据库管理、数据分析和应用开发中的常见操作,无论是通过命令行工具直接交互、编写脚本自动化处理,还是借助图形界面工具辅助操作,都有其适用场景和具体方法,本文将详细介绍Linux下执行SQL的多种方式,包括不同数据库系统的命令行工具使用、脚本自动化实现、批量数据处理技巧,并附上实用注意……

    2025年9月8日
    2100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信