Cách trỏ tên miền về VPS: bản ghi A, nameserver và kiểm tra DNS
Hướng dẫn trỏ tên miền về VPS từng bước: tạo bản ghi A, AAAA, www, đổi nameserver, giữ email không gián đoạn, kiểm tra bằng dig và cài SSL ngay sau đó.

Ý chính
- Cách nhanh nhất là tạo bản ghi A cho @ và www trỏ về IPv4 của VPS tại nơi đang quản lý DNS.
- Đổi bản ghi A thường có hiệu lực trong vài phút đến vài giờ, tuỳ TTL; đổi nameserver có thể lâu hơn.
- Đừng xoá bản ghi MX và TXT nếu email đang chạy ở nơi khác.
- Let's Encrypt chỉ cấp SSL khi tên miền đã phân giải về VPS và cổng 80 mở.
Để trỏ tên miền về VPS, bạn vào trang quản lý DNS của nơi đang giữ DNS cho tên miền (nhà đăng ký, Cloudflare hoặc DNS riêng), tạo bản ghi A cho @ và www với giá trị là địa chỉ IPv4 của VPS, thêm AAAA nếu VPS có IPv6, rồi chờ theo TTL (thường vài phút đến vài giờ). Cách thứ hai là đổi nameserver của tên miền sang máy chủ DNS bạn tự quản lý, linh hoạt hơn nhưng lâu có hiệu lực hơn. Khi tên miền đã phân giải về VPS, bạn cài chứng chỉ SSL miễn phí.
Bài viết hướng dẫn cả hai cách, giải thích TTL và "thời gian cập nhật DNS", cách kiểm tra bằng dig, cách giữ email không bị gián đoạn, các lỗi hay gặp, và cách làm trong ZoPanel.
Trỏ bản ghi A hay đổi nameserver?
DNS của một tên miền luôn do một nơi duy nhất trả lời: nơi mà nameserver của tên miền chỉ tới. Trước khi sửa gì, hãy biết nơi đó là đâu.
| Cách | Làm gì | Ưu điểm | Nhược điểm |
|---|---|---|---|
| Trỏ bản ghi A | Giữ nguyên nameserver, sửa bản ghi A/AAAA tại nơi đang quản lý DNS | Nhanh, không đụng tới các bản ghi khác (email, xác minh) | Phải sửa DNS ở trang quản lý của bên khác mỗi lần thay đổi |
| Đổi nameserver | Chuyển cả vùng DNS về máy chủ DNS của bạn (hoặc Cloudflare) | Quản lý mọi bản ghi tại một chỗ, cần cho SSL wildcard và nameserver riêng | Có thể mất tới 24 đến 48 giờ; phải tạo lại đủ bản ghi trước khi đổi |
Với một website đơn lẻ, trỏ bản ghi A là đủ. Đổi nameserver hợp với công ty hosting, agency quản lý nhiều tên miền, hoặc khi bạn cần SSL wildcard.
Chuẩn bị trước khi trỏ tên miền về VPS
1. Lấy địa chỉ IP của VPS
IP có trong trang quản lý của nhà cung cấp VPS. Trên chính server, bạn có thể xem bằng:
ip -4 -brief address show scope global
ip -6 -brief address show scope global
Nếu VPS nằm sau NAT (một số nhà cung cấp dùng IP nội bộ), hãy lấy IP công khai từ trang quản lý của nhà cung cấp.
2. Xem tên miền đang dùng nameserver nào
dig NS example.com +short
Kết quả cho biết nơi bạn cần đăng nhập để sửa DNS: nameserver của nhà đăng ký tên miền, của Cloudflare (*.ns.cloudflare.com), hay của nhà cung cấp hosting cũ. Trên Ubuntu/Debian, cài dig bằng sudo apt install dnsutils. Trên Windows, dùng nslookup -type=NS example.com.
3. Hạ TTL trước một ngày (nếu tên miền đang chạy)
TTL (Time To Live) là số giây các máy chủ DNS trung gian được phép nhớ câu trả lời cũ. Nếu bản ghi A hiện có TTL 86400 (một ngày), hãy hạ xuống 300 giây trước khi chuyển ít nhất một khoảng bằng TTL cũ. Khi đổi IP, người dùng sẽ thấy IP mới trong khoảng 5 phút thay vì một ngày.
Cách 1: Trỏ bản ghi A về VPS
Đăng nhập trang quản lý DNS (của nhà đăng ký, Cloudflare hoặc nhà cung cấp hiện tại) và tạo hoặc sửa các bản ghi sau, thay 203.0.113.10 bằng IP của bạn:
| Loại | Tên | Giá trị | TTL |
|---|---|---|---|
| A | @ |
203.0.113.10 |
300 khi đang chuyển, sau đó 3600 |
| A | www |
203.0.113.10 |
như trên |
| AAAA | @ |
IPv6 của VPS (nếu có) | như trên |
| AAAA | www |
IPv6 của VPS (nếu có) | như trên |
Một số lưu ý quan trọng:
@là tên miền gốc (example.com). Có trang quản lý yêu cầu để trống hoặc ghi đầy đủ tên miền thay vì@.wwwcó thể dùng CNAME trỏ vềexample.comthay cho bản ghi A, nhưng không dùng CNAME cho tên miền gốc: theo RFC 1912, CNAME không được tồn tại cùng bản ghi khác, mà tên miền gốc luôn có NS và SOA.- Xoá bản ghi A/AAAA cũ của
@vàwww. Nếu còn hai bản ghi A với hai IP khác nhau, khách truy cập sẽ lúc vào server mới, lúc vào server cũ, và Let's Encrypt có thể xác thực thất bại. - Chỉ thêm AAAA khi VPS thật sự phục vụ website qua IPv6. Một bản ghi AAAA sai là nguyên nhân phổ biến khiến website "lúc được lúc không" và SSL không cấp được.
- Không đụng tới MX và TXT nếu email của tên miền đang chạy ở nơi khác (Google Workspace, Microsoft 365, email của nhà cung cấp cũ). Trỏ website về VPS không có nghĩa là phải chuyển email.
Cách 2: Đổi nameserver của tên miền
Nếu bạn muốn quản lý toàn bộ DNS trên VPS hoặc trên Cloudflare:
- Tạo vùng DNS ở nơi mới trước và thêm đủ mọi bản ghi: A, AAAA,
www, MX, SPF, DKIM, DMARC, các TXT xác minh (Google, Facebook…). Bản ghi nào thiếu sẽ ngừng hoạt động ngay khi nameserver đổi. - Đổi nameserver tại nhà đăng ký tên miền sang nameserver mới (ví dụ
ns1.congtyban.com,ns2.congtyban.com, hoặc hai nameserver Cloudflare cấp). - Nếu dùng nameserver riêng thuộc chính tên miền của bạn (như
ns1.congtyban.com), bạn cần tạo glue record (host record) tại nhà đăng ký củacongtyban.com, trỏns1vàns2về IP server DNS. Chi tiết ở bài tạo nameserver riêng. - Chờ. Thay đổi nameserver phải đi qua máy chủ của tên miền cấp cao (.com, .vn…), nơi TTL của bản ghi NS thường dài, nên có thể mất tới 24 đến 48 giờ.
Kiểm tra tên miền đã trỏ về VPS chưa
Dùng dig để hỏi trực tiếp nhiều máy chủ DNS:
# Câu trả lời từ máy chủ DNS mặc định của bạn
dig +short example.com A
dig +short www.example.com A
# Hỏi DNS công cộng của Google và Cloudflare
dig +short example.com A @8.8.8.8
dig +short example.com A @1.1.1.1
# Hỏi thẳng nameserver có thẩm quyền (không qua bộ nhớ đệm)
dig +short example.com A @$(dig NS example.com +short | head -n1)
Nếu nameserver có thẩm quyền đã trả IP mới mà máy bạn vẫn thấy IP cũ, chỉ là bộ nhớ đệm chưa hết hạn. Bạn có thể:
- xoá bộ nhớ đệm DNS trên máy: Windows
ipconfig /flushdns; macOSsudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; Ubuntu dùng systemd-resolvedresolvectl flush-caches; - yêu cầu Google Public DNS xoá bộ nhớ đệm cho tên miền tại trang Flush Cache của Google.
Kiểm tra website trên VPS trước khi đổi DNS để tránh gián đoạn:
curl -I --resolve example.com:80:203.0.113.10 http://example.com/
Hoặc thêm dòng 203.0.113.10 example.com www.example.com vào file hosts trên máy bạn (/etc/hosts trên Linux/macOS, C:\Windows\System32\drivers\etc\hosts trên Windows), mở trình duyệt kiểm tra, xong thì xoá dòng đó đi.
Sau khi trỏ: cài SSL cho tên miền
Let's Encrypt xác thực tên miền qua HTTP, nên cần hai điều kiện: tên miền đã phân giải về VPS và cổng 80 mở (cả trong tường lửa của server lẫn tường lửa/security group của nhà cung cấp). Đó là lý do nên trỏ DNS trước rồi mới tạo website và xin chứng chỉ. Hướng dẫn chi tiết có trong bài cài SSL miễn phí Let's Encrypt.
Trỏ tên miền về VPS trong ZoPanel
Dùng DNS ở nhà đăng ký hoặc Cloudflare
- Tạo bản ghi A cho
@vàwwwvề IP của server như trên. - Trong ZoPanel, vào Website → Thêm website, nhập tên miền, giữ SSL miễn phí (Let's Encrypt) bật.
- Nếu DNS đã trỏ xong, chứng chỉ được cấp ngay khi tạo website. Nếu chưa, bạn không cần quay lại: mỗi giờ ZoPanel kiểm tra DNS và tự cấp chứng chỉ khi tên miền chỉ phân giải về server này. Muốn cấp ngay, bấm Cấp chứng chỉ trong tab SSL.
Xem từng bước trong Website đầu tiên và Chứng chỉ SSL.
Dùng máy chủ DNS của chính ZoPanel
ZoPanel có thể chạy máy chủ DNS có thẩm quyền (PowerDNS) để bạn và khách quản lý vùng DNS ngay cạnh website:
- Chọn tên nameserver, ví dụ
ns1.congtyban.comvàns2.congtyban.com, và tạo glue record tại nhà đăng ký. - Mở DNS, nhập Nameserver, bấm Cài máy chủ DNS (cổng 53 TCP/UDP được mở trên tường lửa).
- Trong Vùng DNS, chọn tên miền của website và bấm Thêm vùng. Vùng mới có sẵn bản ghi A cho
@vàwww, bản ghi CAA chỉ cho phép Let's Encrypt, và các bản ghi email nếu đã bật email cho tên miền. - Tại nhà đăng ký, đặt nameserver theo danh sách ZoPanel hiển thị.
Khi vùng DNS nằm trên server, bạn có thể bật DNSSEC và xin chứng chỉ wildcard *.example.com. Chi tiết ở tài liệu DNS.
Website đi qua proxy Cloudflare
Nếu bật proxy (đám mây màu cam) trên Cloudflare, tên miền phân giải về IP của Cloudflare chứ không phải VPS, nên SSL tự động không tự nhận. Hãy bấm Cấp chứng chỉ trong tab SSL hoặc cài Cloudflare Origin certificate ở Chứng chỉ riêng, rồi đặt chế độ SSL của Cloudflare là Full (strict). Bật thêm Website đứng sau Cloudflare trong Bảo mật để log, thống kê và Fail2ban thấy đúng IP khách thật.
Lỗi hay gặp khi trỏ tên miền về VPS
| Hiện tượng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| Máy khác vào được, máy bạn vẫn vào server cũ | Bộ nhớ đệm DNS trên máy hoặc nhà mạng | Xoá cache DNS, thử mạng khác, chờ hết TTL |
| Lúc vào được lúc không | Còn bản ghi A cũ, hoặc AAAA trỏ sai | Xoá bản ghi thừa, kiểm tra cả dig AAAA |
| Sửa DNS mà không có tác dụng | Sửa ở nơi không phải nameserver đang dùng | Kiểm tra lại dig NS, sửa đúng nơi |
| Email ngừng nhận sau khi đổi nameserver | Vùng DNS mới thiếu MX, SPF, DKIM | Thêm lại bản ghi email vào vùng mới |
| SSL không cấp được | DNS chưa trỏ xong, cổng 80 đóng, hoặc CAA chặn | Kiểm tra dig, mở cổng 80 ở cả tường lửa nhà cung cấp |
www không chạy, tên miền gốc chạy |
Thiếu bản ghi cho www |
Thêm A hoặc CNAME cho www |
Kết luận
Trỏ tên miền về VPS chỉ là vài bản ghi DNS, nhưng làm đúng thứ tự giúp tránh gián đoạn: hạ TTL, kiểm tra website trên VPS qua file hosts, sửa bản ghi A ở đúng nơi, giữ nguyên bản ghi email, rồi cài SSL. Nếu bạn chưa có panel trên VPS, ZoPanel gói Free cài bằng một lệnh và tự cấp SSL ngay khi tên miền trỏ về:
curl -fsSL https://get.zopanel.net | sudo bash
Xem bảng giá khi cần nhiều hơn 10 website.
Câu hỏi thường gặp
Trỏ tên miền về VPS mất bao lâu?
Đổi bản ghi A thường có hiệu lực trong vài phút đến vài giờ, tuỳ TTL của bản ghi cũ. Đổi nameserver có thể mất tới 24 đến 48 giờ vì phải cập nhật ở máy chủ của tên miền cấp cao. Hạ TTL trước một ngày giúp việc chuyển nhanh hơn.
Trỏ tên miền về VPS có làm mất email không?
Không, nếu bạn chỉ sửa bản ghi A và AAAA và giữ nguyên MX, SPF, DKIM, DMARC. Email chỉ bị ảnh hưởng khi bạn đổi nameserver mà vùng DNS mới thiếu các bản ghi email, hoặc khi bạn sửa MX.
Nên dùng bản ghi A hay CNAME?
Dùng bản ghi A cho tên miền gốc, vì tên miền gốc không được dùng CNAME. Với www và các tên miền con, bạn có thể dùng A hoặc CNAME trỏ về tên miền gốc; CNAME tiện khi IP thay đổi vì chỉ phải sửa một chỗ.
Có cần trỏ IPv6 (AAAA) không?
Chỉ khi VPS có IPv6 và website thật sự chạy trên IPv6. Một bản ghi AAAA sai khiến người dùng mạng IPv6 không vào được và có thể làm việc cấp SSL thất bại. Không có AAAA thì website vẫn chạy bình thường qua IPv4.
Một VPS có chạy được nhiều tên miền không?
Được. Mỗi tên miền trỏ bản ghi A về cùng một IP, web server phân biệt website theo tên miền trong yêu cầu. Với control panel, bạn chỉ cần tạo thêm website cho từng tên miền, mỗi website có chứng chỉ SSL riêng.
Đọc tiếp

Cài Nginx, PHP, MariaDB trên Ubuntu 24.04 (LEMP) từng bước
Hướng dẫn cài nginx php mariadb trên Ubuntu 24.04 và Debian 12: tường lửa, PHP-FPM, server block, database, SSL Let's Encrypt và các lỗi bảo mật hay gặp.

Tạo email tên miền trên VPS: hướng dẫn mail server không vào spam
Hướng dẫn tạo email tên miền trên VPS: điều kiện cổng 25 và PTR, bản ghi MX, SPF, DKIM, DMARC, cài mail server, webmail và cách giữ thư không rơi vào spam.

Bảo mật VPS Ubuntu: 10 bước cần làm ngay sau khi cài đặt
Hướng dẫn bảo mật VPS Ubuntu 24.04 từng bước: SSH key, tắt đăng nhập mật khẩu, UFW, Fail2ban, cập nhật tự động và sao lưu, kèm lệnh chính xác và lỗi cần tránh.