Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

Dự án cloudflare-gateway-pihole-scripts (CGPS) của tác giả mrrfv đã được giới thiệu từ trên voz, xưa mình lướt thấy, nhưng không quá ấn tượng, cấu hình quá sức phức tạp cho người sử dụng thông thường (tầm 1-2 năm nay mình biết tới Github, đọc mới hiểu, chứ xưa nhìn vào ngu người luôn), chặn quảng cáo qua DNS không quá triệt để, dùng addon trên trình duyệt vẫn tiện hơn, có điều, nếu nhu cầu tích hợp nó làm DNS mặc định cho 1 số trình duyệt, thiết bị di động như iPhone, iPad … lại rất hợp, vì chặn sẵn 1 số quảng cáo cơ bản, ít tốn pin, lại miễn phí hoàn toàn

Ở thời điểm hiện tại mình rất hài lòng với giải pháp dùng CGPS để tạo bộ lọc để chặn quảng cáo trên Cloudflare Gateway, nó đáp ứng phần lớn các tiêu chí mình đang tìm kiếm

  • Miễn phí, không giới hạn số thiết bị và không giới hạn số lượng truy vấn DNS (nhiều dịch vụ khác như NextDNS thường giới hạn 300.000 request mỗi tháng)
  • Cloudflare Gateway phân giải DNS nhanh, ổn định cao nhờ chạy trên hạ tầng toàn cầu của Cloudflare
  • Cloudflare DNS 1.1.1.1 mặc định không hỗ trợ ECS nhưng Cloudflare Gateway cho phép bật ECS, ở Việt Nam bật ECS có thể giúp một số dịch vụ CDN định tuyến người dùng đến máy chủ tốt hơn
  • Hỗ trợ IPv4, IPv6 DoH và DoT, cấu hình trên nhiều thiết bị khác nhau với cách triển khai đơn giản
  • Hỗ trợ danh sách chặn và danh sách cho phép, giúp quản lý các bộ lọc đơn giản hơn, Cloudflare cho phép chặn miễn phí tới 300.000 domain, đủ cho tuyệt đại đa số nhu cầu
  • Tự động cập nhật bộ lọc theo lịch trình (mặc định là mỗi thứ Hai hàng tuần)
  • Có thể mở khóa 1 số domain thông dụng như medium.com bị các nhà mạng chặn nhầm
  • Vô số các cấu hình bảo mật khác từ Cloudflare Zero Trust

Các bước cấu hình bên dưới, mình viết lại từ bài giới thiệu gốc trên voz, chỉ sửa lại các tên gọi, đường dẫn cho chính xác theo cách gọi ở thời điểm 10/2025, không khác biệt gì so với bài viết gốc, viết ở mức cơ bản nhất, để bất cứ ai đọc bài này, đều có thể tự làm được

Cá nhân chỉ dùng DoH, vì đủ bảo mật, hỗ trợ tốt trên trình duyệt, cấu hình đơn giản, bạn nào lười đọc, chỉ cần DNS chặn quảng cáo, ấn thẳng vào đây là được

Cấu hình

Để việc cài đặt đơn giản, tránh nhầm lẫn, tạo mới tài khoản GithubCloudflare, mọi cấu hình liên quan tới chặn quảng cáo, sẽ thông qua 2 tài khoản này

  • Fork dự án cloudflare-gateway-pihole-scripts

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Repository name đặt tên tùy ý, rồi ấn vào Create fork

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Đặt 1 tên tùy ý cho team, sau đó ấn Next

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Chọn gói miễn phí (Free)

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Chọn Cancel and exit (đỡ công đoạn nhập thẻ xác nhận)
  • Truy cập lại vào Cloudflare Zero Trust

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Lúc này sẽ thấy màn hình Welcome aboard!

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Truy cập nhanh vào URL này hoặc click thủ công, Gateway -> DNS locations -> Add a location

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • DNS location details
    • Location name: đặt 1 tên tùy ý
    • Bật DNS over HTTPS (DoH)
    • Click chọn Enable EDNS client subnet
    • Click chọn Set as Default DNS Location
  • Sau đó Continue

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Ấn tiếp vào Continue

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Ấn tiếp vào Done

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Công đoạn tạo DNS location đã xong, ta đã có cấu hình DNS over HTTPS (DoH), dạng https://xxxxxxxxx.cloudflare-gateway.com/dns-query

