CGNAT: mở port rồi vẫn không vào được NAS từ xa

CGNAT: mở port rồi vẫn không vào được NAS từ xa

CGNAT (Carrier-Grade NAT) là cách nhà mạng cho nhiều thuê bao dùng chung một IP public. Modem nhà bạn không giữ IP public thật mà chỉ nhận một IP "nội bộ" của nhà mạng. Cứ hình dung cả tòa chung cư dù

Xem video tóm tắt: CGNAT: mở port rồi vẫn không vào được NAS từ xa

CGNAT là gì: khi IP "của bạn" thật ra là IP dùng chung

CGNAT (Carrier-Grade NAT) là cách nhà mạng cho nhiều thuê bao dùng chung một IP public. Modem nhà bạn không giữ IP public thật mà chỉ nhận một IP "nội bộ" của nhà mạng. Cứ hình dung cả tòa chung cư dùng chung một địa chỉ: shipper tới được cổng nhưng không biết giao lên phòng nào, đành đứng dưới gọi mãi mà không ai nghe.

Hậu quả rất cụ thể. Bạn mở port trên modem, cấu hình đúng hết, nhưng kết nối từ ngoài vào bị chặn ở thiết bị NAT của nhà mạng và không bao giờ tới được modem nhà bạn. DDNS trong DSM vẫn báo Normal, vì nó cập nhật đúng cái IP mà Internet nhìn thấy. Chỉ có điều IP đó dùng chung, không phải của riêng bạn.

Biết sớm mình có dính CGNAT hay không thì:

  • Đỡ mất cả buổi mở port đi mở port lại, sửa DSM tới sửa DSM lui, trong khi lỗi chẳng nằm ở NAS.
  • Phân biệt được lỗi tự sửa tại nhà (double NAT) với lỗi phải nhờ nhà mạng hoặc đi đường vòng (CGNAT).
  • Chọn đúng đường thoát theo nhu cầu: chỉ mình bạn truy cập, cần gửi link cho người khác, hay cần tốc độ cao.
  • Không tốn tiền oan. Thuê bao gia đình thường chỉ cần IP public động cộng DDNS. IP tĩnh đắt, và gần như chỉ bán kèm gói doanh nghiệp.

Ba tình huống hay gặp nhất:

  • Nhà dùng modem nhà mạng, phía sau gắn thêm bộ mesh hoặc router TP-Link riêng, và mới mở port trên router riêng. Đây chưa phải CGNAT mà là double NAT. Chuyển router sang AP hoặc đặt DMZ là xong, khỏi gọi ai.
  • Thuê bao FPT hay Viettel vào modem thấy IP WAN dạng 100.7x.x.x, còn whatismyip báo một IP khác hẳn. CGNAT chính hiệu. Mở port kiểu gì cũng không ăn thua.
  • Người ở trọ hoặc chung cư dùng mạng tòa nhà kéo: không có mật khẩu modem, gọi tổng đài thì không đứng tên hợp đồng. Đừng đi xin xỏ nữa. Đi đường vòng bằng Tailscale hoặc QuickConnect cho nhẹ đầu.

Bài CGNAT tiếng Anh thường dừng ở câu "hỏi ISP xin IP public". Bài này đi tiếp: tổng đài Viettel, FPT, VNPT số nào, nói câu gì, và lúc nào nên thôi chờ để cài Tailscale cho xong chuyện.

Sơ đồ CGNAT: nhiều thuê bao dùng chung một IP public, kết nối từ 4G bị chặn ở thiết bị NAT của nhà mạng nên không tới được modem và NAS

Triệu chứng: ở nhà vào ngon, ra 4G là chịu

Kịch bản quen thuộc: DDNS trong DSM báo Normal, port 5001 đã mở, ở nhà gõ tên miền synology.me vào vèo vèo. Ra quán cà phê hoặc bật 4G thì trình duyệt quay mòng mòng rồi báo timeout.

