CGNAT là gì? Vì sao không mở port được và lối thoát

Chia sẻ bài viết

Mục lục
CGNAT là gì? Vì sao không mở port được và lối thoát

Trả lời nhanh: CGNAT (Carrier-Grade NAT) là việc nhà mạng cho nhiều thuê bao dùng chung một IP công cộng vì IPv4 đã cạn. Hệ quả: bạn không thể mở port, DDNS vô dụng, không truy cập được camera, NAS, máy tính ở nhà từ xa. Kiểm tra bằng cách so IP WAN trên router với IP trang whatismyip hiển thị, lệch nhau là bạn đang sau CGNAT. Lối thoát: thuê IP tĩnh, hoặc dùng Tailscale/tunnel, không cần đụng nhà mạng.

Bạn mở port đúng hướng dẫn, DDNS trỏ chuẩn, mà từ 4G vẫn không vào được camera hay NAS ở nhà? Thủ phạm thường không phải bạn cấu hình sai, mà là CGNAT của nhà mạng. Lượng tìm kiếm cgnat ở Việt Nam tăng hơn 4 lần trong 4 năm khi ngày càng nhiều người self-host va phải bức tường này. Bài này giải thích nó là gì, cách tự kiểm tra trong 1 phút, và so sánh sòng phẳng 4 lối thoát.

Tóm tắt nhanh
  • CGNAT = nhiều nhà chung một IP công cộng; port bạn mở trên router không ai từ ngoài chạm tới được
  • Kiểm tra 1 phút: IP WAN trên router thuộc dải 100.64-100.127 hoặc lệch với IP công cộng → bạn sau CGNAT
  • DDNS không cứu được, nó chỉ trỏ tên miền vào một IP mà nhiều nhà đang dùng chung
  • 4 lối thoát: thuê IP tĩnh nhà mạng · Tailscale (miễn phí, nhanh nhất) · Cloudflare Tunnel · VPS làm điểm công khai
  • Nhu cầu công khai dịch vụ cho người lạ truy cập thì vẫn cần một điểm có IP công cộng, vai của VPS

CGNAT là gì và vì sao nhà mạng phải dùng

IPv4 chỉ có khoảng 4,3 tỷ địa chỉ, cạn từ lâu. Giải pháp của các nhà mạng: thay vì phát mỗi thuê bao một IP công cộng thật, họ đặt thêm một tầng NAT ở phía tổng đài, gom hàng trăm thuê bao ra chung một IP. Tầng NAT cấp nhà mạng đó gọi là Carrier-Grade NAT. Router nhà bạn khi ấy nhận một IP thuộc dải dành riêng 100.64.0.0/10 (100.64.x.x đến 100.127.x.x), trông như IP thật nhưng không định tuyến được từ internet.

Với người chỉ lướt web, CGNAT vô hình. Nó chỉ hiện nguyên hình khi bạn muốn chiều ngược lại: cho một kết nối từ internet đi vào nhà mình.

Kiểm tra bạn có sau CGNAT không: 1 phút

Cách chắc chắn nhất, so hai địa chỉ:

  • Vào trang quản trị router (thường 192.168.1.1), xem mục WAN IP.
  • Mở trang kiểm tra IP bất kỳ (tìm what is my ip), xem IP công cộng.

Đọc kết quả: WAN IP nằm trong dải 100.64.x.x - 100.127.x.x → chắc chắn CGNAT. WAN IP là dải riêng 10.x hay 172.16-31.x → cũng là một tầng NAT nhà mạng. WAN IP khác IP công cộng trang web hiển thị → sau NAT nhà mạng. Hai địa chỉ trùng nhau → chúc mừng, bạn có IP công cộng thật, mở port dùng được.

Vì sao mở port và DDNS đều vô dụng sau CGNAT

Mở port trên router chỉ điều khiển được NAT của bạn. Nhưng gói tin từ internet phải qua NAT của nhà mạng trước, nơi bạn không có quyền gì. Hàng trăm nhà chung một IP, nhà mạng không thể biết kết nối đến port 8096 là dành cho nhà nào, nên đơn giản là bỏ. DDNS càng không cứu được: nó chỉ gắn tên miền vào cái IP dùng chung ấy, tên miền trỏ đúng, nhưng cánh cửa phía sau vẫn đóng. Đó là lý do lượng tìm kiếm port forwarding, ddns vẫn cao (480 và 880 lượt/tháng) mà kết quả làm theo lại không chạy.