Chặn quảng cáo khi dùng qua Gateway DNS location

  • Lấy Cloudflare Account ID

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

Truy cập vào trang chủ hoặc click vào icon Cloudflare ở góc trên bên trái, sẽ thấy 1 dãy số 586a12870xxx573bd1cde52b6278970c, đây là giá trị Account ID của tài khoản

  • Tạo Cloudflare API Token

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Truy cập nhanh vào URL này hoặc click thủ công vào icon góc phải -> Profile -> API Tokens -> Create Token

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Phần Create Custom Token -> click Get started

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Token name: đặt tên tùy ý
  • Permissions
Account -> Zero Trust -> Read
Account -> Zero Trust -> Edit
  • Click Continue to summary

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Click Create Token

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

Giá trị 6xfDjxD81Wb5xxxxxxxxx_4tZEJmGLT6a37API Token vừa được tạo ra, click vào Copy, lưu lại dãy số này, vì khi F5 lại trình duyệt, sẽ không hiện lại nữa

Cấu hình cho dự án trên Github

  • Quay lại dự án cloudflare-gateway-pihole-scripts ở tài khoản Github của bạn

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Từ menu Settings -> Secrets and variables -> Actions -> Variables -> New repository variable

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Name: BLOCKLIST_URLS (tên gọi của danh sách chặn quảng cáo)
  • Value: điền vào các đường dẫn bộ lọc, mỗi bộ lọc phân cách bởi Enter xuống dòng
    • Cơ bản AdGuard DNS filter, AdGuard DNS Popup Hosts filter, VNM: ABPVN List là đủ, cá nhân dùng thêm 1 bộ lọc, khi nào cần chặn domain không có trong danh sách thì tự thêm vào
    • Tạo đơn giản bộ lọc cá nhân bằng cách vào dự án, tạo ra 1 file .txt (cấu trúc mẫu), rồi lấy URL Raw chép vào
https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt
https://adguardteam.github.io/HostlistsRegistry/assets/filter_59.txt
https://adguardteam.github.io/HostlistsRegistry/assets/filter_16.txt
https://raw.githubusercontent.com/bibicadotnet/AdGuard-Home-blocklists/refs/heads/main/byme.txt
  • Click Add variable

Tạo tiếp 1 New repository variable mới

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Name: ALLOWLIST_URLS (tên gọi của danh sách bỏ chặn)
  • Value: điền vào các đường dẫn bộ lọc, mỗi bộ lọc phân cách bởi Enter xuống dòng
    • Bộ lọc này dùng để bỏ ra các domain, nếu nó bị các bộ lọc ở BLOCKLIST_URLS chặn nhầm
    • Tạo đơn giản bộ lọc cá nhân bằng cách vào dự án, tạo ra 1 file .txt (cấu trúc mẫu), rồi lấy URL Raw chép vào
  • Click Add variable

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Sang tab Secrets -> New repository secret

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Phần NameSecret thêm lần lượt 4 repository secret theo bảng bên dưới:
Name
Secret
CLOUDFLARE_API_TOKEN Nhập API Token ở bước trên vào
CLOUDFLARE_ACCOUNT_ID Nhập Account ID ở bước trên vào
CLOUDFLARE_ACCOUNT_EMAIL Email đăng kí Cloudflare
CLOUDFLARE_LIST_ITEM_LIMIT Dùng Free plan thì nhập vào 300000
  • Bật chạy Github Actions

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Từ tab Actions -> click I understand my workflows, go ahead and enable them

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Bên trong Actions, click vào New workflow

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Click tiếp vào set up a workflow yourself

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Copy nội dung phần code tại auto_update_github_action.yml, đưa vào bên trong, sau đó ấn vào Commit changes...
  • Cron mặc định đang chạy vào thứ 2 hàng tuần để tự cập nhập lại các danh sách bộ lọc (có thể đổi nội dung dòng 5, sang  - cron: "0 17 * * *", chạy mỗi ngày vào lúc 0h sáng theo giờ Việt Nam)

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Mặc định, sau khi Commit changes, workflows sẽ tự chạy lần đầu, bạn sẽ thấy có thêm workflows Update Filter Lists

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Ấn vào xem logs, sẽ thấy các thông tin cơ bản về bộ lọc đang chạy, nếu dùng theo cấu hình bên trên của mình, thì chặn khoảng 228.930 domain, vẫn dưới mốc 300.000 mà Cloudflare hỗ trợ miễn phí

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Truy cập lại vào Cloudflare Zero Trust, Gateway -> Firewall policies, sẽ thấy bộ lọc từ Github đã được gửi sang Cloudflare

