如何用wget下载整个网站

SCP(安全复制协议)

原理:基于SSH加密传输,适合中小文件。
命令格式:

scp [选项] 用户名@远程IP:远程文件路径 本地保存路径

示例:

  1. 复制单个文件(远程22端口,用户名为user)

    scp -P 2222 user@192.168.1.100:/home/user/data.txt /local/dir/

    -P 2222:指定SSH端口(默认22可省略)
    /local/dir/:本地目录需提前创建

  2. 递归复制目录

    scp -r user@192.168.1.100:/remote/dir /local/path

注意事项:

  • 使用SSH密钥认证更安全(通过ssh-keygen生成密钥对)
  • 传输大文件时可能较慢(无增量同步功能)

Rsync(增量同步工具)

原理:仅传输差异部分,适合大文件或定期备份。
命令格式:

rsync [选项] 用户名@远程IP:源路径 本地路径

示例:

rsync -avz -e "ssh -p 2222" user@192.168.1.100:/home/user/project/ /backup/
  • -a:归档模式(保留权限、时间戳)
  • -v:显示详细过程
  • -z:压缩传输
  • -e:指定SSH端口

优势:

  • 支持断点续传(--partial选项)
  • 可排除文件(--exclude='*.log')

SFTP(交互式安全传输)

原理:通过SSH建立FTP-like会话,适合手动操作。
操作步骤:

  1. 连接远程服务器:
    sftp -P 2222 user@192.168.1.100
  2. 下载文件:
    sftp> get /remote/file.txt /local/path/
  3. 下载目录(需先打包):
    sftp> get -r /remote/dir  # 部分SFTP客户端支持递归

HTTP/FTP下载(公开文件)

适用场景:远程文件已通过Web/FTP服务公开。
工具命令:

# 使用curl
curl -o /local/data.tar.gz ftp://user:pass@192.168.1.100/data.tar.gz

注意:

  • FTP密码在命令中明文存储不安全,建议改用SCP/rsync
  • 支持断点续传(wget -c或curl -C -)

SSH + Tar(高效传输目录)

原理:在SSH管道中打包传输,避免逐个文件处理。
操作命令:

ssh -p 2222 user@192.168.1.100 "tar czf - /remote/dir" | tar xzvf - -C /local/path
  • tar czf -:远程打包并输出到标准流
  • tar xzvf -:本地解压标准流输入
  • -C:指定解压目录

优势:

  • 处理大量小文件时速度显著提升
  • 自动保留文件属性

方法对比与选择建议

方法 适用场景 安全性 效率
SCP 单文件/小目录快速传输 高 中等
Rsync 大文件/定期备份/增量同步 高 高
SFTP 交互式查看并下载 高 低
HTTP/FTP 公开文件直链下载 中低 高
SSH+Tar 超大型目录(如日志文件) 高 最高

安全实践指南

  1. 密钥认证:
    生成SSH密钥对替代密码登录:

    ssh-keygen -t ed25519  # 生成密钥
    ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.168.1.100  # 部署公钥
  2. 防火墙配置:
    • 限制SSH端口访问IP白名单
    • 使用非标准端口(如2222)减少扫描攻击
  3. 传输加密:
    避免使用FTP等明文协议,优先选择SCP/rsync over SSH。

常见问题排查

  • 权限拒绝:
    检查远程文件读权限(ls -l)及本地目录写权限。
  • 连接超时:
    验证网络连通性(ping 192.168.1.100)和防火墙规则。
  • 磁盘空间不足:
    使用df -h检查本地存储空间。

引用说明:本文参考Linux man手册(man scp/man rsync)、OpenSSH官方文档及IBM安全传输指南,实践命令已在Ubuntu 22.04/CentOS 7环境中验证。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年7月8日 09:25
下一篇 2025年7月8日 09:49

相关推荐

  • Linux如何升级Java版本?

    在Linux系统中升级Java版本是常见的需求,可能由于新项目需要更高版本的Java支持、旧版本存在安全漏洞,或是为了利用新版本的性能优化和语言特性,本文将详细介绍在Linux系统上升级Java版本的完整步骤,包括当前版本检查、新版本下载、旧版本卸载、新版本安装、环境变量配置及验证等环节,覆盖不同Linux发行……

    2025年9月10日
    31900
  • linux下 批处理如何运行

    Linux下,可通过编写脚本文件并赋予执行权限来运行批处理任务,也可使用命令

    2025年8月19日
    26900
  • linux如何开启平台

    Linux 中开启平台需明确具体平台类型,如虚拟化平台可通过安装相关软件(

    2025年8月13日
    23700
  • Linux系统如何查看硬盘信息、使用率、健康状态及分区详情?

    在Linux系统中,查看硬盘信息是系统管理、故障排查和容量规划的基础操作,Linux提供了多种命令和工具,帮助用户从不同维度获取硬盘的详细信息,包括设备识别、分区结构、使用情况、健康状态等,本文将详细介绍常用命令的使用方法及输出解读,并通过表格对比不同工具的特点,最后附上常见问题解答,基础信息查看:识别硬盘设备……

    2025年10月7日
    30300
  • Linux系统如何查看当前已配置的所有yum源地址及详情?

    在Linux系统中,yum(Yellowdog Updater Modified)是一款常用的包管理工具,主要用于自动下载、安装、更新和删除软件包,同时依赖配置的yum源(软件仓库)来获取所需的软件包,正确查看和管理yum源是确保系统软件包管理正常进行的关键步骤,尤其在排查依赖问题、验证软件包可用性或切换镜像源……

    2025年9月23日
    33400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信