用户登录
个人主页 用户中心 我的订单 添加授权 管理授权
退出登录
用户登录 用户注册
欢迎来到 UC建站系统

同样是把一个站的内容搬到另一个站,wget免费但容易漏,HTTrack稳但慢,rsync最快但门槛最高

网站搬家这件事,场景比想象中多:换服务器、做测试环境、备份整站内容、把静态资源同步到CDN节点、公司收购了一个网站要把内容迁到自己域名下。每一种场景对工具的要求不一样,用错工具的结果不是内容丢了,就是链接全乱套。

下面把市面上主流的几种网站内容镜像/迁移方案拆开讲,每种方案适合什么场景、踩过什么坑,一次说清楚。

网站镜像的三种合法场景

场景一网站迁移/搬家:换服务器、换域名,需要把整站内容完整搬到新环境,URL结构、内部链接、图片路径都不能乱。
场景二离线备份/归档:把线上站点完整下载到本地,防止服务器故障或网站关闭后内容丢失。
场景三多节点内容同步:一套内容部署到多个服务器节点,每个节点内容完全一致(如CDN源站同步、多地域部署)。

⚠️ 注意:未经授权镜像他人网站内容属于侵权行为。本文讨论的工具仅适用于你自己拥有合法权限的网站。

方案一:wget——命令行里的瑞士军刀,免费但参数多到劝退

wget是Linux系统自带的下载工具,也是做整站镜像最经典的方式。一条命令就能递归下载整个网站:

1 - 同样是把一个站的内容搬到另一个站,wget免费但容易漏,HTTrack稳但慢,rsync最快但门槛最高 - UC建站系统

wget -r -np -k -p -e robots=off https://www.example.com/

这条命令的参数含义:

参数作用
-r递归下载,顺着链接往下爬
-np不爬父级目录,只下载当前目录及子目录
-k转换链接为本地相对路径,离线也能点开
-p下载页面所需的所有资源(CSS、JS、图片)
-e robots=off忽略robots.txt限制(只对自己有权限的站用)

wget在实际使用中的常见问题:

问题一:爬着爬着跑到站外去了。 如果不加 --domains=example.com 限制域名,wget会顺着外链爬到别人的网站。解决:

wget -r -np -k -p -e robots=off --domains=example.com --limit-rate=200k https://www.example.com/

问题二:动态页面抓不下来。 wget只能抓取HTML源码,如果你的页面内容是通过JavaScript动态加载的(React/Vue前端渲染),wget拿到的是空壳。这种情况wget无解,需要上HTTrack或Puppeteer。

问题三:抓取速度太快被服务器封IP。 加上 --wait=1(每次请求间隔1秒)和 --limit-rate=200k(限速200KB/s),模拟正常浏览行为。

wget 适合谁:有Linux操作经验、站点以静态页面为主(或服务端渲染)、不需要图形界面。
不适合谁:纯前端渲染的SPA网站、需要登录才能访问的页面、不想记命令行的纯运营人员。

方案二:HTTrack——有图形界面,参数调好了比wget更完整

HTTrack是Windows/Linux/macOS全平台支持的开源整站下载工具,最大的优势是有图形界面。对于不习惯命令行的人,HTTrack的学习成本几乎是零。

2 - 同样是把一个站的内容搬到另一个站,wget免费但容易漏,HTTrack稳但慢,rsync最快但门槛最高 - UC建站系统

但HTTrack真正的价值不在界面上,而在它能处理wget搞不定的场景:

支持身份认证。 如果你的网站有后台登录或需要cookie才能访问,HTTrack可以配置cookie信息,模拟已登录状态抓取。

链接结构保持。 HTTrack下载后会重建完整的目录结构,本地打开时所有内部链接都是可点击的。wget的 -k 参数也能做到,但HTTrack在处理复杂路径时更稳定。

断点续传。 抓取5000个页面的过程中网络断了,HTTrack可以从断点继续,不需要重新开始。wget也可以用 -c 参数实现,但不如HTTrack的工程化处理完善。

对比维度wgetHTTrack
操作方式纯命令行图形界面 + 命令行
动态页面(JS渲染)不支持基础支持,复杂SPA仍有限
抓取速度快(轻量级)中等(处理更完整)
链接完整性依赖 -k 参数,偶有遗漏默认处理,更稳定
身份认证(Cookie)需手动配置header界面直接配置
断点续传支持(-c参数)原生支持,更稳定