Cuối cùng 1 số bước râu ria, mở chặn medium.com khi dùng tại nhà mạng Việt Nam

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Gateway->  Firewall policies, ở tab DNS, click vào DNS policies, tạo thêm 1 rule mới

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • STEP 1: Policy name, Description: đặt tên tùy ý
  • STEP 2: Traffic
    • Selector chọn Domain
    • Operator chọn matches regex
    • Value: medium.com
    • Click vào Or để mở thêm tùy chọn mới
    • Selector chọn Domain
    • Operator chọn matches regex
    • Value: www.medium.com
  • STEP 3
    • Action chọn Override
    • Override Hostname: điền 1 domain bất kì đang chạy qua Cloudflare Proxy, ví dụ bibica.net
  • Click Create policy

Tắt Gateway Logging

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

Sau khi cài đặt, chạy thử nghiệm ít ngày, nên tắt

Kiểm tra hiệu năng Cloudflare Gateway – DNS Locations

Kiểm tra lại sơ bộ, xem có lỗi hay gì không 😀

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Trên nhà mạng VNPT, DNS sử dụng Cloudflare tại Kong Kong, không có gì đặc biệt

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Để bạn dễ hình dung, dãy DoH này, nó tương tự với DoH của Cloudflare là https://cloudflare-dns.com/dns-query, nhưng đã được bật EDNS Client Subnet

Theo cách giải thích của Cloudflare, trên 1.1.1.1 tiêu đề EDNS Client Subnet mặc định tắt để tăng 1 chút riêng tư cho người dùng, có điều tắt hay bật cũng không có gì đảm bảo, Google DNS 8.8.8.8 mặc định bật EDNS, bao nhiêu năm qua chúng ta vẫn dùng ầm ầm, có thấy ai thắc mắc, phàn nàn gì, cá nhân chỉ hơi tiếc 1 chút, trên mạng VPNT đang dùng, chỉ định tuyến ra Hà Nội, chứ ra server tại Hồ Chí Minh, chắc ping xuống 4ms-8ms được 😀

  • dnscheck.tools cho ra tốc độ trung bình ~ 72ms, theo mình là không quá ấn tượng

Hiệu năng phân giải DNS thực tế, khá tương tự 1.1.1.1, tức là nếu có người vào 1 domain trước, cache được lưu lại, người truy cập tiếp theo sẽ nhanh, vì không phải check lại, mà thử sơ sơ thấy Cloudflare clear cache khá nhanh, ~ 300s, nên nếu dãy DNS ít người dùng, hiệu năng sẽ không tối ưu

Còn chuyện khi dùng Cloudflare EDNS, truy cập vào trang sử dụng nhiều dịch vụ của Cloudflare như thèng bibica.net, thì chuyện nhanh là …. hiển nhiên, không có gì tranh luận ở đây hé 😅

Tác giả mrrfv viết lại các rule khi thêm, xóa nhiều bộ lọc, domain trùng sẽ bị bỏ ra, nên danh sách lọc rất tối ưu, mỗi cái chưa rõ lắm vì sao, khi dùng rule ||coccoc.com^, là chặn mọi domain liên quan tới coccoc.comaccounts.coccoc.com chặn tốt, nhưng www.coccoc.com lại không thấy bị chặn??? không quan trọng lắm, thấy cái gì chặn sót thì thêm vào danh sách là được, tổng thể không có gì phàn nàn, vì sửa lại xíu là được

