Trỏ tên miền về VPS: từ lúc mua đến khi web chạy 2026

Tài liệu » Quản lý tên miền » Trỏ tên miền về VPS: từ lúc mua đến khi web chạy 2026

Khi mua VPS và tên miền ở hai nơi khác nhau, bước dễ gây lỗi nhất thường là trỏ tên miền. Bạn có thể đã cài web server, upload mã nguồn, mở firewall đầy đủ nhưng trình duyệt vẫn báo không tìm thấy website, vào nhầm IP hoặc hiện trang mặc định của máy chủ.

Nguyên nhân là DNS có nhiều lớp: nhà đăng ký tên miền, name server, bản ghi DNS, IP VPS, web server và SSL. Chỉ cần sai một lớp, website có thể không hoạt động dù các phần còn lại đều đúng.

Trỏ tên miền về VPS: từ lúc mua đến khi web chạy 2026

Vì sao cần trỏ tên miền về VPS

Tên miền như example.com là địa chỉ dễ nhớ cho người dùng, còn VPS dùng địa chỉ IP như 103.123.45.67. DNS là hệ thống giúp trình duyệt biết tên miền đó phải kết nối đến IP nào.

Khi bạn trỏ tên miền đúng về VPS, người truy cập gõ example.com sẽ được chuyển đến máy chủ chứa website. Sau đó Nginx, Apache, Docker hoặc panel quản trị web sẽ xử lý request và trả nội dung về trình duyệt.

Hai pain point phổ biến nhất là:

  • Bạn đã cài WordPress, Laravel, Node.js hoặc website tĩnh trên VPS nhưng tên miền vẫn không vào được.
  • Bạn đã đổi DNS nhưng website lúc vào được, lúc không, hoặc mạng này vào IP mới nhưng mạng khác vẫn về IP cũ.

Một tình huống khác cũng rất hay gặp: domain chính chạy được nhưng www.example.com không chạy. Người dùng truy cập bằng www sẽ thấy lỗi DNS, trang trắng hoặc trang web của một server khác.

Lưu ý: Trỏ DNS chỉ giúp tên miền tìm đúng VPS. Để website chạy hoàn chỉnh, VPS vẫn cần mở port 80, 443, có cấu hình virtual host/server block đúng domain và cài SSL nếu dùng HTTPS.

Nếu bạn chưa quen với các thành phần trên VPS, có thể xem thêm hướng dẫn cấu hình firewall UFW cơ bản trước khi public website ra Internet.

Trỏ tên miền: sơ đồ toàn cảnh từ nhà đăng ký đến máy chủ

Để hiểu đúng quy trình, hãy hình dung luồng truy cập như sau:

Người dùng mở example.com
        ↓
Trình duyệt hỏi DNS resolver
        ↓
DNS resolver hỏi name server có thẩm quyền
        ↓
Name server trả về bản ghi A hoặc AAAA
        ↓
Tên miền được đổi thành IP VPS
        ↓
Trình duyệt kết nối VPS qua port 80 hoặc 443
        ↓
Nginx/Apache chọn website theo domain
        ↓
Website trả nội dung cho người dùng

Mỗi lớp có vai trò riêng:

Thành phầnVai tròVí dụ
Nhà đăng ký tên miềnNơi bạn mua và quản lý domainnơi mua example.com
RegistryHệ thống quản lý phần mở rộng domain.com, .net, .vn
Name serverMáy chủ trả lời bản ghi DNS cho domainns1.exampledns.com
DNS zoneNơi chứa các bản ghi DNSA, AAAA, CNAME, MX, TXT
Bản ghi ATrỏ hostname đến IPv4example.com → 103.123.45.67
Bản ghi AAAATrỏ hostname đến IPv6example.com → 2001:db8::10
VPSMáy chủ chạy websiteUbuntu, Debian, AlmaLinux
Web serverNhận request HTTP/HTTPSNginx, Apache, Caddy

Bạn cần phân biệt rõ giữa nơi mua tên miền và nơi quản lý DNS. Hai nơi này có thể là một, nhưng cũng có thể hoàn toàn khác nhau.