Muốn biết người ngoài có vào được không, tắt Wi-Fi trên điện thoại và dùng 4G. Test từ trong mạng nhà sẽ dính NAT loopback: router tự đưa kết nối đi vòng bên trong, lúc được lúc không, và chẳng nói lên điều gì về truy cập từ xa.

Kiểm tra CGNAT trong 1 phút

Chỉ cần trình duyệt, không phải cài gì lên NAS.

Bước 1: Xem IP WAN trên modem nhà mạng

Trang quản trị modem thường ở 192.168.1.1, tài khoản đăng nhập in trên tem dưới đáy modem. Vào mục WAN hoặc trang trạng thái kết nối, tìm đúng kết nối INTERNET hoặc PPPoE và ghi lại IP của nó.

Phải xem trên modem nhà mạng, không phải router TP-Link hay bộ mesh bạn mua thêm. Router riêng chỉ cho thấy IP mà modem cấp cho nó, không nói gì về phía nhà mạng.

Bước 2: So với whatismyip

Mở whatismyip.com để xem IP public mà Internet thực sự thấy, hoặc chạy curl -4 ifconfig.me nếu máy có terminal. Đặt hai số cạnh nhau rồi đối chiếu:

Bạn thấyKết luậnLàm gì tiếp
IP modem trùng whatismyipCó IP publicSoát port, tường lửa
IP modem 100.64–100.127CGNATGọi tổng đài / đi vòng
IP modem 10.x, 172.16–31.xNAT phía nhà mạngNhư CGNAT
IP modem khác whatismyipCGNATNhư CGNAT
Router riêng 192.168.x.xDouble NATTự sửa tại nhà

Dải CGNAT theo RFC 6598 là 100.64.0.0/10, tức từ 100.64.0.0 đến 100.127.255.255. Nếu IP WAN của modem rơi vào dải riêng RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) thì phía nhà mạng vẫn còn một tầng NAT nữa. Bệnh khác tên, thuốc giống CGNAT.

Hai IP trùng nhau thì CGNAT không liên quan: bạn có IP public, lỗi nằm ở port forwarding, tường lửa hoặc cấu hình DSM. Soát lại theo bài truy cập NAS từ xa , trong đó có đủ DDNS, VPN và Tailscale.

Bước 3: Chạy tracert cho chắc

Trên Windows, mở Command Prompt và gõ:

tracert -d <IP-public-vừa-xem>

Trên macOS, mở Terminal:

traceroute -n <IP-public-vừa-xem>

Đọc kết quả thế này:

  • Dòng đầu là 192.168.x.x thì bỏ qua, đó là router nhà bạn.
  • Tới đích ngay ở bước kế tiếp: IP public nằm trên modem của bạn.
  • Phải đi qua nhiều bước, nhất là có bước nằm trong dải 100.64–100.127 hoặc 10.x, hoặc time out tới cuối: có NAT ở phía nhà mạng.

tracert chỉ là bằng chứng phụ. Có nhà mạng chặn ICMP, nên time out chưa chắc đã là CGNAT. Phép so IP ở bước 2 mới là phép kiểm chính; tracert chủ yếu để bạn có thêm dữ kiện khi nói chuyện với tổng đài.

home wi-fi wireless network (no wires !)
Ảnh: osde8info (flickr) CC BY-SA

Những kiểu đọc nhầm khiến bạn kết luận sai

