Cloud House Technologies Logo
CloudHouse Technologies
HomeServicesProjectsBlogAbout UsCareersContact UsLogin
    Cloud House Technologies Logo
    CloudHouse Technologies
    HomeServicesProjectsBlogAbout UsCareersContact UsLogin

    How to Migrate from One VPS Provider to Another Without Downtime (2025 Guide)

    Priya

    Content Writer & Researcher

    Last Updated: 16 July 2026
    How to Migrate from One VPS Provider to Another Without Downtime (2025 Guide)
    🖥️

    Need a Zero-Downtime VPS Migration? We Handle It End-to-End.

    CloudHouse's server migration team has moved hundreds of VPS environments without data loss or downtime — from pre-migration audit to post-migration monitoring. Get a free migration assessment today.

    🔧 Book Free DiagnosisCall NowWhatsApp
    🖥️12,400+PCs Fixed
    ⭐4.9★Google Rating
    ⚡<15 minAvg. Response
    🛡️ISO 27001Certified

    Switching VPS providers is one of the most stressful operations a server administrator faces — done wrong, it means hours of downtime, lost emails, and broken SSL certificates. Done right with a structured process, migrating from one VPS provider to another can happen with zero downtime and zero data loss. This guide walks through every step: pre-migration audit, data transfer with rsync, DNS cutover timing, and post-migration verification.

    Why Migrate VPS Providers — and What Can Go Wrong

    Common reasons hosting teams migrate to a new VPS provider include better pricing, improved hardware (NVMe vs spinning disk), geographic relocation for latency, superior support SLAs, or a provider going out of business.

    Common migration mistakes that cause downtime:

    • Cutting DNS over before the new server is fully verified
    • Forgetting to transfer SSL certificates, causing browser warnings immediately after cutover
    • Not accounting for email queues — messages in transit during the cutover window get lost
    • Failing to replicate cron jobs, custom systemd services, or firewall rules
    • Ignoring database replication lag on MySQL/MariaDB slaves

    A structured migration plan eliminates all of these. The key principle: the new server must be 100% verified and live-tested before DNS is changed.

    Pre-Migration Checklist: Audit Before You Move

    Before touching the new server, document everything on the source server. Run this audit and save the output:

    # Running services
    systemctl list-units --type=service --state=running
    
    # Installed packages (Debian/Ubuntu)
    dpkg --get-selections > /root/packages.list
    
    # Installed packages (CentOS/AlmaLinux/Rocky)
    rpm -qa > /root/packages.list
    
    # Cron jobs (all users)
    for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null && echo "--- $user ---"; done
    
    # Open ports / firewall rules
    ss -tlnp
    iptables -L -n -v
    ufw status verbose 2>/dev/null
    
    # Disk usage
    df -h
    du -sh /var/www/* /home/* 2>/dev/null | sort -rh | head -20
    
    # Active databases
    mysql -e "SHOW DATABASES;" 2>/dev/null
    
    # Environment variables and app configs
    ls /etc/*.conf /etc/nginx/sites-enabled/ /etc/apache2/sites-enabled/ 2>/dev/null

    Save all output to a migration notes file. This becomes your verification checklist on the new server.

    💡 None of these worked? Skip the guesswork.

    Get Expert Help →

    Step-by-Step VPS Migration Process

    1Provision and harden the new VPS

    Create the new VPS at your target provider. Choose the same OS version as the source to simplify package compatibility. Before transferring any data, run the initial hardening steps: update all packages (apt update && apt upgrade -y or dnf update -y), configure SSH key-only authentication, disable root password login in /etc/ssh/sshd_config, and install your preferred firewall (UFW, CSF, or firewalld). Install the same web server, PHP version, and database version as the source server.

    2Set up SSH key access between source and destination

    On the source server, generate a migration key pair and copy the public key to the destination:

    ssh-keygen -t ed25519 -f /root/.ssh/migration_key -N ""
    ssh-copy-id -i /root/.ssh/migration_key.pub root@NEW_SERVER_IP

    Test the connection: ssh -i /root/.ssh/migration_key root@NEW_SERVER_IP "hostname". This key is used for all rsync transfers — delete it from both servers after migration is complete.

    3Transfer web files with rsync

    rsync is the preferred tool for VPS migration because it is resumable, compresses data in transit, and can run incrementally — you run it once for the bulk transfer, then run it again just before cutover to sync only the files that changed.

    # Initial bulk sync (run this hours or days before cutover)
    rsync -avz --progress -e "ssh -i /root/.ssh/migration_key"   /var/www/ root@NEW_SERVER_IP:/var/www/
    
    # Sync home directories
    rsync -avz --progress -e "ssh -i /root/.ssh/migration_key"   /home/ root@NEW_SERVER_IP:/home/
    
    # Final incremental sync (run this 5 minutes before DNS cutover)
    rsync -avz --delete -e "ssh -i /root/.ssh/migration_key"   /var/www/ root@NEW_SERVER_IP:/var/www/

    The --delete flag on the final sync ensures files deleted on the source are also removed on the destination, keeping both servers in perfect sync.

    4Export and import all databases
    # On source: dump all databases
    mysqldump --all-databases --single-transaction --routines --triggers   -u root -p > /root/all_databases.sql
    
    # Transfer to destination
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /root/all_databases.sql root@NEW_SERVER_IP:/root/
    
    # On destination: import
    mysql -u root -p < /root/all_databases.sql

    For large databases (10GB+), use mydumper and myloader for parallel dump/restore, which is significantly faster than mysqldump.

    5Transfer SSL certificates
    # Copy Let's Encrypt certificates
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /etc/letsencrypt/ root@NEW_SERVER_IP:/etc/letsencrypt/
    
    # Copy custom/commercial certificates
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /etc/ssl/custom/ root@NEW_SERVER_IP:/etc/ssl/custom/

    After the transfer, on the new server verify the certificates are recognised: certbot certificates. Update your web server virtual host configs to point to the correct certificate paths.

    6Replicate all configuration files
    # Nginx virtual hosts
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /etc/nginx/sites-available/ root@NEW_SERVER_IP:/etc/nginx/sites-available/
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /etc/nginx/sites-enabled/ root@NEW_SERVER_IP:/etc/nginx/sites-enabled/
    
    # Apache virtual hosts
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /etc/apache2/sites-available/ root@NEW_SERVER_IP:/etc/apache2/sites-available/
    
    # PHP configuration
    rsync -avz -e "ssh -i /root/.ssh/migration_key"   /etc/php/ root@NEW_SERVER_IP:/etc/php/
    
    # Cron jobs
    crontab -l | ssh -i /root/.ssh/migration_key root@NEW_SERVER_IP "crontab -"
    7Verify the new server with a hosts file test

    Before changing any DNS, test every site on the new server by temporarily overriding DNS on your local machine. On your workstation, edit /etc/hosts (Linux/Mac) or C:\Windows\System32\drivers\etc\hosts (Windows):

    NEW_SERVER_IP  yourdomain.com www.yourdomain.com

    Browse every page of your site, test logins, check that SSL shows valid in the browser, submit test forms, and run your application's test suite if one exists. Only remove this hosts file entry and proceed with DNS cutover once everything is verified working.

    8Lower DNS TTL before cutover

    At least 24–48 hours before the planned cutover, lower your DNS TTL to 300 seconds (5 minutes). This ensures that when you change the A record, propagation completes in under 10 minutes rather than up to 24 hours. After migration is stable (48 hours), raise TTL back to 3600 or higher.

    9Execute the DNS cutover

    The cutover window procedure:

    • Run the final rsync incremental sync to capture any files changed since the initial bulk transfer
    • Put the source server into maintenance mode (or enable a short maintenance page)
    • Take a final database dump and import it on the destination
    • Update the DNS A record to point to the new server's IP
    • Monitor DNS propagation: watch -n 10 "dig +short yourdomain.com @8.8.8.8"
    • Once propagation is confirmed, remove the maintenance page on the new server
    10Handle email during the migration window

    Email is the most common casualty of VPS migrations. To prevent lost messages:

    • Lower MX record TTL 48 hours before cutover along with the A record
    • Transfer all mailbox data: rsync -avz /var/mail/ root@NEW_SERVER_IP:/var/mail/ and rsync -avz /home/*/Maildir/ root@NEW_SERVER_IP:/home/ (path depends on your mail server)
    • Start Postfix/Dovecot on the new server before updating MX records so incoming mail is accepted immediately
    • Keep the old server's mail server running for 24 hours after MX change to catch any messages routed to the old IP during propagation

    Post-Migration Verification Checklist

    • Web: All sites load on HTTPS without certificate warnings
    • Database: Application connects and data is intact — run SHOW TABLES; and check row counts on key tables
    • Email: Send and receive test emails; check spam folder delivery
    • Cron jobs: Verify cron is running: crontab -l and check /var/log/syslog for cron execution entries
    • SSL: Run curl -vI https://yourdomain.com 2>&1 | grep SSL to confirm certificate is valid and from the new server
    • Firewall: ufw status or csf -l — confirm rules are active
    • Performance: Run a quick load test with ab -n 100 -c 10 https://yourdomain.com/
    • Monitoring: Update any uptime monitoring, Zabbix, or Grafana agents to the new server IP

    Keep the old VPS running for at least 72 hours after migration is confirmed stable. Once you're satisfied, decommission it — but take a final snapshot first in case an edge case surfaces later.

    When to Hire a Managed Migration Service

    DIY VPS migration works well for single-site setups with simple stacks. For environments running 50+ websites, custom database clusters, real-time applications, or strict uptime SLAs, the risk of missed configuration details is significant. A managed migration service handles the full process — pre-migration audit, parallel environment setup, live testing, cutover coordination, and post-migration monitoring — with guaranteed zero downtime. CloudHouse Technologies provides expert server migration services for businesses that cannot afford migration-related downtime.

    Get the Free Linux Server Admin Cheatsheet (PDF)

    Essential commands for server management, networking, and troubleshooting — all on one printable page.

    Running Linux servers? Let us manage them for you.

    Our Managed Linux Server plans cover updates, security hardening, monitoring, and 24/7 incident response — so your servers stay up and your team stays focused.

    • Proactive OS patching and security updates
    • 24×7 monitoring with instant alerting
    • Backup configuration and disaster recovery
    • Dedicated Linux engineers on call
    See Pricing Plans →

    What our customers say

    “Our production server went down at 2 AM. CloudHouse had it back online in under 20 minutes. Incredible response time.”

    Arun S.

    CTO, SaaS Startup

    “They migrated our entire infrastructure from Ubuntu 18 to 22 with zero downtime. Couldn't have asked for better.”

    Deepak N.

    DevOps Lead

    Frequently Asked Questions

    Most single-server migrations take 4–8 hours of active work spread over 2 days: one day for bulk data transfer and environment setup, and a second day for final sync, DNS cutover, and verification. Larger environments with dozens of sites and databases can take 1–3 days. The DNS propagation window (5–30 minutes with a reduced TTL) is the only user-visible downtime.

    Book your free 15-minute diagnosis

    A certified technician will call you back within 15 minutes during business hours.

    Share this article

    Leave a Comment

    Comments (0)

    Loading comments...

    Migrating to a New VPS Provider?

    VPS migrations are complex — missed cron jobs, stale SSL certs, and email delivery gaps are common pitfalls. CloudHouse Technologies takes the risk out of the process with a structured, tested migration methodology. Contact us for a free scoping call.

    Call Now — FreeWhatsApp Us

    Why CloudHouse?

    • ISO 27001:2022 certified
    • 12,400+ devices supported
    • 4.9★ on Google
    • Sub-15-minute response

    CloudHouse Technologies

    Innovative cloud solutions for modern businesses. We deliver cutting-edge technology with exceptional service.

    Contact Us

    CloudHouse Technologies Pvt.Ltd
    Special Economic Zone(SEZ),
    Infopark Thirissur,4B-15,
    Indeevaram,Nalukettu Road,
    Koratty, Kerala, India-680308
    0480-27327360
    info@cloudhousetechnologies.com

    Quick Links

    • Our Services
    • Gold Loan Software
    • About Us
    • Contact
    • Terms and Conditions
    • Privacy Policy
    ISO27001:2022
    Certified

    © 2026 CloudHouse Technologies Pvt.Ltd. All rights reserved.

    Back to top