Về mặt lý thuyết, Adguard Home với VPS tại Singapore hoặc Việt Nam hiệu năng sẽ tốt hơn 1 chút, có điều chi phí đầu tư cho VPS, thời gian cài đặt, bảo trì, bảo dưỡng, nó không đáng, nhất là vấn đề ổn định,

Cấu hình DNS-over-HTTPS cho các trình duyệt

Cấu hình DoH Cloudflare Gateway trong bài này chủ yếu áp dụng cho các trình duyệt di động ChromiumCốc CốcEdge dùng cá nhân … chạy file .reg đi kèm là được

  • Trong trường hợp bạn muốn dùng DoH Cloudflare Gateway chặn sẵn 1 số quảng cáo cơ bản

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Settings → Privacy and security → Security
  • Scroll xuống phần “Advanced”
  • Tìm “Use secure DNS” → Enable
  • Chọn “With Custom”
  • Nhập: https://iabucttpma.cloudflare-gateway.com/dns-query

Có thể lấy thêm rất nhiều endpoint DoH miễn phí khác tại đây

Cấu hình DNS-over-HTTPS cho iOS, iPadOS

Trên iOS, iPadOS download profile làm sẵn, ấn cài đặt tương tự như NextDNS

Thử nghiệm sơ bộ trên iOS, iPadOS hoạt động hiệu quả, tương tự NextDNS mình dùng đó giờ, mà có thể tủy chỉnh thêm bớt các domain cần chặn, cực hợp trên iOS, iPadOS, vì chặn quảng cáo trên iPhone, iPad phiền hơn trên Windows PC nhiều

Cấu hình DNS-over-HTTPS trên Windows

  • Hạn chế cấu hình cho toàn bộ hệ thống, ưu điểm của chặn lọc quảng cáo nó không đáng, so với rủi ro chặn nhầm dịch vụ nào đó đang chạy

Muốn chạy DoH cho toàn bộ hệ thống trên Windows, đơn giản nhất là quản lý thông qua YogaDns

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Cài đặt bỏ qua tùy chọn check update và chạy khi khởi động Windows
  • Active license: N2H6F-S2T8V-4SM0Q-UD560-32OFL, sử dụng tùy chọn All users on this computer
  • Active xong tắt mọi cửa sổ YogaDNS đang chạy (cả dưới taskbar nữa)
  • Bật chạy YogaDNS Service Manager

Cloudflare Gateway – chặn quảng cáo DNS miễn phí cho mọi thiết bị

  • Install -> Import from file -> Start
  • Thấy các log đang process thì có thể Exit luôn

Mặc định từ lúc này YogaDns sẽ chạy nền dưới Windows, không cần quan tâm tới nó nữa, mặc định các ứng dụng sẽ chạy qua DoH

Kết luận

Cloudflare Gateway kết hợp CGPS là 1 giải pháp bền vững cho vấn đề chặn quảng cáo ở cấp độ DNS, nó nhanh, mạnh, ổn định, miễn phí, có thể tùy chỉnh được bộ lọc, tự động cập nhật bộ lọc theo nhu cầu sử dụng, cấu hình xong có thể tự vận hành nhiều năm, không cần lo lắng vấn đề bảo trì, hay hệ thống tự sập, nó chỉ có 1 điểm là URL sử dụng khó nhớ để nhập thủ công

Về độ ổn định thì từ lúc mình biết tới Cloudflare, chỉ có WARP thi thoảng tốc độ hơi bất ổn, còn DNS 1.1.1.1, chưa bao giờ thấy sập, sử dụng hàng ngày rất tự tin, Cloudflare Gateway gần như dùng cùng 1 hệ thống, độ ổn định sẽ đảm bảo

Bài hơi dài nếu bạn chưa biết gì về Github, Cloudflare, còn có biết sơ sơ thì việc cài đặt sẽ đơn giản cả 😆


Related Posts

Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.

• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.

✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!