Chuyển đến nội dung chính
OlaCheap

Hướng dẫn OlaCheap

Trỏ tên miền về hosting: làm đúng cho cả tên gốc và www

Trỏ tên miền về hosting là khai báo trong DNS để cả example.com lẫn www.example.com dẫn tới máy chủ đang chứa website của bạn. Phần lớn sự cố đến từ ba chỗ: sửa bản ghi ở nơi không thật sự quản lý DNS của tên miền, chỉ khai báo một trong hai tên, và kiểm tra quá sớm khi câu trả lời cũ vẫn nằm trong bộ nhớ đệm. Bài này đi theo đúng thứ tự cần làm, kèm lệnh kiểm tra cho từng bước.

Đăng ngày

Cần chuẩn bị gì trước khi trỏ

Nhà cung cấp hosting sẽ đưa cho bạn một trong hai thứ: địa chỉ IP của máy chủ, hoặc một tên máy chủ (hostname) để trỏ bằng CNAME. Thông tin này thường nằm trong email kích hoạt gói hosting hoặc trang tổng quan của gói. Nếu họ đưa thêm địa chỉ IPv6, chỉ dùng nó khi họ xác nhận website thật sự trả lời qua IPv6.

Trước khi sửa, chép lại toàn bộ bản ghi đang có của tên miền, nhất là MX (nhận email) và TXT (SPF, DKIM, mã xác minh của Google hay Microsoft). Trỏ website chỉ cần đổi bản ghi của tên gốc và www; các bản ghi email và xác minh phải giữ nguyên.

Bước 1: Tìm nơi thật sự quản lý DNS của tên miền

Bản ghi chỉ có tác dụng ở nơi mà tên miền đang được ủy quyền qua nameserver. Nếu tên miền đang dùng nameserver của Cloudflare chẳng hạn, mọi chỉnh sửa trong trang DNS của nhà đăng ký vẫn được lưu nhưng không máy chủ nào đọc tới. Đây là một lý do hay gặp của tình huống "đã lưu thành công mà truy vấn vẫn ra giá trị cũ".

Xem nameserver đang có hiệu lực bằng một trong hai lệnh dưới đây, rồi so với nơi bạn định sửa:

macOS và Linux dùng dig; Windows dùng nslookup (có sẵn trong Command Prompt).
dig NS example.com +short
nslookup -type=ns example.com
Kết quả thậtKết quả chạy thật ngày 20/10/2026, trên Linux (dig) và trên Windows (nslookup). Cả hai cho cùng hai nameserver: DNS của example.com đang được quản lý ở Cloudflare.
$ dig NS example.com +short
hera.ns.cloudflare.com.
elliott.ns.cloudflare.com.

> nslookup -type=ns example.com
Non-authoritative answer:
example.com	nameserver = hera.ns.cloudflare.com
example.com	nameserver = elliott.ns.cloudflare.com

Dòng Non-authoritative answer chỉ có nghĩa là câu trả lời đến từ máy chủ DNS trung gian của mạng bạn đang dùng, không phải lỗi. Nếu tên trả về khác với nơi bạn đang sửa, hãy sửa ở nơi mà lệnh chỉ tới. Còn nếu muốn chuyển cả việc quản lý DNS sang hosting (đổi nameserver), phải tạo lại đủ mọi bản ghi ở nơi mới trước khi đổi; nếu không, email và các dịch vụ xác minh ngừng ngay khi nameserver mới có hiệu lực.

Bước 2: Trỏ tên gốc bằng bản ghi A (và AAAA nếu có IPv6)

Tên gốc là chính example.com; nhiều trang quản lý DNS ghi nó là @, có nơi để trống ô Tên. Tạo bản ghi A cho tên gốc với giá trị là địa chỉ IPv4 của hosting. Nếu đã có bản ghi A cũ cho @, sửa nó thay vì thêm dòng mới: hai bản ghi A với hai địa chỉ khác nhau làm khách lúc vào máy chủ mới, lúc vào máy chủ cũ.

Bản ghi AAAA chỉ nên có khi hosting phục vụ website qua IPv6. Một bản ghi AAAA cũ còn trỏ về máy chủ trước đây là nguyên nhân quen thuộc của kiểu lỗi "mạng này vào được, mạng kia không": thiết bị có IPv6 thường thử địa chỉ đó trước, dù bản ghi A đã đúng.

