
主机迁移听起来只是"将文件从一个地方复制到另一个地方"。但是,迁移后网站停机、电子邮件消失数小时或半数客户仍看到旧网站 — 这些都来自同一个原因:没人在迁移前检查设置,完成后无法比较。本文介绍了在迁移前、期间和之后需要检查的6件事,以确保您的网站永不停机。
为什么主机迁移通常会中断
大多数问题不在网站文件或数据库中 — 它们在人们忘记的周围配置中:许多现有DNS记录、电子邮件MX记录、SSL证书和使变更缓慢生效的TTL值。当您只移动文件而不移动所有这些时,网站最终会出现"半新半旧" — 一些访客看到新网站,其他访客仍然停留在旧网站上。
主机迁移中需要检查的6件事
1 — 记录旧主机上的每个DNS条目
在触碰任何东西之前,打开旧主机上的DNS面板,将每条记录写下来 — A、AAAA、CNAME、MX、TXT(包括SPF/DKIM)、以及SRV和CAA(如果存在)。最常被遗漏的项目是用于验证其他服务的小型子域和TXT记录。遗漏一条,电子邮件或某个服务会停止工作。
2 — 仔细检查MX记录和电子邮件
电子邮件是最隐蔽的中断部分。如果旧主机也存储您的邮件,决定是否也迁移它或使用单独的供应商。记录每条MX条目、其优先级和TXT记录(SPF/DKIM/DMARC)。遗漏单条SPF行将导致迁移后的每封电子邮件都直接进入垃圾邮件。
3 — 在切换DNS前在新主机上设置SSL
在指向DNS之前先在新主机上安装SSL。如果先切换DNS后再签发SSL,间隔期内的访客会看到"不安全"警告。大多数现代主机自动签发Let's Encrypt,但您应该始终先确认成功。
4 — 检查WHOIS、名字服务器和TTL
检查WHOIS以确认域在迁移窗口期间不会过期,并注意使用的名字服务器。然后在实际迁移前至少24-48小时降低重要记录的TTL为300秒(5分钟),以便DNS更改快速生效。
TTL提示:TTL是全球DNS服务器"记住"旧值的时间。如果TTL = 86400(1天),过去的访客在迁移后可能会停留在旧值上长达一天。在迁移前降至300,迁移完成后再恢复。
5 — 切换后检查DNS传播
在指向新主机后,不要假设完成了。DNS传播可能需要数分钟到数小时。从多个位置检查世界各地是否一致地看到新IP,然后再关闭旧主机。
6 — 比较迁移前后,然后停用旧主机
最容易被忽视的步骤 — 确认新主机上的每条记录匹配您从旧主机记录的内容:DNS、MX、SSL。在至少3-7天后且确认一切正常工作时,才取消旧计划。
迁移前准备文件和数据库
除了DNS和邮件记录,您的网站文件和数据库是任何迁移的核心。遵循正确的顺序很重要:
在开始前进行完整备份
一次性备份旧主机中的所有内容:所有网站文件(HTML、CSS、JS、PHP、图像、上传)和每个MySQL/MariaDB数据库。如果您使用DirectAdmin,内置备份功能可一键将所有内容导出为.tar.gz存档。
在切换DNS前通过hosts文件测试新主机
在新主机上上传文件并恢复数据库后,不要立即切换DNS — 先通过临时编辑本地hosts文件来测试网站,使您的浏览器指向新服务器的IP:
# Windows: C:\Windows\System32\drivers\etc\hosts
# macOS / Linux: /etc/hosts
# 添加这一行(用新主机的实际IP替换)
1.2.3.4 yourdomain.com
1.2.3.4 www.yourdomain.com
浏览网站并确认每个页面正确加载、图像显示、表单提交且SSL锁是绿色的。验证后,移除hosts文件条目并继续进行真正的DNS切换。
通常需要更新的配置文件
| 文件 | 需要更新的内容 |
|---|---|
wp-config.php (WordPress) | DB Host、DB Name、DB User、DB Password |
.env (Laravel/PHP) | DB credentials、APP_URL、MAIL_HOST |
config.php / settings.php | 数据库连接、基础URL |
.htaccess | RewriteBase、自定义服务器路径 |
| PHP session路径 | 确认session_save_path可写 |
主机迁移期间处理SSL
SSL证书绑定到服务器,而不是域 — 您需要在目标主机上签发新证书。仔细规划这个,以便用户永远看不到"不安全"警告:
迁移时Let's Encrypt与付费证书
Let's Encrypt(免费)在大多数现代主机上自动签发,包括AsiaGB,但它需要DNS先指向服务器。付费SSL证书可以在不先指向DNS的情况下通过DNS-01质询验证,让您在迁移前在新主机上安装SSL:
- 使用Let's Encrypt:设置新主机 → 切换DNS → SSL在几分钟内自动签发
- 使用付费SSL:在当前DNS上完成DNS验证 → 证书签发 → 在新主机上安装 → 然后迁移DNS
迁移前检查SSL过期时间
如果您当前的证书在30天内过期,在迁移前更新或重新签发它,这样您就不必同时处理两项任务。您可以在dnsxray.com/ssl上免费检查SSL过期时间。
迁移后检查清单 — DNS传播完成后需验证的内容
一旦DNS传播完成且所有访客都访问新主机,在宣布迁移完成前运行此检查清单:
| 检查项目 | 测试方法 | 预期结果 |
|---|---|---|
| 网站正确加载 | 打开隐私浏览窗口 | 所有页面加载,无错误 |
| SSL工作 | 查看浏览器中的锁定图标 | 闭合的锁,无警告 |
| 发送电子邮件 | 发送测试消息到Gmail/Outlook | 投递到收件箱,非垃圾邮件 |
| 接收电子邮件 | 从Gmail发送到您的@domain | 正常到达收件箱 |
| 网页表单工作 | 测试联系表单、登录 | 提交成功,无500错误 |
| 重定向正确 | 检查.htaccess重定向规则 | 指向正确的页面 |
常见迁移错误及其修复方法
基于数百次迁移协助,以下是最常见的问题及其解决方法:
1. 迁移后混合内容警告
网站显示不完整或破损的SSL锁,因为某些图像或脚本仍使用http://而不是https://。通过搜索数据库(WordPress用户可使用Better Search Replace插件)或在浏览器DevTools控制台选项卡中检查混合内容错误来修复。
2. 发出的电子邮件进入垃圾邮件
主要原因是SPF记录仍列出旧主机的IP。更新SPF的TXT记录以包括新服务器,然后验证DKIM是否正确设置,DMARC是否配置。使用dnsxray.com/mailtest检查您域的电子邮件身份验证。
3. 数据库连接错误
WordPress或其他CMS显示"建立数据库连接出错" — 这几乎总是意味着配置文件中的数据库凭据未更新。编辑wp-config.php或等效配置文件,使用新主机的DB主机名、用户名和密码。
用于比较迁移前后设置的工具
手动逐条记录记录存在遗漏的风险。更快、更可靠的方法是使用集中式域名健康工具 — 在迁移前运行一次以获取旧设置的完整图景,然后在之后运行以进行比较。
例如,dnsxray.com是一个域名健康工具,在单次查询中显示DNS、邮件服务器、SSL和WHOIS,具有"另存为PDF"功能 — 完美适合在迁移前保存域名设置"快照"以便之后比较。
推荐工作流程:1)打开dnsxray.com,在迁移前检查域 → 将结果保存为PDF。2)迁移主机并切换DNS。3)用相同工具重新检查,然后逐行比较新值是否完整且正确。
简短的检查清单
| 阶段 | 需要做什么 |
|---|---|
| 提前48小时 | 记录/检查所有DNS、MX、SSL、WHOIS · 降低TTL至300 |
| 在切换DNS前 | 在新主机上准备好网站、数据库和SSL |
| 迁移时 | 切换DNS/名字服务器以指向新主机 |
| 迁移后0-48小时 | 检查传播 · 比较迁移前后 · 测试电子邮件 |
| 迁移后3-7天 | 确认一切正常 → 恢复TTL → 停用旧主机 |
常见问题
问:主机迁移期间我的网站会停机吗?
如果您按正确顺序进行 — 在切换DNS前准备新主机 — 网站基本上不会停机。访客总是被路由到拥有网站的一台或另一台服务器。问题发生在新主机准备好之前切换DNS的时候。
问:DNS传播需要多长时间?
如果您提前降低了TTL,通常只需数分钟到数小时,但理论上可能需要24-48小时 — 所以不要立即关闭旧主机。
问:还需要什么来一并迁移电子邮件?
您需要移动旧邮箱(例如通过IMAP同步)并在新系统上完整设置MX/SPF/DKIM。迁移后始终通过发送邮件进出来测试。
问:AsiaGB为我迁移网站吗?
是的 — AsiaGB为新客户提供免费网站迁移。团队完整检查DNS、MX和SSL并在真正切换前测试。
总结:按照简单原则平滑迁移主机 — 在迁移前检查并记录所有内容,在切换DNS前准备好新主机,提前降低TTL,然后使用域名健康工具比较迁移前后。遵循这6点,您的网站不会掉线。
迁移到AsiaGB — 我们免费迁移您的网站
AsiaGB团队迁移您的网站和数据库,完整设置DNS/SSL,在真正切换前进行测试 — SSD托管起价泰铢500/年,99%正常运行时间,DirectAdmin,每月备份两次。
查看托管计划