Operations

Cách cấu hình rDNS cho VPS gửi mail chuẩn 2026

Bạn đã bao giờ gửi mail từ VPS của mình mà người nhận cứ phàn nàn thư vào spam, dù SPF, DKIM đều đã cấu hình đầy đủ chưa? Nếu rồi, rất có thể vấn đề nằm ở rDNS, thứ mà rất nhiều người quên. Cấu hình rDNS (PTR record) là bước thiết yếu nếu bạn muốn email rời khỏi VPS không bị các máy chủ thư lớn như Gmail, Outlook vứt vào thùng rác. Bài này hướng dẫn chi tiết cách cấu hình rDNS cho VPS gửi mail trên hệ điều hành Ubuntu 24.04 LTS, cùng các lệnh kiểm tra để chắc chắn mọi thứ hoạt động đúng.

Tóm tắt nhanh

  • rDNS (hay PTR record) là bản ghi DNS ngược, ánh xạ từ địa chỉ IP sang tên miền. Máy chủ nhận thư dùng nó để xác minh danh tính người gửi.
  • Nếu VPS của bạn không có rDNS, hoặc rDNS trỏ về tên miền không khớp với hostname trong EHLO, tỷ lệ email rơi vào spam tăng rõ rệt.
  • Để cấu hình, bạn đặt PTR record trên hệ thống quản lý DNS của nhà cung cấp VPS hoặc trong control panel như Virtualizor, SolusVM. Sau đó kiểm tra bằng lệnh dig -x hoặc host.
  • Bạn không tự đặt rDNS trên VPS được, phải thao tác ở phía nhà cung cấp hạ tầng vì họ sở hữu dải IP. Mỗi IPv4 chỉ có một PTR record riêng biệt.

Yêu cầu trước khi bắt đầu

  • Một VPS đang chạy Ubuntu 24.04 LTS, có quyền root hoặc user sudo. Các bước trong bài dùng user root cho đơn giản.
  • Một tên miền đã được trỏ A record về IP của VPS. Ví dụ bài dùng mail.example.com trỏ về 203.0.113.10.
  • Quyền truy cập vào trang quản lý DNS của nhà cung cấp VPS (thường là nơi bạn mua VPS, hoặc control panel như Virtualizor/VestaCP nếu có).
  • Kiến thức cơ bản về bản ghi DNS: A record, MX record. Không cần quá sâu đâu, chỉ cần hiểu khái niệm.

Vì sao rDNS lại quan trọng với việc gửi mail?

Khi VPS của bạn gửi email đi, máy chủ nhận thư (ví dụ Gmail) sẽ thực hiện một loạt kiểm tra để quyết định xem thư có phải spam hay không. Một trong những kiểm tra đầu tiên và cơ bản nhất là tra cứu ngược: từ IP người gửi, máy chủ nhận sẽ hỏi DNS "IP này tên là gì?". Câu trả lời chính là bản ghi PTR, hay rDNS.

Nếu IP của bạn không có rDNS, hoặc rDNS trỏ về một tên miền không liên quan gì (ví dụ tên miền của nhà cung cấp hạ tầng), xác suất email bị đánh dấu spam tăng rất cao. Gmail và Outlook coi thiếu rDNS là dấu hiệu của máy chủ gửi thư rác, và họ không ngại đưa thẳng vào hộp thư rác mà không cần lý do khác.

Chưa hết, rDNS còn phải khớp với hostname mà VPS khai báo trong lệnh EHLO khi bắt tay SMTP. Tức là ba thứ phải trùng khớp: hostname trong file /etc/hostname, giá trị bạn khai báo trong Postfix (thường là myhostname), và rDNS của IP. Nếu lệch một trong ba, một số máy chủ thư sẽ từ chối nhận thư hoặc tăng điểm spam.

Bước 1 - Xác định địa chỉ IP công khai và tên miền sẽ dùng cho rDNS

Trước tiên, bạn cần biết chính xác IP công khai của VPS. Nếu VPS đứng sau NAT (hiếm gặp với VPS KVM chuẩn như của VPS Linux tại thueVPS), hãy lấy IP trên giao diện chính. Dùng lệnh sau để kiểm tra:

ip addr show
# hoặc nhanh hơn
curl -4 ifconfig.me

Ghi lại địa chỉ IPv4. Ở bài này, mình giả định IP là 203.0.113.10 và tên miền bạn muốn dùng cho rDNS là mail.example.com. Lưu ý: tên miền này phải có bản ghi A trỏ về chính IP đó, nếu không nhiều máy chủ thư sẽ vẫn coi là không khớp.