Ví dụ, bạn mua example.com ở nhà đăng ký A nhưng đang dùng name server của dịch vụ DNS B. Khi đó, bạn phải tạo bản ghi A ở DNS B, không phải ở giao diện DNS của nhà đăng ký A.

Đây là nguyên nhân phổ biến khiến nhiều người thêm bản ghi rất đúng nhưng tên miền vẫn không đổi. Họ đang sửa DNS ở nơi không có quyền trả lời chính thức cho domain.

Bạn có thể kiểm tra name server hiện tại bằng lệnh:

dig NS example.com +short

Kết quả có thể là:

ns1.dns-provider.net.
ns2.dns-provider.net.

Nếu kết quả này khác với name server ở trang quản lý tên miền, cần kiểm tra lại việc cập nhật NS tại nhà đăng ký.

Để hiểu nền tảng DNS rõ hơn, tham khảo tài liệu chính thức về DNS của Cloudflare. Dù bạn không dùng Cloudflare, cách DNS hoạt động vẫn giống nhau.

Đổi name server hay chỉ đổi bản ghi A

Có hai cách chính để trỏ tên miền về VPS:

  1. Giữ name server hiện tại và chỉ đổi bản ghi A.
  2. Đổi name server sang một hệ thống DNS khác, sau đó tạo bản ghi A tại đó.

Cách phù hợp phụ thuộc vào nơi bạn đang quản lý DNS và các dịch vụ đã gắn với tên miền.

Cách 1: Giữ name server, đổi bản ghi A

Đây là cách đơn giản nhất nếu DNS của bạn đang hoạt động ổn định. Bạn chỉ cần vào trang quản lý DNS hiện tại và tạo hoặc sửa bản ghi:

TypeName/HostValueTTL
A@IP IPv4 của VPS300 hoặc 600
AwwwIP IPv4 của VPS300 hoặc 600

Ví dụ:

A     @       103.123.45.67
A     www     103.123.45.67

Ký hiệu @ thường đại diện cho domain gốc, tức example.com. Bản ghi www tương ứng với www.example.com.

Nếu giao diện DNS yêu cầu nhập hostname đầy đủ, bạn có thể cần điền:

example.com
www.example.com

Cách này ít rủi ro vì không làm ảnh hưởng đến MX record, SPF, DKIM, DMARC hoặc các bản ghi xác minh dịch vụ khác.

Cách 2: Đổi name server

Bạn nên đổi NS khi muốn chuyển toàn bộ việc quản lý DNS sang một nền tảng khác. Ví dụ, bạn muốn dùng DNS có giao diện tốt hơn, hỗ trợ API, DNSSEC, CDN hoặc proxy.

Quy trình thường là:

  1. Thêm domain vào nhà cung cấp DNS mới.
  2. Sao chép toàn bộ bản ghi DNS hiện có sang nơi mới.
  3. Lấy danh sách name server mới.
  4. Vào nhà đăng ký domain và cập nhật NS.
  5. Chờ hệ thống registry cập nhật delegation.
  6. Kiểm tra lại toàn bộ record sau khi NS có hiệu lực.

Ví dụ name server mới:

ns1.exampledns.net
ns2.exampledns.net

Cảnh báo: Nếu tên miền đang dùng email doanh nghiệp, đừng đổi name server trước khi sao chép bản ghi MX, SPF, DKIM và DMARC. Website có thể vẫn chạy nhưng email sẽ ngừng nhận hoặc gửi.

Bạn chỉ cần đổi A record nếu mục tiêu đơn giản là đưa website sang VPS mới. Đổi NS là thay đổi lớn hơn, phù hợp khi bạn chủ động chuyển cả hạ tầng DNS.

Cấu hình bản ghi DNS để website chạy

Với một website thông thường chạy trên VPS có IPv4, bạn cần tối thiểu hai bản ghi A:

A     @       103.123.45.67
A     www     103.123.45.67

TTL nên để 300 giây nếu bạn đang migrate hoặc cần thử nghiệm. Sau khi hệ thống ổn định, bạn có thể nâng lên 3600 giây để giảm số lần truy vấn DNS.

