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

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

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

本文内容
  1. 开始之前
  2. 更改之后
  3. 更多关于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。

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

更多关于vestacp

想进一步了解vestacp?这些 Netstech 指南和服务是不错的下一步:

继续阅读

相关文章

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

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