Đây là chỗ nhiều người tự chẩn đoán ra bệnh nặng hơn thực tế, rồi gọi tổng đài cãi tay đôi về một lỗi nằm ngay trong phòng khách nhà mình.

  • Nhìn IP WAN của router riêng. Thấy 192.168.x.x là phán ngay CGNAT. Thực ra đó là double NAT. Phải xem trên modem nhà mạng.
  • Đọc nhầm kết nối WAN quản lý. Modem quang thường có nhiều kết nối WAN: TR-069 (nhà mạng dùng để quản lý thiết bị từ xa), IPTV, VoIP. Mấy kết nối này hay mang IP 10.x. Chỉ đọc dòng INTERNET hoặc PPPoE.
  • Cứ thấy số 100 đầu là kết luận CGNAT. Chỉ 100.64 đến 100.127 mới là CGNAT. Dải 100.0–100.63 và từ 100.128 trở lên là IP public bình thường.
  • Nhầm IP Tailscale. NAS đã cài Tailscale sẽ có thêm một IP 100.x trong Control Panel > Network, vì Tailscale cũng dùng dải 100.64/10. IP đó thuộc mạng riêng của Tailscale, chẳng dính dáng gì tới modem.
  • Tin trang check port online. Trang này báo "đóng" cả khi dịch vụ trên NAS không chạy hoặc tường lửa DSM đang chặn. Thấy "đóng" chưa có nghĩa là dính CGNAT.
  • Test từ trong mạng nhà. Nhắc lại vì sai kiểu này nhiều nhất: dùng 4G, tắt Wi-Fi.

Double NAT: tự sửa được, khỏi gọi ai

Double NAT là hai tầng NAT nằm ngay trong nhà bạn: modem nhà mạng NAT một lần, router riêng NAT thêm lần nữa. Mở port ở tầng nào thì kết nối kẹt lại ở tầng kia. Có ba cách xử lý, xếp từ dễ đến khó:

  1. Chuyển router riêng sang chế độ Access Point (AP). Router chỉ còn phát Wi-Fi, mọi thiết bị kể cả NAS nhận IP từ modem. Nhà còn đúng một tầng NAT, mở port trên modem là xong. Chuyển xong thì IP của NAS đổi sang dải của modem, nhớ sửa đích port forwarding cho khớp.
  2. Đặt DMZ trên modem trỏ tới router riêng. Gán IP WAN cố định cho router riêng, khai IP đó làm DMZ trên modem, rồi mở port trên router riêng như bình thường. Modem sẽ đẩy mọi kết nối từ ngoài vào cho router.
  3. Bridge mode. Modem chỉ còn chuyển tín hiệu quang, router riêng tự quay PPPoE và giữ IP public. Gọn nhất, nhưng cần tài khoản và mật khẩu PPPoE, và thường phải gọi tổng đài.

Về bridge mode, mấy thông tin dưới đây lấy từ kinh nghiệm cộng đồng, chưa có xác nhận chính thức:

  • Viettel thường phải gọi tổng đài để chuyển bridge từ phía hệ thống. Có người kể mất khoảng 24 giờ.
  • VNPT: gọi 1800 1166 xin bridge cổng LAN, chuẩn bị sẵn mã hợp đồng.
  • FPT: có trường hợp phải đăng ký địa chỉ MAC của router.

Bridge có thể làm hỏng IPTV hoặc điện thoại cố định (VoIP) đi kèm gói cước. Nhà còn xem truyền hình qua đầu thu của nhà mạng thì thử AP hoặc DMZ trước. Đỡ bị cả nhà hỏi tội đúng 8 giờ tối.

CGNAT: chọn đường thoát theo nhu cầu

Thứ tự nên làm: gọi tổng đài trước, vì đó là chữa tận gốc. Trong lúc chờ, hoặc nếu bị từ chối, cài Tailscale. QuickConnect có sẵn trong DSM, cứ để đó làm phương án dự phòng. IPv6 và Cloudflare Tunnel phụ thuộc vào modem, mạng phía máy khách, tên miền riêng và Container Manager, nên mình để ở mục nâng cao.

Đường dẫn menu trong bài theo DSM 7.2/7.3. Trên DSM 7.4.1, bản mới nhất hiện tại, vài mục có thể xê dịch đôi chút.

Cách 1: Gọi tổng đài xin IP public động

Được cấp IP public thì DDNS, port forwarding và VPN tự host đang có sẽ chạy lại ngay, không phải đụng gì trên NAS.

Các số trên lấy từ trang tổng hợp, nên đối chiếu lại với số in trên hóa đơn hoặc trong app của nhà mạng.