Tạo bản ghi A cho hostname bạn chọn nếu chưa có, trong DNS của tên miền trên trang quản lý của nhà đăng ký hoặc DNS hosting:

mail.example.com.  A  203.0.113.10

Sở dĩ phải làm bước này trước vì PTR record trỏ ngược từ IP về tên miền, và tên miền đó phải "tồn tại" và trỏ về đúng IP thì bước xác minh ngược hai chiều mới hoàn tất. Đây gọi là Forward Confirmed reverse DNS (FCrDNS).

Bước 2 - Cấu hình rDNS trên hệ thống của nhà cung cấp VPS

Điều quan trọng cần hiểu: bạn không thể tự đặt PTR record trên VPS của mình. Bản ghi PTR được quản lý ở phía nhà cung cấp hạ tầng, bởi vì họ sở hữu dải IP mà bạn đang thuê. Bạn phải truy cập vào trang quản lý của nhà cung cấp VPS, hoặc gửi ticket yêu cầu họ đặt giúp.

Tùy vào nhà cung cấp, đường dẫn sẽ khác nhau. Với hầu hết các control panel như SolusVM, Virtualizor, bạn vào phần IP Management hoặc Reverse DNS của từng VPS. Ví dụ trên SolusVM:

1. Đăng nhập vào client area của nhà cung cấp
2. Chọn VPS cần cấu hình
3. Tìm mục "Reverse DNS" hoặc "PTR"
4. Nhập tên miền: mail.example.com
5. Lưu lại và chờ tối đa vài giờ để DNS phát tán

Với VPS của thueVPS (BizMaC), bạn có thể tự đặt rDNS qua trang quản lý Virtualizor hoặc gửi yêu cầu lên ticket hỗ trợ, thường được xử lý trong vài giờ làm việc. Mỗi địa chỉ IPv4 chỉ nhận đúng một PTR record, nên nếu bạn thuê gói VPS nhiều IP, phải đặt rDNS riêng cho từng IP.

Bước 3 - Kiểm tra rDNS đã được cấu hình đúng chưa

Sau khi đặt PTR, bạn cần kiểm tra xem nó đã phát tán chưa và trỏ về đúng tên miền không. Dùng lệnh dig hoặc host:

# Kiểm tra PTR record của IP
dig -x 203.0.113.10

# Kết quả mong đợi:
;; ANSWER SECTION:
10.113.0.203.in-addr.arpa. 3600 IN PTR mail.example.com.

Nếu chưa có gì trả về, có thể DNS chưa kịp phát tán. Chờ thêm vài giờ rồi chạy lại. Bạn cũng nên kiểm tra chiều ngược lại, xem tên miền có trỏ về đúng IP không:

dig +short mail.example.com A
# Kết quả mong đợi: 203.0.113.10

Bước kiểm tra ngược hai chiều này gọi là FCrDNS, nhiều hệ thống chống spam dùng nó làm tiêu chí lọc. Nếu một chiều bị lệch, hãy sửa ngay trước khi gửi mail.

Bước 4 - Cấu hình hostname và Postfix để khớp với rDNS

rDNS đã đúng, giờ đến lượt VPS phải "khai tên" trùng khớp. Nếu Postfix gửi mail với hostname khác tên trong rDNS, bạn vẫn bị đánh dấu spam. Đặt hostname của VPS:

hostnamectl set-hostname mail.example.com
# Kiểm tra lại
hostname -f

Sau đó, cấu hình Postfix dùng đúng hostname này. Mở file cấu hình chính:

nano /etc/postfix/main.cf

Tìm dòng myhostname và sửa cho khớp:

myhostname = mail.example.com

Lưu lại rồi khởi động lại Postfix:

systemctl restart postfix
# Kiểm tra service chạy bình thường
systemctl status postfix

Output phải hiển thị active (running). Nếu gặp lỗi cú pháp trong file main.cf, bạn có thể kiểm tra bằng lệnh postfix check.

Kiểm tra nhanh hostname mà server khai báo khi kết nối SMTP:

# Chạy từ một máy khác
openssl s_client -connect 203.0.113.10:25 -starttls smtp 2>/dev/null | grep -i "220"

Output mong đợi sẽ là 220 mail.example.com ESMTP Postfix. Nếu thấy tên khác, quay lại kiểm tra myhostname/etc/hosts.

Bước 5 - Kết hợp rDNS với SPF, DKIM, DMARC

