新WhatsPush — 为您的 POS 和 CRM 提供的 WhatsApp Business API。
VetstaCP

服务器迁移后通过 DNS 批量更改 IP(VestaCP)

我为 VestaCP 编写了一个 Bash 脚本,只需一条命令即可自动更新所有域名和账户中的 IP。

服务器迁移后 VetstaCP DNS IP 更新
本文内容
  1. 开始之前
  2. 更改之后
  3. More about vestacp

引言:

经过大量研究并全面分析 vestacp 论坛后发现,对于服务器迁移后出现的问题,即使重新生成 DNS、WEB 和邮件之后 IP 仍未改变,需要更新 IP,目前没有任何官方解决方案。我在这里编写了一个脚本,解决了我需要从一个 IP 迁移到另一个 IP 时遇到的问题,在某些情况下,NAT IP 也会导致该问题。

 

服务器迁移后如何更新 IP:

几天前,我们正在将数据中心迁移到新的地点,我们的大多数客户都使用 VestaCP 作为控制面板。VestaCP 为数据迁移提供了非常完美且出色的功能:只需使用 v-backup-users 创建备份,将生成的 zip 上传到新服务器,然后执行命令 v-restore-user,一切就完成了。但在我们的情况下,每台服务器上有 500 多个账户需要迁移,因此新的挑战是逐个恢复每个账户,这个过程太耗时了,所以我们在这里编写了一个脚本。因为目前仍没有官方方法可以批量恢复每个账户。成功恢复之后,我们又发现了一个新问题:每个域名上的 DNS 记录仍然指向旧 IP,并没有改变,经过大量努力,所有官方解决方案都不起作用,所以我就针对这个问题编写了脚本,并认为您可能也需要,因此在这里与您分享,为此您需要执行以下步骤。

在 root 目录下创建一个新文件,或从 github 下载脚本

nano changeDNS.sh

将以下代码添加到文件中

#!/bin/bash

oldIp=$1
newIp=$2

sed -i "s/$oldIp/$newIp/g" /home/*/conf/dns/*.db
sed -i "s/$oldIp/$newIp/g" /usr/local/vesta/data/users/*/dns/*.conf
/usr/local/vesta/bin/v-restart-dns
echo "Everything done :) all DNS has been replaced from $oldIp to $newIp"

只需保存文件,并按以下方法执行

bash changeDNS.sh 2.2.2.2 4.4.4.4

这里的 2.2.2.2 是旧 IP,4.4.4.4 是新 IP,请将其替换为您自己的 IP。

结论:

VestaCP 迁移到新服务器后,旧的 DNS 记录现在可以用上述方法轻松替换,为您节省时间和精力。

开始之前

  • 备份每个用户的 DNS 区域和网站配置。
  • 提前一天降低您记录的 TTL,以便更改快速传播。
  • 在所有记录都传播完毕之前,请保持旧服务器运行。

更改之后

  1. 重建 DNS 区域并重启 DNS 服务,然后使用 dig 或 nslookup 确认一个域名。
  2. 检查网站、邮件和 SSL 在新 IP 上是否正常工作。
  3. 如果您还使用 Cloudflare 或其他 DNS 提供商,请在那里更新源站 IP。

需要迁移服务器方面的帮助?请查看我们的云托管和服务器管理。

More about vestacp

Want to go further with vestacp? These Netstech guides and services are a good next step:

继续阅读

相关文章

让我们打造您业务下一步所需的一切

告诉我们您的项目——免费咨询,几天内给出清晰报价。