Home Domain – HostingVestaCP Hướng dẫn đổi ip chính cho VestaCP

Hướng dẫn đổi ip chính cho VestaCP

by admincp

Hôm nay mình hướng dẫn các bạn cách thay đổi ip chính trên VestaCP.
Bước 1: Bạn thực hiện tạo file , phân quyền và dán đoạn mã sau

touch /usr/local/vesta/bin/v-change-server-ip
chmod 0755 /usr/local/vesta/bin/v-change-server-ip
vi /usr/local/vesta/bin/v-change-server-ip

Dán đoạn code bên dưới vào file:

#!/bin/sh
#script to change ips on a VestaCP server.
#usage:
# $0 <oldip> <newip>
LOG=/var/log/vesta/system.log
MYUID=`/usr/bin/id -u`
if [ "$MYUID" != 0 ]; then
        echo "You require Root Access to run this script";
        exit 0;
fi
if [ $# != 2 ] && [ $# != 3 ]; then
        echo "Usage:";
        echo "$0 <oldip> <newip> [<file>]";
        echo "you gave #$#: $0 $1 $2 $3";
        exit 0;
fi
OLD_IP=$1
NEW_IP=$2
HAVE_HTTPD=1
HAVE_NGINX=1
DATE=`date '+%F %X'`
BIN=`echo $0 | awk -F/ '{print $NF}'`
log()
{
        echo -e "$1";
        echo -e "$1" >> $LOG;
}
swapfile()
{
        if [ ! -e $1 ]; then
                log "Cannot Find $1 to change the IPs. Skipping...";
                return;
        fi
        TEMP="perl -pi -e 's/${OLD_IP}/${NEW_IP}/g' $1"
        eval $TEMP;
        log "$DATE $BIN $1t: $OLD_IP -> $NEW_IP";
}
if [ $# = 3 ]; then
        swapfile $3;
        exit 0;
fi
IPFILE_OLD=/usr/local/vesta/data/ips/$OLD_IP
IPFILE_NEW=/usr/local/vesta/data/ips/$NEW_IP
if [ ! -e $IPFILE_OLD ]; then
        echo -n "$IPFILE_OLD does not exist.  Do you want to continue anyway? (y/n) : ";
        read YESNO;
        if [ "$YESNO" != "y" ]; then
                exit 0;
        fi
else
        mv -f $IPFILE_OLD $IPFILE_NEW
        log "$DATE $0 $IPFILE_OLDt: $OLD_IP -> $NEW_IP";
fi
if [ "${HAVE_HTTPD}" -eq 1 ]; then
        if [ -e /etc/httpd/conf.d/${OLD_IP}.conf ]; then
                swapfile /etc/httpd/conf.d/${OLD_IP}.conf
                mv -f /etc/httpd/conf.d/$OLD_IP.conf /etc/httpd/conf.d/${NEW_IP}.conf
        fi
        swapfile /etc/httpd/conf.d/mod_extract_forwarded.conf
fi
if [ "${HAVE_NGINX}" -eq 1 ]; then
        if [ -e /etc/nginx/conf.d/${OLD_IP}.conf ]; then
                swapfile /etc/nginx/conf.d/${OLD_IP}.conf
                mv -f /etc/nginx/conf.d/$OLD_IP.conf /etc/nginx/conf.d/${NEW_IP}.conf
        fi
fi
swapfile /etc/hosts
ULDDU=/usr/local/vesta/data/users
for i in `ls $ULDDU`; do
{
        if [ ! -d $ULDDU/$i ]; then
                continue;
        fi
        swapfile $ULDDU/$i/web.conf
        swapfile $ULDDU/$i/dns.conf
        for j in `ls $ULDDU/$i/dns/*.conf`; do
        {
                swapfile $j
        };
        done;
        if [ "${HAVE_HTTPD}" -eq 1 ]; then
                swapfile /home/$i/conf/web/httpd.conf
        fi
        if [ "${HAVE_NGINX}" -eq 1 ]; then
                swapfile /home/$i/conf/web/nginx.conf
        fi
        for j in `ls /home/$i/conf/dns/*.db`; do
        {
                swapfile $j
        };
        done;
};
done;
#this is needed to update the serial in the db files.
if [ "${HAVE_HTTPD}" -eq 1 ]; then
   service httpd restart
fi
if [ "${HAVE_NGINX}" -eq 1 ]; then
   service nginx restart
fi
echo "*** Done swapping $OLD_IP to $NEW_IP ***";

Bước 2: Chạy lệnh sau để thực thi

 v-change-server-ip 103.x.x.1 103.x.x.2
  • trong đó “103.x.x.1 là IP cũ” và “103.x.x.2 là IP mới cần thay đổi”

change ip vestacp

Chúc bạn thực hiện thành công!

You may also like

Leave a Comment