Không dùng CNAME cho tên gốc. Theo chuẩn DNS, một tên đã có CNAME thì không được có thêm bản ghi nào khác (RFC 1912, mục 2.4), mà tên gốc luôn có sẵn bản ghi SOA và NS của vùng. Một số nhà cung cấp có kiểu bản ghi riêng như ALIAS, ANAME hay "CNAME flattening" để làm việc này; đó là tính năng riêng của từng nơi, không phải CNAME theo chuẩn.

Bước 3: Trỏ www bằng CNAME về tên gốc

Trong DNS, www.example.com là một tên riêng, không tự đi theo tên gốc. Cách gọn nhất là tạo CNAME cho www với giá trị example.com: sau này đổi IP ở tên gốc, www tự theo. Bạn cũng có thể tạo bản ghi A cho www với cùng địa chỉ IP, nhưng mỗi lần đổi hosting sẽ phải sửa hai nơi.

Một số dịch vụ dựng website và CDN yêu cầu trỏ www về hostname của họ thay vì về tên gốc. Khi đó dùng đúng hostname họ đưa làm giá trị CNAME; và vì tên có CNAME không được kèm bản ghi khác, hãy xóa bản ghi A cũ của www nếu còn.

Bộ bản ghi tối thiểu cho một website
Tên (Host)LoạiGiá trịGhi chú
@A192.0.2.10Địa chỉ IPv4 do hosting cấp
@AAAA2001:db8::10Chỉ thêm khi hosting xác nhận có IPv6
wwwCNAMEexample.comHoặc hostname riêng nếu dịch vụ yêu cầu
@MX, TXTgiữ nguyênBản ghi email và xác minh, không sửa khi trỏ website

Làm trên trang quản lý DNS của OlaCheap

OlaCheap tự thiết lập DNS do Cloudflare phục vụ cho tên miền đăng ký mới, nên với nhiều tên miền, trang tên miền hiện phần Bản ghi DNS (Cloudflare) thay cho bảng của nhà đăng ký. Ở đó mỗi bản ghi được lưu riêng: bấm Thêm bản ghi, chọn loại, điền tên và giá trị rồi bấm Thêm bản ghi trong khung vừa mở, hoặc bấm Sửa ở bản ghi có sẵn rồi Lưu bản ghi.

Với tên miền đăng ký tại OlaCheap và đang dùng DNS của nhà đăng ký: đăng nhập, mở Tên miền, chọn tên miền cần trỏ rồi kéo tới phần DNS. Bấm Thêm bản ghi để có thêm dòng, chọn loại, điền tên và giá trị như bảng ở trên, rồi bấm Lưu bản ghi DNS.

Trang quản lý DNS của OlaCheap với hai dòng đã điền: bản ghi A cho @ trỏ tới 192.0.2.10 và bản ghi CNAME cho www trỏ tới example.com
Hai bản ghi trỏ website trên trang quản lý DNS của OlaCheap, ngay trước khi bấm lưu. Ảnh chụp bản chạy thử cục bộ với tên miền tài liệu example.com.

Trang quản lý cũng kiểm tra giá trị trước khi gửi đi. Dán http://192.0.2.10 hay một tên máy chủ vào bản ghi A sẽ nhận thông báo lỗi, vì bản ghi A chỉ chứa địa chỉ IPv4; muốn trỏ tới một tên máy chủ thì dùng CNAME.

Thông báo lỗi Địa chỉ IPv4 không hợp lệ: http://192.0.2.10 trên trang quản lý DNS của OlaCheap
OlaCheap không lưu bản ghi A có giá trị sai định dạng. Ảnh chụp bản chạy thử cục bộ.

Bước 4: Kiểm tra bằng lệnh, theo đúng thứ tự

Kiểm tra hai lớp. Trước hết hỏi thẳng nameserver có thẩm quyền mà bạn tìm được ở Bước 1: câu trả lời ở đây không qua bộ nhớ đệm nào, nên đây là nơi thấy giá trị mới sớm nhất. Giá trị mới chỉ có ở đó sau khi nhà cung cấp DNS cập nhật xong vùng DNS; nếu chưa thấy, đợi một lúc rồi hỏi lại. Nếu bạn sửa ở bảng bản ghi của nhà đăng ký, ngay dưới tiêu đề Bản ghi DNS của bảng đó OlaCheap ghi: "Thay đổi được áp dụng qua đối tác nhà đăng ký của chúng tôi và có thể cần thời gian để cập nhật trên toàn mạng."

Thay <nameserver> bằng một tên nameserver trả về ở Bước 1.
dig @<nameserver> example.com A +short
dig @<nameserver> www.example.com CNAME +short
dig @<nameserver> www.example.com +short
Kết quả thậtHỏi thẳng nameserver có thẩm quyền của example.com (chạy thật ngày 20/10/2026). Câu hỏi CNAME cho www không in gì: ở tên miền này, www không phải CNAME mà có bản ghi A riêng, cùng hai địa chỉ với tên gốc.
$ dig @elliott.ns.cloudflare.com. example.com A +short
104.20.23.154
172.66.147.243