HTTrack的一个隐藏技巧:可以设置"只下载特定文件类型"。比如你只想要所有HTML页面和图片,不下载CSS和JS:

# HTTrack命令行模式httrack "https://www.example.com/" -O "./mirror" \-%v \+*.html +*.htm +*.jpg +*.png +*.gif \-*.*

方案三:rsync——服务器间同步的最快选择,但前提是你有SSH权限

前面两个方案是通过HTTP协议抓取,适合你没有服务器权限、只能通过浏览器访问的场景。但如果你有服务器的SSH权限,rsync才是最正确的方案——它直接同步文件,不经过HTTP层,速度最快、内容最完整。

# 从旧服务器同步整站到新服务器rsync -avz --progress root@旧服务器IP:/www/wwwroot/example.com/ /www/wwwroot/new-example.com/# 参数说明:# -a  归档模式,保留权限、时间戳、软链接# -v  显示详细过程# -z  传输时压缩,节省带宽# --progress  显示进度条

rsync的核心优势是增量同步——第一次全量复制后,后续只传输有变化的文件。比如你的网站有10GB图片,改了3篇文章,rsync只传这3篇文章相关的文件,10GB图片不动。这个特性让它在日常运维中比wget/HTTrack实用得多。

3 - 同样是把一个站的内容搬到另一个站,wget免费但容易漏,HTTrack稳但慢,rsync最快但门槛最高 - UC建站系统

rsync vs wget/HTTrack 的核心区别

wget和HTTrack是通过浏览器协议"爬取"内容——你只能拿到网站对外暴露的内容(HTML、图片、CSS等),拿不到PHP源码、数据库、服务器配置。
rsync是文件系统级别的同步——你能拿到服务器上的所有文件,包括后端代码和配置文件。这是本质区别,决定了它们适用于完全不同的场景。

方案四:WordPress/常用CMS的专用迁移方案

如果你的网站是WordPress,有比通用工具更省事的选择:

工具适用场景操作难度
All-in-One WP Migration完整搬家:文章+插件+主题+媒体库一键打包导出⭐ 极低,拖拽导入
Duplicator大站点迁移,支持打包时排除缓存和日志文件⭐⭐ 中等
宝塔一键迁移两台宝塔面板之间迁移,自动处理数据库+文件+配置⭐ 极低,一键操作
UpdraftPlus定期自动备份+一键恢复,支持远程存储(云盘、FTP等)⭐ 低

WordPress迁移有一个特别容易踩的坑:导出导入后,文章里的图片路径还是旧域名的。在导入新站后,需要批量替换数据库中的URL。推荐用Better Search Replace插件,在数据库层面做全局替换,比手动改快得多。

镜像/迁移完成后必须检查的5个事项

不管用哪种工具搬完网站,下面5个检查项漏一个都可能出问题:

✅ 检查清单:

1. 内部链接是否正确:随机点10个页面,看导航栏、文章内链、分页链接是否指向新域名而不是旧域名
2. 图片和资源文件是否完整:打开5篇文章,确认没有裂图,CSS样式是否正常加载
3. 数据库连接是否正常:如果是动态网站,确认新站的数据库配置指向了正确的数据库
4. 301重定向是否配置:如果换了域名,旧域名的所有URL必须301跳转到新域名对应URL
5. SSL证书是否生效:新站HTTPS是否能正常访问,证书是否正确配置

哪种方案适合你的情况

一张表对号入座

有SSH权限rsync 增量同步,最快最完整。迁移后记得同步数据库。
没有SSH,是WordPressAll-in-One WP Migration 插件,导出导入三步搞定。
没有SSH,是静态网站HTTrack 图形界面操作,完整度比wget高。
没有SSH,纯命令行环境wget 一条命令搞定,加好域名限制和速率限制参数。
两台宝塔面板之间宝塔一键迁移,文件+数据库+SSL+伪静态规则全部自动迁移。

网站镜像/迁移这件事,选工具的思路应该是:先看你有没有服务器权限,再看你用什么CMS,最后才考虑通用工具。有权限用rsync,有CMS用专用插件,实在不行才上wget/HTTrack从外面爬。顺序对了,省掉的不只是时间,还有排查"为什么图片全裂了"的焦头烂额。

相关推荐
在线客服
👇找客服拿折扣
QQ咨询&售后
在线时间
11:00 ~ 5:30
QQ:3155555535
👇联系QQ
👇联系WX
首页 程序 帮助 登录