Khi gọi, nói thẳng nhu cầu: "Nhà em cần xem camera/NAS từ xa, nhờ anh chị cấp IP WAN public cho đường truyền, IP động là được." Chữ "động" rất quan trọng. Lỡ miệng nói "IP tĩnh" là được mời lên gói doanh nghiệp liền. Hỏi thêm ba câu:

  • Gói gia đình có được cấp IP public động miễn phí không?
  • Xử lý mất bao lâu?
  • Có phải đổi gói hoặc mua IP tĩnh không?

Hiện chưa có văn bản công khai nào của ba nhà mạng về việc cấp IP public cho thuê bao gia đình, chỉ có kinh nghiệm chia sẻ trên diễn đàn. Chính sách mỗi khu vực một khác, nhiều khi phải gọi vài lần. Mỗi lần gọi, ghi lại ngày và mã yêu cầu để lần sau khỏi kể lại từ đầu.

Nếu bị mời mua IP tĩnh, đây là giá tham khảo từ trang đại lý (tổng hợp đến tháng 10/2026), tất cả đều thuộc gói doanh nghiệp:

  • Viettel: gói VIP200, 800.000đ/tháng, kèm 1 IP tĩnh.
  • FPT: 600.000đ/tháng, chỉ thêm được từ gói SUPER 300Biz trở lên. Các gói GIGA, SKY, META không thêm được.
  • VNPT: khoảng 220.000đ/tháng cho 1 IP, chưa VAT. Cần giấy phép kinh doanh và con dấu, cấu hình mất 24–48 giờ.

Với NAS gia đình, IP động cộng DDNS là đủ. IP đổi thì DDNS tự cập nhật, bạn chẳng cần để ý.

Cách 2: Tailscale từ Package Center

Tailscale dựng một mạng riêng giữa các thiết bị của bạn. NAS và điện thoại đều chủ động gọi ra ngoài để tìm nhau, nên CGNAT chặn chiều vào cũng chẳng sao. Không phải mở port nào.

Gói có tên "Tailscale" trong Package Center, cài bằng một cú bấm, không cần Docker hay SSH. Sau đó đăng nhập tài khoản Tailscale trên NAS, cài app trên điện thoại hoặc laptop với cùng tài khoản, rồi vào DSM qua IP 100.x của NAS. Hướng dẫn từng bước có trong bài truy cập NAS từ xa đã dẫn ở trên.

Cạm bẫy hay gặp nhất: đã bật tường lửa DSM (Control Panel > Security > Firewall) nhưng quên thêm rule cho Tailscale. Kết quả là điện thoại vào được tailnet mà không mở được DSM. Cách sửa: thêm rule Allow cho nguồn là subnet 100.64.0.0, mask 255.192.0.0, và đặt rule này phía trên rule chặn.

Ưu điểm: Tailscale thường kết nối thẳng giữa hai thiết bị nên nhanh, và mở rộng được ra cả mạng LAN. Gói Personal miễn phí cho tối đa 6 người dùng, không giới hạn số thiết bị, chỉ dùng phi thương mại.

Nhược điểm: thiết bị nào cũng phải cài app, khó chia sẻ cho người ngoài. Nếu cả hai đầu cùng nằm sau CGNAT, kết nối có thể phải đi qua relay DERP và chậm hơn. Bản Tailscale trong Package Center cũng thường đi sau bản mới nhất (1.104.2, ra ngày 21/10/2026), vì kho này chỉ cập nhật khoảng mỗi quý một lần.

Cách 3: QuickConnect làm phương án dự phòng

Vào Control Panel > External Access > QuickConnect, bật lên rồi đặt QuickConnect ID. Dính CGNAT thì QuickConnect phải đi qua relay của Synology, nên kiểm tra mục Advanced > Advanced Settings > "Enable QuickConnect relay service" đã bật chưa.

