使用 FetchLinux 下载 FTP 文件的实用方法
一、工具选择与说明
- 若你指的是 Fetch(macOS 的 Fetch FTP 客户端),它是图形化工具,直接在 Fetch > New Connection 中新建连接,填写 Host(FTP 地址)、Username、Password,连接后即可在窗口中浏览并下载文件。
- 若你指的是 Linux 系统,系统并不自带名为 Fetch 的常用命令;通常使用 lftp、wget、curl、ftp 等命令行工具完成 FTP 下载。下面给出 Linux 下最常用、最稳妥的做法与示例。
二、Linux 下使用命令行下载 FTP 的高效做法
- 使用 wget(非交互、适合脚本)
- 基本下载:wget ftp://用户名:密码@服务器地址/路径/文件
- 指定保存目录:wget -P /目标/目录 ftp://用户名:密码@服务器地址/路径/文件
- 断点续传:wget -c ftp://用户名:密码@服务器地址/路径/文件
- 递归下载目录:wget -r -np ftp://用户名:密码@服务器地址/路径/目录
- 使用 curl(非交互、灵活输出)
- 基本下载并保留远端文件名:curl -u 用户名:密码 ftp://服务器地址/路径/文件 -O
- 指定本地文件名:curl -u 用户名:密码 ftp://服务器地址/路径/文件 -o 本地文件名
- 使用 lftp(交互/脚本皆可,支持断点续传与目录镜像)
- 交互登录:lftp 用户名@服务器地址,登录后执行 get/put/mget/mirror 等命令
- 一行命令下载单文件:lftp -u 用户名,密码 -e “get /路径/文件 -o 本地文件; bye” 服务器地址
- 镜像整个目录:lftp -u 用户名,密码 -e “mirror /远程/目录 /本地/目录; bye” 服务器地址
- 使用 ftp(传统交互式客户端)
- 连接:ftp 服务器地址;登录后使用 get 下载单文件、mget 批量下载、lcd 切换本地目录、bye 退出
三、命令示例
- wget 示例
- wget ftp://alice:secret@ftp.example.com/pub/data.zip
- wget -P /home/alice/downloads -c ftp://alice:secret@ftp.example.com/pub/data.zip
- curl 示例
- curl -u alice:secret ftp://ftp.example.com/pub/data.zip -O
- curl -u alice:secret ftp://ftp.example.com/pub/data.zip -o /home/alice/data.zip
- lftp 示例
- lftp -u alice,secret -e “get /pub/data.zip -o /tmp/data.zip; bye” ftp.example.com
- lftp -u alice,secret -e “mirror /pub/backups /home/alice/backups; bye” ftp.example.com
- ftp 示例
- ftp ftp.example.com
- Name: alice
- Password: secret
- ftp> lcd /home/alice/downloads
- ftp> get data.zip
- ftp> bye
四、常见问题与处理
- 认证与被动模式
- 匿名下载可用:wget ftp://服务器地址/路径/文件;需要账号时携带 用户名:密码。
- 若服务器在防火墙/NAT 后,优先启用被动模式:lftp 默认使用被动模式;ftp 可在交互中输入 passive 开启。
- 断点续传与稳定性
- 大文件建议加 -c(wget)或使用 lftp 的 get/mirror,网络中断后可续传。
- 目录下载与递归
- 目录建议用 lftp mirror 或 wget -r;注意 ftp 的 mget 只匹配当前远程目录的文件,不会递归子目录。
- 防火墙与字符集
- 数据端口被拦会导致卡住或失败,确认服务器与客户端网络策略允许 FTP 数据通道;遇到文件名乱码可尝试设置客户端字符集(如 lftp 的 set ftp:charset utf-8)。
五、安全与替代方案
- FTP 明文传输,在公网或不安全网络中建议使用 SFTP/SCP(基于 SSH) 替代:例如 scp user@host:/remote/file /local/path,更安全且穿透力强。若服务器支持 SFTP,优先选择 SFTP。