rDNS chỉ là một phần của bức tranh tổng thể. Để email đạt tỷ lệ vào inbox cao, bạn cần đầy đủ các bản ghi xác thực khác. SPF (Sender Policy Framework) khai báo IP nào được phép gửi mail cho tên miền của bạn:

# Trong DNS, thêm TXT record:
example.com.  TXT  "v=spf1 a mx ip4:203.0.113.10 ~all"

DKIM (DomainKeys Identified Mail) ký số cho email, chứng minh thư không bị giả mạo. Bạn sinh key và khai báo public key trên DNS. DMARC (Domain-based Message Authentication Reporting and Conformance) là lớp cuối, yêu cầu máy chủ nhận kiểm tra SPF và DKIM, và quy định cách xử lý nếu cả hai đều fail:

# Bản ghi DMARC mẫu:
_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

Nếu bạn chưa quen với các bản ghi này, bài viết về cấu hình DNS record A, CNAME, MX, TXT cho tên miền trên blog này có giải thích khá kỹ. Điểm mấu chốt: rDNS + SPF + DKIM + DMARC phải đi cùng nhau, thiếu một thứ thì hai thứ còn lại cũng vô dụng.

Xử lý lỗi thường gặp

Lỗi 1: Kiểm tra bằng dig -x không thấy PTR record.
Nguyên nhân thường là DNS chưa phát tán hoặc nhà cung cấp chưa xử lý xong. Kiểm tra ở nhiều DNS server khác nhau:

dig -x 203.0.113.10 @8.8.8.8
dig -x 203.0.113.10 @1.1.1.1

Nếu cả hai đều không trả về, hãy gửi ticket lại cho nhà cung cấp, đính kèm ảnh chụp yêu cầu cấu hình để đối chiếu.

Lỗi 2: rDNS trỏ đúng nhưng hostname của server không khớp.
Bạn đã cấu hình rDNS là mail.example.com, nhưng khi kết nối SMTP, server vẫn khai mail.hosting-provider.com. Lỗi này do myhostname trong Postfix chưa được sửa, hoặc file /etc/hosts có dòng khai báo hostname cũ. Kiểm tra cả hai file và sửa lại như Bước 4.

Lỗi 3: VPS dùng nhiều IP, mỗi IP cần một rDNS riêng.
Mỗi địa chỉ IPv4 phải có PTR record riêng, và hostname của Postfix chỉ có một. Giải pháp là dùng Postfix smtp_bind_address để gán từng IP cho từng domain, hoặc cấu hình sender_dependent_default_transport_mai phức tạp hơn. Với hầu hết trường hợp gửi mail từ một IP, bạn không cần quan tâm vấn đề này.

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

rDNS có thể tự cấu hình trên VPS bằng lệnh không?

Không. PTR record được quản lý bởi tổ chức sở hữu dải IP, tức nhà cung cấp VPS của bạn. Bạn phải yêu cầu họ đặt hoặc thao tác qua control panel. Trên VPS chỉ có thể cấu hình hostname sao cho khớp với rDNS đã được đặt ở phía nhà cung cấp.

Cấu hình rDNS mất bao lâu để có hiệu lực?

Thông thường từ vài phút đến vài giờ, tùy thuộc vào thời gian DNS phát tán và tốc độ xử lý của nhà cung cấp. Một số nhà cung cấp xử lý thủ công qua ticket có thể mất tới 24 giờ làm việc.

VPS dùng để gửi mail thì nên đặt rDNS là gì?

Nên đặt là một hostname có bản ghi A trỏ về chính IP đó, ví dụ mail.example.com hoặc smtp.example.com. Không nên dùng tên miền chính example.com vì máy chủ nhận thư có thể nhầm lẫn khi kiểm tra định danh người gửi.

rDNS ảnh hưởng tới tỷ lệ vào inbox như thế nào?

Thiếu rDNS hoặc rDNS sai là một trong những dấu hiệu điển hình của máy chủ gửi thư rác. Gmail, Outlook thường từ chối hoặc đưa thư vào spam ngay khi phát hiện thiếu rDNS, bất kể bạn có cấu hình SPF/DKIM hay không.

Mua VPS gửi email có cần lưu ý gì về rDNS không?

Bạn nên chọn nhà cung cấp cho phép tự đặt rDNS qua control panel hoặc hỗ trợ nhanh qua ticket. Một số nhà cung cấp hạn chế việc này, khiến việc gửi mail gặp khó khăn. Nếu bạn cần một hạ tầng có VPS IP sạch để gửi mail marketing, hãy hỏi rõ chính sách rDNS trước khi mua.

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.