QuickConnect không cần cấu hình gì thêm, nhưng đi relay thì chậm. Chính Synology cũng ghi rằng relay có thể không hoạt động ở một số khu vực do hạn chế của nhà mạng. Nó cũng không hỗ trợ app bên thứ ba và container Docker. Cách bật và dùng chi tiết xem ở bài QuickConnect Synology .

Nếu chỉ cần map NAS thành ổ đĩa trên máy tính: RocketZero

RocketZero là sản phẩm của nashub. Nó map NAS thành ổ đĩa trên Windows hoặc macOS từ xa, không cần mở cổng router nên CGNAT không cản được. Kết nối mã hóa, chạy được trên cả Synology chính hãng lẫn XPEnology.

Mỗi NAS có một RocketZero ID, và ID đó cũng chính là địa chỉ truy cập: đặt ID "gia-dinh-an" thì địa chỉ là https://gia-dinh-an.roze.to, có sẵn HTTPS. Đây là tên miền riêng của bạn, khác dạng quickconnect.to/<id>, và khỏi phải tự dựng DDNS, thứ vốn vô dụng khi đang dính CGNAT.

Giới hạn: phải cài client trên từng máy tính. RocketZero tập trung vào map ổ đĩa, không thay được VPN nếu bạn cần vào cả mạng LAN. Bạn cũng phụ thuộc vào hạ tầng của nhà cung cấp, giống như với QuickConnect hay Tailscale. Xem thêm tại roze.to .

Tiêu chíXin IP publicTailscaleQuickConnect
Phải gọi nhà mạng✓✗✗
Phải mở port✓✗✗
Gửi link cho người khác✓✗✓
Cài app trên máy truy cập✗✓✗
Tốc độTối đa đường truyềnCaoChậm khi qua relay
Dùng được choMọi dịch vụMọi dịch vụDịch vụ Synology
AMIGOS weather station
Ảnh: NSIDC (flickr) CC BY

Được cấp IP public rồi: kiểm tra lại đã

  1. Khởi động lại modem để nhận IP mới.
  2. Làm lại phép so ở bước 2. IP WAN trên modem giờ phải trùng với whatismyip.
  3. Bật DDNS ở Control Panel > External Access > DDNS: bấm Add, chọn nhà cung cấp Synology, đặt tên dạng tenban.synology.me. IP vẫn là IP động, đổi lúc nào không báo trước, DDNS lo phần cập nhật.
  4. Tắt Wi-Fi, vào thử bằng 4G.

Tùy chọn nâng cao (không bắt buộc)

Phần này dành cho người đã quen làm việc với mạng. Vào được NAS bằng các cách ở trên rồi thì cứ bỏ qua.

IPv6 + DDNS synology.me

CGNAT chỉ áp dụng cho IPv4. Nếu nhà mạng cấp IPv6, NAS có thể có địa chỉ IPv6 public riêng: kết nối đi thẳng, không qua relay, không tốn tiền. Theo VNNIC (12/2025), tỷ lệ sử dụng IPv6 của FPT khoảng 68,6%, Viettel khoảng 66,0%, VNPT khoảng 52,5%; mục tiêu quốc gia năm 2026 là 72%. Đó là tỷ lệ sử dụng, không có nghĩa modem nhà bạn đã bật IPv6 sẵn.

  1. Bật tường lửa DSM trước. Có IPv6 là NAS có một địa chỉ mà ai trên Internet cũng gọi tới được. Cho phép subnet LAN và đúng những cổng cần dùng, chặn phần còn lại.
  2. Vào Control Panel > Network > Network Interface > LAN > Edit > IPv6 và bật lên.
  3. DDNS synology.me sẽ cập nhật bản ghi AAAA. Kiểm tra máy khách có IPv6 không ở test-ipv6.com, rồi thử truy cập từ ngoài qua IPv6.