Ngoài bản ghi A, bạn có thể gặp các loại record sau:

Loại recordDùng khi nàoVí dụ
ATrỏ domain đến IPv4example.com → 103.123.45.67
AAAATrỏ domain đến IPv6example.com → 2001:db8::10
CNAMEBí danh cho hostname khácwww → example.com
MXNhận emailmail server
TXTSPF, DKIM, DMARC, xác minh dịch vụchuỗi text
CAAGiới hạn CA được cấp SSLLet’s Encrypt, DigiCert
NSKhai báo name serverns1..., ns2...

Bạn có thể dùng CNAME cho www thay vì A record:

CNAME     www     example.com

Cách này giúp www.example.com tự theo domain gốc nếu sau này bạn đổi IP. Tuy nhiên, một số hệ thống DNS hoặc cấu hình đặc biệt có thể không hỗ trợ CNAME theo cách bạn mong muốn ở root domain.

Domain gốc example.com thường không thể dùng CNAME trực tiếp theo chuẩn DNS truyền thống. Vì vậy, bản ghi A cho @ vẫn là lựa chọn phổ biến và an toàn nhất.

Sau khi DNS trả về đúng IP, bạn cần cấu hình web server nhận đúng domain. Với Nginx, file thường nằm trong /etc/nginx/sites-available/.

Ví dụ file /etc/nginx/sites-available/example.com:

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/example.com/public;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

Sau đó kích hoạt cấu hình:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Nếu dùng nhiều website trên một VPS, server_name đặc biệt quan trọng. Nếu thiếu domain này, Nginx có thể trả về website mặc định hoặc website của domain khác.

Bạn có thể đọc thêm cách cài Nginx trên Ubuntu để kiểm tra cấu hình server block, log lỗi và quyền thư mục.

Chờ lan truyền: thực tế mất bao lâu

Khái niệm “DNS propagation” thường khiến nhiều người nghĩ rằng DNS cần 24 đến 48 giờ để cập nhật. Thực tế, thời gian có thể chỉ vài phút, nhưng cũng có trường hợp kéo dài hơn.

Có ba loại thay đổi cần phân biệt:

Loại thay đổiThời gian thường gặpYếu tố ảnh hưởng
Sửa A/AAAA record5 phút đến vài giờTTL cũ, DNS resolver cache
Sửa CNAME5 phút đến vài giờTTL của record liên quan
Đổi name servervài giờ đến 24-48 giờregistry, cache delegation
Xóa record cũcó thể lâu hơn TTLcache ở ISP và thiết bị

TTL không phải lời hứa tuyệt đối rằng đúng số giây là mọi nơi sẽ cập nhật. TTL là thời gian DNS resolver được phép cache kết quả trước khi hỏi lại.

Ví dụ bạn đang có A record cũ với TTL 86400. Dù bạn đổi record sang IP VPS mới, một số resolver có thể tiếp tục dùng IP cũ trong gần 24 giờ.

Nếu biết trước sẽ migrate server, hãy giảm TTL xuống 300 ít nhất vài giờ hoặc một ngày trước thời điểm chuyển. Sau khi TTL cũ hết hạn, bạn đổi IP sẽ nhanh hơn đáng kể.

Ngoài DNS resolver, máy tính và trình duyệt cũng có cache. Khi kết quả kiểm tra DNS đã đúng nhưng trình duyệt vẫn về web cũ, hãy thử:

curl -I http://example.com

Hoặc mở cửa sổ ẩn danh, đổi sang mạng 4G/5G, dùng DNS công cộng khác hoặc xóa DNS cache trên hệ điều hành.

Trên Windows:

ipconfig /flushdns

Trên Linux dùng systemd-resolved:

sudo resolvectl flush-caches

Trên macOS, lệnh có thể khác tùy phiên bản, nhưng thường dùng:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Kiểm chứng bằng dig/nslookup từ nhiều nơi

Đừng chỉ kiểm tra bằng trình duyệt. Trình duyệt cho biết website có mở hay không, nhưng không cho bạn biết lỗi nằm ở DNS, firewall, web server hay SSL.

