
網站搬家換主機,DNS 要怎麼切換才不會斷線?
換主機最怕的兩件事
網站搬家時客戶最常問的是:「切換的時候網站會不會關掉?」「客戶寄的信會不會不見?」
答案是:規劃得當可以做到完全不中斷;規劃不當,可能斷線數小時並遺失郵件。 差別在流程,不在技術難度。
以下是我們實際執行網站搬遷時採用的順序。
核心原則:新舊並存,先測後切
整個流程的關鍵在於——在切換 DNS 之前,新主機就必須已經完全可以運作。切換只是最後把指標移過去的動作,不是「開始搬家」的動作。
很多人的做法是先把 DNS 改掉再開始上傳檔案,這中間網站當然是壞的。
階段一:切換前一到兩週
1. 盤點目前的所有 DNS 記錄
不是只有網站那一筆。請完整列出並截圖備份:
- A 與 AAAA 記錄(網站、以及可能存在的各種子網域)
- CNAME 記錄
- MX 記錄(郵件)
- TXT 記錄(SPF、DKIM、DMARC、各服務的所有權驗證)
- 其他特殊記錄
最常被漏掉的是 TXT 記錄裡的各種驗證值。搬完之後才發現 Search Console 掉了驗證、電子報平台無法寄信,都是這個原因。
2. 確認郵件的搬遷方式
這是最需要提前決定的一項。三種情況:
| 情況 | 處理方式 | 風險 |
|---|---|---|
| 信箱在外部服務(如 Google Workspace) | MX 完全不動,只改網站的 A 記錄 | 極低 |
| 信箱在舊主機,要一併搬到新主機 | 需先在新主機建好所有帳號、搬移信件 | 高,需仔細規劃 |
| 趁搬家改用外部郵件服務 | 建議與網站搬遷分開執行 | 兩件事同時做風險加倍 |
強烈建議:如果信箱也在舊主機,不要和網站同時搬。 先搬網站,穩定後再處理郵件,或反過來。同時進行時一旦出問題,很難判斷是哪一邊造成的。
階段二:切換前一到兩天
3. 在新主機完成部署並測試
- 上傳程式與檔案、匯入資料庫
- 設定好網頁伺服器與 PHP 版本
- 申請並安裝 SSL 憑證
4. 用 hosts 檔測試新主機
這是整個流程中最重要的技巧。修改自己電腦的 hosts 檔,把網域指向新主機的 IP,就能在不影響任何人的情況下,用正式網址完整測試新環境。
測試項目:首頁、內頁、後台登入、表單送出、圖片顯示、SSL 是否正常。確認全部無誤,才進行下一步。具體操作方式可參考我們既有的 hosts 檔修改教學。
5. 把 TTL 調低到 300
針對即將變更的記錄(通常是 A 記錄)調低 TTL,並等待原 TTL 時間過去。這一步決定了切換當下的擴散速度,詳見改了 DNS 要多久才生效。
階段三:切換當天
6. 選對時間
建議選在流量最低的時段,一般是平日深夜或週間上午。避免週五下午——出問題時整個週末沒有人力處理。
7. 最後一次同步資料
如果網站有後台可新增內容、或有訂單與表單資料,切換前要再同步一次資料庫,避免這段期間新增的資料遺失。
8. 修改 A 記錄,指向新主機 IP
只改必要的記錄。MX 與 TXT 若不需變動就完全不要碰。
9. 舊主機保持開啟
這是關鍵。擴散期間部分使用者仍會連到舊主機,若此時把舊主機關掉,這些人就會看到錯誤頁面。舊主機至少保留三到七天。
階段四:切換後
10. 驗證清單
- 有 www 與沒有 www 的網址都能開啟
- http 自動轉為 https,憑證有效
- 後台可正常登入、可新增內容
- 表單送出後有收到通知信
- 從外部信箱寄信到公司信箱,確認收得到
- 用公司信箱寄信到 Gmail,確認沒進垃圾郵件匣
- Search Console 沒有出現大量抓取錯誤
11. 觀察期
切換後三到七天內每天檢查一次。確認舊主機的存取紀錄已無流量,才可以關閉舊主機。
12. 把 TTL 調回 3600
雙主機期間的資料一致性問題
這是最容易被忽略的風險:擴散期間,一部分訪客連到新主機、一部分連到舊主機。如果網站有寫入功能——訂單、會員註冊、留言、後台發文——就會出現資料分散在兩個資料庫的情況。
處理方式:
- 最單純:在切換前把舊網站的寫入功能暫停,或掛上維護公告,直到擴散完成
- 次之:讓舊主機的程式連線到新主機的資料庫,兩邊共用同一份資料
- 不建議:兩邊各自運作,事後手動比對合併
對純展示型的形象網站,這個問題不存在;對購物網站或有會員的網站,則必須事先規劃。