Lỗi hay gặp với IPv6:

  • Modem có IPv6 nhưng tường lửa IPv6 của modem chặn kết nối từ ngoài vào.
  • Máy khách không có IPv6. Wi-Fi công ty hay quán cà phê thường rơi vào trường hợp này.
  • NAS chỉ có địa chỉ fe80::. Đây là địa chỉ link-local, ra khỏi mạng nhà là vô dụng.
  • Bản ghi AAAA cũ làm Let's Encrypt lỗi khi cấp chứng chỉ. Gỡ bản ghi AAAA, hoặc sửa cho IPv6 chạy hẳn.

Cloudflare Tunnel qua Container Manager

Cần có tên miền quản lý trên Cloudflare. Tạo tunnel trong Zero Trust dashboard và lấy token. Sau đó vào Container Manager > Project > Create, chọn thư mục (ví dụ /volume1/docker/cloudflared), chọn tạo docker-compose.yml rồi dán:

services:
  cloudflared:
    image: cloudflare/cloudflared:2026.10.3
    command: tunnel --no-autoupdate run
    environment:
      - TUNNEL_TOKEN=<token lấy từ Zero Trust dashboard>
    network_mode: host
    restart: unless-stopped

Trong dashboard, trỏ Public hostname tới https://localhost:5001 và bật "No TLS Verify", hoặc trỏ tới http://localhost:5000. NAS phải được phép kết nối ra ngoài qua cổng 7844 TCP/UDP.

Giới hạn của Cloudflare Tunnel:

  • Chỉ hợp với ứng dụng web.
  • Gói Free báo lỗi 413 khi upload file trên 100 MB, nên kéo file lớn vào File Station sẽ thất bại.
  • Điều khoản của Cloudflare cấm dùng tunnel làm đường stream video.
  • Bắt buộc đặt Cloudflare Access phía trước. Không có Access thì trang đăng nhập DSM lộ thẳng ra Internet công khai.

Tailscale: configure-host và tự cập nhật

Mặc định, ứng dụng trên NAS không chủ động gọi được sang thiết bị khác trong tailnet. Ví dụ Hyper Backup không đẩy được dữ liệu sang NAS thứ hai qua Tailscale. Cách sửa: vào Control Panel > Task Scheduler > Create > Triggered Task > User-defined script, chọn user root và sự kiện Boot-up, rồi dán:

/var/packages/Tailscale/target/bin/tailscale configure-host; synosystemctl restart pkgctl-Tailscale.service

Muốn dùng bản mới hơn bản trong Package Center, tạo thêm một Scheduled Task chạy hằng ngày bằng root:

tailscale update --yes

Còn một cách nữa cho người thích tự vận hành: thuê VPS có IP public làm cửa ngõ cho NAS. Mình chỉ nhắc cho đủ; bảo mật cả hai đầu bạn tự lo.

Bảo mật: có IP public rồi cũng đừng mở toang cửa

  • Không mở 5000/5001 thẳng ra Internet. Ưu tiên Tailscale hoặc VPN. Buộc phải mở thì chỉ mở HTTPS 5001, bật 2FA, tắt tài khoản admin mặc định, bật Auto Block và tường lửa.
  • QuickConnect: ID rất dễ bị dò. Bật 2FA, và trong Advanced chỉ cho phép những dịch vụ thật sự cần.
  • Cloudflare Tunnel: giữ token như giữ mật khẩu. Không đưa SMB hay SSH qua tunnel công khai.
  • IPv6: bật tường lửa trước, bật IPv6 sau, không đảo thứ tự.
  • Chụp màn hình lên group hỏi: làm mờ IP public, mã hợp đồng, tài khoản PPPoE và QuickConnect ID.
  • Chính sách và giá của nhà mạng thay đổi theo thời gian và khu vực. Thông tin trong bài tổng hợp đến tháng 10/2026; gọi tổng đài xác nhận trước khi quyết định.

CGNAT không phải lỗi của bạn, cũng chẳng phải lỗi của NAS. Nhưng mất trọn một buổi tối mở port cho một cánh cửa vốn không tồn tại thì đúng là lỗi của việc bỏ qua phép kiểm tra 1 phút ở trên.

No comments yet