$ dig @elliott.ns.cloudflare.com. www.example.com CNAME +short

$ dig @elliott.ns.cloudflare.com. www.example.com +short
172.66.147.243
104.20.23.154

Đó chính là cách "bản ghi A riêng cho www" ở Bước 3: chạy được, nhưng mỗi lần đổi máy chủ phải sửa cả hai tên. Vì example.com không có CNAME cho www, bài không có kết quả thật nào của một bản ghi CNAME để dẫn ra đây.

Sau đó hỏi một máy chủ DNS công cộng, tức con đường mà khách truy cập thật sự đi qua:

Trong Windows PowerShell có thể dùng: Resolve-DnsName example.com -Type A
dig example.com A +short
dig www.example.com +short
nslookup example.com 8.8.8.8
Kết quả thậtCùng tên miền, hỏi qua máy chủ DNS công cộng (chạy thật ngày 20/10/2026). nslookup in cả địa chỉ IPv4 lẫn IPv6 vì example.com có cả bản ghi A và AAAA.
$ dig example.com A +short
104.20.23.154
172.66.147.243

$ dig www.example.com +short
104.20.23.154
172.66.147.243

$ nslookup example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 2606:4700:10::ac42:93f3
Name:	example.com
Address: 2606:4700:10::6814:179a
  • Nameserver có thẩm quyền trả địa chỉ mới, máy chủ công cộng vẫn trả địa chỉ cũ: cấu hình đã đúng, chỉ đang chờ bộ nhớ đệm hết hạn (xem phần TTL ngay dưới).
  • Chính nameserver có thẩm quyền còn trả giá trị cũ: bạn đang sửa ở nơi không có hiệu lực, thay đổi chưa được lưu, hoặc chưa cập nhật xong (đợi một lúc rồi hỏi lại).
  • Thấy địa chỉ IPv6 mà hosting không hề cấp cho bạn: còn bản ghi AAAA cũ, sửa hoặc xóa nó (Bước 2).
  • dig … +short không in gì cho www, còn nslookup báo không tìm thấy: tên này chưa có bản ghi nào, quay lại Bước 3.

Ở bước cuối, đừng chỉ chờ chữ NXDOMAIN. Với một tên chưa có bản ghi, tùy nhà cung cấp DNS, câu trả lời là NXDOMAIN, hoặc NOERROR không kèm câu trả lời nào (như example.com trên Cloudflare ở dưới, chỉ kèm bản ghi SOA của vùng); theo RFC 2308, cả hai đều là câu trả lời phủ định. Dấu hiệu chung của cả hai là phần trả lời trống:

Kết quả thậtMột tên không tồn tại dưới example.com (chạy thật ngày 20/10/2026): dig +short không in gì, trạng thái là NOERROR kèm bản ghi SOA, nslookup báo No answer.
$ dig khong-ton-tai-olacheap-guide.example.com +short

$ dig @8.8.8.8 khong-ton-tai-olacheap-guide.example.com | grep -E "status:|IN[[:space:]]+SOA"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58965
example.com.		1800	IN	SOA	elliott.ns.cloudflare.com. dns.cloudflare.com. 2416374680 10000 2400 604800 1800

$ nslookup khong-ton-tai-olacheap-guide.example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
*** Can't find khong-ton-tai-olacheap-guide.example.com: No answer

Vì sao đã sửa mà vẫn thấy website cũ: TTL và bộ nhớ đệm

Mỗi bản ghi có TTL (thời gian sống, tính bằng giây): máy chủ DNS trung gian được giữ câu trả lời cũ trong tối đa chừng ấy thời gian. Nếu bản ghi A cũ có TTL 86400, có nơi vẫn trả địa chỉ cũ tới một ngày sau khi bạn sửa. Hạ TTL sau khi đã sửa không làm các bản lưu cũ hết hạn sớm hơn; muốn chuyển nhanh, hãy hạ TTL xuống vài phút trước ngày chuyển, sớm hơn ít nhất bằng TTL cũ.

Bỏ +short và thêm +noall +answer để thấy TTL ở cột thứ hai, rồi so câu trả lời của nameserver có thẩm quyền với một máy chủ công cộng:

dig @<nameserver> example.com A +noall +answer
dig @1.1.1.1 example.com A +noall +answer
Kết quả thậtChạy thật ngày 20/10/2026. Nameserver có thẩm quyền luôn trả TTL đầy đủ (300 giây); máy chủ công cộng 1.1.1.1 trả bản nó đang lưu đệm, còn 140 giây nữa mới hết hạn. Trên Windows, cột TTL của Resolve-DnsName cũng là thời gian còn lại của bản lưu đệm.
$ dig @elliott.ns.cloudflare.com. example.com A +noall +answer
example.com.		300	IN	A	172.66.147.243
example.com.		300	IN	A	104.20.23.154

$ dig @1.1.1.1 example.com A +noall +answer
example.com.		140	IN	A	172.66.147.243
example.com.		140	IN	A	104.20.23.154

> Resolve-DnsName example.com -Type A
Name        Type TTL Section IPAddress
----        ---- --- ------- ---------
example.com A    132 Answer  172.66.147.243
example.com A    132 Answer  104.20.23.154

Câu trả lời "tên không tồn tại" cũng được lưu đệm. Nếu ai đó mở www trước khi bạn tạo bản ghi, máy chủ DNS có thể nhớ kết quả phủ định ấy trong khoảng thời gian do bản ghi SOA của vùng quy định (RFC 2308). Với example.com, bản ghi SOA ở trên ghi 1800 ở cả cột TTL lẫn số cuối cùng, tức kết quả phủ định có thể được nhớ tới 30 phút. Trên máy của bạn còn có bộ nhớ đệm của trình duyệt và hệ điều hành: thử cửa sổ ẩn danh, hoặc chạy ipconfig /flushdns trên Windows (nó báo Successfully flushed the DNS Resolver Cache. khi xóa xong).

Chỉ tên gốc hoặc chỉ www vào được: chẩn đoán nhanh

Hiện tượngNguyên nhân thường gặpCách sửa
www.example.com không tìm thấy, tên gốc vẫn chạyChưa có bản ghi cho wwwThêm CNAME www → example.com (Bước 3)
Tên gốc không vào được, www vẫn chạyThiếu bản ghi A cho @, hoặc nhà cung cấp không nhận CNAME ở tên gốcThêm A, và AAAA nếu có IPv6, cho @ (Bước 2)
Mạng này vào được, mạng kia khôngAAAA cũ trỏ về máy chủ trước, hoặc bộ nhớ đệm chưa hết TTLSửa hoặc xóa AAAA; kiểm tra lại sau khoảng TTL cũ
DNS đã đúng IP nhưng hiện trang mặc định của hostingTên miền chưa được thêm vào gói hosting nên máy chủ không biết phải trả website nàoThêm tên miền (và www) trong trang quản trị hosting
Vào được nhưng trình duyệt cảnh báo bảo mật ở một trong hai tênChứng chỉ HTTPS chỉ ghi một tênCấp lại chứng chỉ ghi cả example.com và www.example.com (cách kiểm tra chứng chỉ)

Sau khi DNS đúng: chọn một địa chỉ chính và bật HTTPS cho cả hai tên

Khi cả hai tên đã về đúng máy chủ, chọn một địa chỉ làm chính (có hoặc không có www) và đặt chuyển hướng vĩnh viễn 301 từ địa chỉ còn lại. Google khuyên dùng chuyển hướng 301 phía máy chủ để gộp những biến thể như example.com và www.example.com về một URL chuẩn, thay vì để hai địa chỉ cùng hiển thị một nội dung.