Lệnh dig là công cụ đáng tin cậy trên Linux, macOS và WSL. Kiểm tra bản ghi A:

dig A example.com +short

Kết quả mong đợi:

103.123.45.67

Kiểm tra www:

dig A www.example.com +short

Nếu www dùng CNAME, kiểm tra đầy đủ:

dig www.example.com

Để hỏi trực tiếp DNS công cộng, tránh bị ảnh hưởng bởi DNS của mạng hiện tại:

dig @1.1.1.1 example.com A +short
dig @8.8.8.8 example.com A +short

Bạn cũng có thể kiểm tra name server có thẩm quyền:

dig NS example.com +short

Sau đó hỏi trực tiếp một authoritative name server:

dig @ns1.exampledns.net example.com A +short

Nếu authoritative name server đã trả đúng IP nhưng DNS công cộng vẫn trả IP cũ, lỗi thường là cache propagation. Nếu authoritative NS trả sai hoặc không có kết quả, bạn cần sửa DNS zone.

Trên Windows, dùng nslookup:

nslookup example.com
nslookup www.example.com 1.1.1.1

Để kiểm tra website có kết nối được đúng VPS không:

curl -I http://example.com
curl -Ik https://example.com

Nếu DNS đúng nhưng curl timeout, kiểm tra firewall, security group hoặc port trên VPS. Nếu nhận mã 404, 502, 503 hoặc trang mặc định, DNS có thể đúng nhưng Nginx/Apache chưa cấu hình đúng website.

Hãy kiểm tra các port đang lắng nghe:

sudo ss -tulpn | grep -E ':80|:443'

Và kiểm tra trạng thái Nginx:

sudo systemctl status nginx

Bẫy: quên bản ghi www, quên IPv6

Hai lỗi này rất nhỏ nhưng gây ra nhiều ticket hỗ trợ nhất.

Quên bản ghi www

Nhiều người chỉ tạo:

A     @     103.123.45.67

Khi đó example.com chạy bình thường, nhưng www.example.com không có DNS record. Người dùng gõ theo thói quen thêm www sẽ không vào được.

Bạn nên chọn một domain chuẩn:

  • Dùng example.com làm domain chính và redirect www.example.com về example.com.
  • Hoặc dùng www.example.com làm domain chính và redirect domain gốc về www.

Dù chọn cách nào, cả hai hostname vẫn cần resolve được. Đồng thời, SSL certificate cũng cần bao gồm cả example.com và www.example.com.

Quên bản ghi AAAA hoặc IPv6 cũ

Nếu domain có AAAA record trỏ tới IPv6 cũ nhưng VPS mới không cấu hình IPv6, một phần người dùng có thể không truy cập được website.

Nhiều hệ điều hành và mạng Internet sẽ ưu tiên IPv6 nếu có. Khi đó DNS trả cả A và AAAA, trình duyệt thử IPv6 trước rồi timeout hoặc kết nối đến server không đúng.

Kiểm tra AAAA record:

dig AAAA example.com +short
dig AAAA www.example.com +short

Nếu VPS không dùng IPv6, hãy xóa AAAA record cũ. Nếu VPS có IPv6, cần chắc chắn web server lắng nghe IPv6:

listen [::]:80;
listen [::]:443 ssl;

Ngoài ra, cần mở firewall IPv6 nếu UFW đang bật:

sudo ufw status verbose

Kiểm tra file /etc/default/ufw có dòng:

IPV6=yes

Sai lầm phổ biến

Sửa DNS ở sai nơi

Bạn vào nơi mua tên miền để sửa A record nhưng domain lại đang dùng name server của nhà cung cấp khác. Thay đổi đó không có hiệu lực vì DNS public không hỏi nơi bạn vừa sửa.

Luôn chạy dig NS example.com +short trước khi thao tác nếu không chắc domain đang dùng DNS ở đâu.

Chỉ trỏ domain gốc, bỏ quên www

Website chạy với example.com nhưng không chạy với www.example.com. Điều này ảnh hưởng trải nghiệm người dùng, SEO và việc xác minh SSL.