4 lối thoát, xếp theo chi phí và độ khó

1. Thuê IP tĩnh từ nhà mạng, giải quyết tận gốc, mở port lại hoạt động; đổi lại tốn phí tháng, tùy gói và khu vực, phải làm việc với tổng đài. Hợp khi bạn cần công khai dịch vụ đúng chuẩn tại nhà.

2. Tailscale, miễn phí, cài 10 phút, xuyên CGNAT bằng NAT traversal: hai đầu cùng chủ động dò đường ra nên gặp được nhau không cần cửa mở sẵn; kẹt lắm mới rơi về relay DERP. Nhược: chỉ thiết bị trong tailnet của bạn truy cập được, người lạ thì không. Cài theo bài hướng dẫn 10 phút.

3. Cloudflare Tunnel, công khai website từ máy sau CGNAT ra internet qua tên miền riêng, miễn phí; hợp cho web/blog. Chi tiết trong bài Cloudflare Tunnel.

4. VPS làm điểm công khai, thuê một VPS có IP công cộng thật, nối về nhà qua Tailscale/WireGuard rồi reverse proxy: dịch vụ ở nhà, cửa ngõ ở VPS. Linh hoạt nhất (mọi giao thức, tên miền riêng, kiểm soát trọn) và kiêm luôn exit node, backup.

Chọn lối nào theo nhu cầu của bạn

Chỉ mình bạn và gia đình cần truy cập NAS/camera/máy tính từ xa → Tailscale, miễn phí, xong trong buổi tối, với camera và NAS có bài thao tác riêng: truy cập NAS từ xa không mở port. Cần người lạ truy cập website → Cloudflare Tunnel hoặc VPS. Cần nhiều giao thức, game server, mail, tên miền riêng, kiểm soát log trọn vẹn → VPS làm cửa ngõ là đường bền nhất; IP tĩnh nhà mạng là phương án khi bạn nhất quyết muốn mọi thứ nằm ở nhà.

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

CGNAT có làm mạng chậm không?

Với lướt web thông thường thì không đáng kể. Nó ảnh hưởng chủ yếu đến kết nối đi vào (hosting tại nhà, P2P) và đôi khi NAT type trong game online, người chơi console hay gặp NAT Strict cũng vì CGNAT.

Gọi nhà mạng yêu cầu bỏ CGNAT được không?

Được ở hình thức thuê IP tĩnh (phí theo tháng, tùy nhà mạng và gói cước) hoặc một số nơi cho đổi sang IP động công cộng. Chính sách mỗi nhà mạng, mỗi khu vực mỗi khác, cứ hỏi thẳng tổng đài, nhưng nên có sẵn phương án Tailscale để không phụ thuộc.

IPv6 có phải lối thoát khỏi CGNAT không?

Về lý thuyết có, IPv6 không cần NAT, mỗi thiết bị một địa chỉ thật. Thực tế triển khai IPv6 của các nhà mạng Việt chưa đồng đều, thiết bị hai đầu đều phải hỗ trợ, và bạn vẫn cần lớp xác thực an toàn. Tailscale chạy tốt trên cả hai nền nên là lựa chọn thực dụng hơn hiện nay.

Tailscale xuyên CGNAT có luôn thành công không?

Đa số trường hợp kết nối trực tiếp P2P thành công nhờ hole-punching. Gặp NAT quá chặt (một số mạng công ty, 4G), kết nối rơi về relay DERP, vẫn thông nhưng chậm hơn. Kiểm tra bằng lệnh tailscale status: dòng kết nối hiện direct hay relay.

Hạ tầng VPS tại Việt Nam của TND
Cloud VPS linh hoạt và VPS NVMe xung cao, IP công cộng riêng, đặt tại Việt Nam
Sau CGNAT, thứ bạn thiếu là một điểm có IP công cộng thật. Cloud VPS TND cho đúng điều đó: IP riêng cố định, đặt tại Việt Nam, bàn giao 5 phút, làm cửa ngõ reverse proxy, exit node hay hub Tailscale cho cả mạng nhà. Cần chạy dịch vụ nặng I/O ngay trên VPS thì có dòng NVMe.
Dựng ngay một Cloud VPS cho mạng TailscaleCần I/O mạnh? Xem VPS NVMe

Bài viết liên quan