Chứng chỉ HTTPS phải ghi cả hai tên. Nếu hosting cấp chứng chỉ miễn phí bằng cách kiểm tra qua HTTP (Let's Encrypt gọi là HTTP-01), việc cấp chỉ thành công khi tên miền đã trỏ đúng máy chủ và cổng 80 trả lời. Vì vậy hãy xin chứng chỉ sau khi các lệnh ở Bước 4 cho kết quả đúng với cả hai tên.

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

Nên đổi nameserver sang hosting hay chỉ sửa bản ghi A?

Sửa bản ghi A giữ nguyên nơi quản lý DNS cùng mọi bản ghi email. Đổi nameserver chuyển cả vùng DNS sang hosting: tiện nếu hosting quản lý luôn email, nhưng phải tạo lại đủ MX, TXT và các bản ghi khác ở nơi mới trước khi đổi.

Bao lâu thì trỏ tên miền có hiệu lực?

Ở nameserver có thẩm quyền, bản ghi mới có sau khi nhà cung cấp DNS cập nhật xong vùng DNS; cách biết chắc là hỏi thẳng nameserver như ở Bước 4. Với bảng bản ghi của nhà đăng ký, OlaCheap ghi rằng thay đổi được áp dụng qua đối tác nhà đăng ký và có thể cần thời gian để cập nhật trên toàn mạng. Ở các máy chủ DNS khác, thời gian chờ dài nhất bằng TTL của câu trả lời cũ mà chúng đang giữ, hoặc thời gian lưu kết quả phủ định nếu tên chưa từng tồn tại. Đổi nameserver thường lâu hơn, vì bản ghi NS ở cấp đuôi tên miền có TTL riêng mà bạn không chỉnh được.

Có cần xóa bản ghi cũ trước khi thêm bản ghi mới không?

Có, nếu chúng cùng tên và cùng loại. Hai bản ghi A cho @ với hai địa chỉ khác nhau sẽ được trả về luân phiên, nên khách lúc thấy website mới, lúc thấy website cũ.

Chúng tôi đã kiểm tra những gì

Các bước trong bài được chạy thử hoặc đối chiếu nguồn như dưới đây.

  • Đã kiểm traThêm bản ghi A cho @ và CNAME cho www rồi lưu trên trang quản lý DNS của OlaCheap (2026-10-19, bản chạy thử cục bộ của OlaCheap với nhà đăng ký thử nghiệm, tên miền tài liệu example.com)
  • Đã kiểm traOlaCheap báo lỗi và không lưu khi giá trị của bản ghi A không phải địa chỉ IPv4 (2026-10-19, bản chạy thử cục bộ của OlaCheap)
  • Đã kiểm traLưu bảng bản ghi của nhà đăng ký trên OlaCheap thay toàn bộ danh sách bản ghi, và bị từ chối nếu bản ghi đã đổi sau khi mở trang (2026-10-19, đối chiếu với cách hệ thống OlaCheap lưu bản ghi DNS ở nhà đăng ký, kèm kiểm thử tự động)
  • Đã kiểm traTên miền đăng ký mới được tự thiết lập DNS do Cloudflare phục vụ; khi đó trang tên miền hiện phần Bản ghi DNS (Cloudflare), nơi mỗi bản ghi được thêm, sửa và lưu riêng (2026-10-20, đối chiếu với cấu hình triển khai của olacheap.com và giao diện trang tên miền trong hệ thống OlaCheap)
  • Đã kiểm traĐối chiếu quy tắc tên có CNAME không được có bản ghi khác (RFC 1912, mục 2.4) (2026-10-19, nguyên văn RFC 1912 mục 2.4, liệt kê ở phần Nguồn tham khảo)
  • Đã kiểm traChạy các lệnh dig, nslookup, Resolve-DnsName và ipconfig /flushdns trong bài với tên miền thật example.com (nameserver, bản ghi A và AAAA, www, TTL, tên không tồn tại) và chép kết quả vào bài (2026-10-20, máy chạy GitHub Actions lúc 23:31 UTC ngày 19/10/2026 (06:31 ngày 20/10/2026 giờ Việt Nam): Ubuntu 24.04.5 với DiG 9.18.39, và Windows Server 2025 với PowerShell 7.6.6)

Nguồn tham khảo

  1. RFC 1912: Common DNS Operational and Configuration Errors — IETF. Dùng cho: Tên đã có CNAME không được có bản ghi khác, nên không đặt CNAME ở tên gốc (mục 2.4).
  2. RFC 2308: Negative Caching of DNS Queries — IETF. Dùng cho: Câu trả lời phủ định (NXDOMAIN, hoặc NOERROR không kèm bản ghi) được lưu đệm theo bản ghi SOA của vùng.
  3. RFC 2606: Reserved Top Level DNS Names — IETF. Dùng cho: example.com là tên miền dành riêng cho ví dụ trong tài liệu.
  4. RFC 5737: IPv4 Address Blocks Reserved for Documentation — IETF. Dùng cho: Dải 192.0.2.0/24 chỉ dùng cho tài liệu.
  5. RFC 3849: IPv6 Address Prefix Reserved for Documentation — IETF. Dùng cho: Dải 2001:db8::/32 chỉ dùng cho tài liệu.
  6. How to specify a canonical URL with rel="canonical" and other methods — Google Search Central. Dùng cho: Dùng chuyển hướng 301 phía máy chủ để gộp các biến thể có và không có www.
  7. Challenge Types — Let's Encrypt. Dùng cho: Kiểm tra HTTP-01 chỉ chạy trên cổng 80 của máy chủ mà tên miền trỏ tới.
  8. Resolve-DnsName — Microsoft Learn. Dùng cho: Lệnh tra cứu DNS trong Windows PowerShell.