Tạo A record hoặc CNAME cho www, sau đó redirect hostname phụ về hostname chính.

Đổi name server làm mất email

Khi đổi NS, bạn quên sao chép MX, SPF, DKIM hoặc DMARC. Hậu quả là email doanh nghiệp không nhận được thư, thư vào spam hoặc không gửi được.

Trước khi đổi NS, export hoặc ghi lại toàn bộ DNS record hiện có. Đặc biệt chú ý các TXT record dài liên quan đến email.

Nghĩ DNS đúng là web chắc chắn chạy

DNS chỉ đưa người dùng đến VPS. Nếu Nginx chưa chạy, port 80/443 bị chặn, cấu hình server_name sai hoặc app lỗi, website vẫn không hoạt động.

Bạn cần kiểm tra theo thứ tự: DNS, kết nối IP, firewall, web server, ứng dụng, SSL.

Bỏ qua IPv6

A record đúng nhưng AAAA record cũ vẫn tồn tại. Một số người dùng sẽ bị lỗi, còn bạn có thể không tái hiện được lỗi nếu mạng của bạn ưu tiên IPv4.

Nếu chưa dùng IPv6, xóa AAAA cũ là phương án an toàn hơn.

Đổi record liên tục khi chưa hết TTL

Bạn đổi IP nhiều lần vì thấy mạng nhà mình chưa cập nhật. Điều này làm bạn khó biết record nào đang có hiệu lực và kéo dài thời gian xử lý sự cố.

Hãy kiểm tra bằng dig @1.1.1.1 và authoritative NS trước khi tiếp tục chỉnh sửa.

Câu hỏi thường gặp

Trỏ tên miền về VPS mất bao lâu?

Nếu chỉ sửa A record với TTL thấp, thường mất từ vài phút đến vài giờ. Nếu đổi name server, có thể mất vài giờ và đôi khi đến 24-48 giờ tùy registry, DNS resolver và cache cũ.

Có cần đổi name server để trỏ domain về VPS không?

Không nhất thiết. Nếu DNS hiện tại hoạt động bình thường, bạn chỉ cần đổi bản ghi A của domain gốc và www sang IP VPS mới.

Có thể trỏ nhiều domain về cùng một VPS không?

Có. Bạn chỉ cần tạo A record cho từng domain cùng trỏ về một IP VPS, sau đó cấu hình thêm server block Nginx hoặc virtual host Apache cho từng domain.

VPS đổi IP thì cần làm gì?

Sửa A record của domain và www sang IP mới. Nếu có AAAA record thì kiểm tra IPv6 tương ứng, sau đó reload hoặc kiểm tra lại web server trên VPS mới.

Tại sao dig ra IP đúng nhưng trình duyệt vẫn vào web cũ?

Trình duyệt, hệ điều hành, router hoặc ISP có thể đang cache DNS. Hãy thử xóa DNS cache, dùng cửa sổ ẩn danh, kiểm tra bằng curl, đổi sang mạng khác hoặc truy vấn DNS công cộng.

Có cần dùng cả A và CNAME cho www không?

Không cần. Bạn chọn một trong hai: tạo A record cho www trỏ thẳng IP VPS, hoặc tạo CNAME www trỏ đến domain gốc. CNAME thường tiện hơn nếu bạn hay đổi IP domain chính.

Tóm tắt nhanh

  • Trỏ tên miền là quá trình liên kết domain với IP VPS thông qua DNS record.
  • Kiểm tra name server hiện tại trước khi sửa DNS để tránh thao tác ở sai nơi.
  • Với website cơ bản, tạo A record cho @ và www cùng trỏ về IPv4 của VPS.
  • Chỉ đổi name server khi bạn muốn chuyển toàn bộ quản lý DNS, không phải chỉ để đổi IP website.
  • DNS đúng chưa đủ, VPS vẫn cần mở port 80, 443 và cấu hình Nginx/Apache đúng server_name.
  • Luôn kiểm tra cả A, AAAA, www, SSL và email record sau khi thay đổi DNS.
  • Dùng dig, nslookup và curl để xác định chính xác lỗi nằm ở DNS hay ở web server.
Lên đầu trang