Cấu hình nâng cao & Quy tắc từ xa
Bên cạnh bộ lọc tích hợp sẵn và công cụ Ẩn phần tử trên trang, Nvirya AdGuard v11.7.0 hỗ trợ đồng bộ danh sách tên miền chặn từ một URL từ xa cũng như xuất/nhập quy tắc lọc CSS theo trang. Cả hai tính năng này đều nằm trong tab Giới thiệu dưới mục Sao lưu & đồng bộ.
1. Đồng bộ từ URL (Danh sách tên miền chặn)#
Cơ chế hoạt động#
Tính năng Đồng bộ từ URL ("Nhập tên miền chặn từ danh sách host thô") tải một tệp văn bản thuần (.txt) hoặc .json từ địa chỉ URL bạn cung cấp, trích xuất các tên miền hợp lệ và gộp chúng vào tập hợp tên miền chặn tùy chỉnh (nvirya_x_custom_blocked).
Mỗi tên miền trong nvirya_x_custom_blocked được thực thi qua hai lớp:
- Chặn yêu cầu mạng trong JavaScript:
isAdUrl(u)kiểm traisCustomBlockedHost(u.hostname)(khớp cả tên miền chính và mọi tên miền phụ quahostMatches), chặn các lệnhfetch,XMLHttpRequest,navigator.sendBeacon,<script src>và<img src>tương ứng. - Ẩn bằng CSS & Dọn dẹp DOM:
installCosmeticCSS()tạo quy tắc ẩniframe[src*="<domain>"], img[src*="<domain>"], a[href*="//<domain>"]cho từng tên miền, đồng thờisyncRulesFromRawUrl()quét ngay tối đa 400 thẻ<script>,<iframe>,<img>và<a>trên trang hiện tại để xóa hoặc ẩn phần tử khớp.
Các định dạng danh sách được hỗ trợ#
Bộ phân tích (parseDomainsFromRawText và extractDomainCandidate) hỗ trợ dữ liệu thô qua giao thức http: hoặc https: ở các định dạng sau:
- Định dạng tệp
hoststiêu chuẩn:0.0.0.0 ads.example.com 127.0.0.1 tracker.example.net ::1 banner.example.org - Định dạng neo tên miền kiểu Adblock:
||ads.example.com^ ||popups.example.net^$third-party - Danh sách tên miền thuần túy (mỗi dòng một tên miền):
ads.example.com clicks.example.net - Mảng hoặc đối tượng JSON:
[ "ads.example.com", { "domain": "tracker.example.net" }, { "hostname": "pop.example.org" } ]
Những gì bộ phân tích kiểm tra và những gì bị bỏ qua#
Để ngăn các quy tắc sai cú pháp làm hỏng trang web, extractDomainCandidate() áp dụng các giới hạn nghiêm ngặt:
- Giới hạn số dòng: Đọc tối đa 15.000 dòng (
Math.min(lines.length, 15000)) mỗi lần đồng bộ. - Kiểm tra cú pháp tên miền: Mọi ứng viên đều được cắt bỏ tiền tố giao thức (
http://,https://), ký tự đại diện (*.), và phần đường dẫn/tùy chọn phía sau (/,?,^,$,:,|), sau đó kiểm tra khớp với biểu thức chính quyRE_VALID_DOMAIN. - Các dòng bị bỏ qua hoàn toàn:
- Dòng ghi chú hoặc tiêu đề bắt đầu bằng
#,!,//hoặc[. - Các mục cục bộ (
localhost,broadcasthost,local) và chínhhostnamecủa trang web đang mở. - Quy tắc ẩn phần tử CSS và scriptlet: Mọi dòng chứa
##,#@#,#?#hoặc#$#đều bị bỏ qua. Đồng bộ từ URL chỉ nhập tên miền, không biên dịch các bộ chọn CSS hay scriptlet của uBlock/AdGuard.
- Dòng ghi chú hoặc tiêu đề bắt đầu bằng
Cách cấu hình và tự động cập nhật sau 24 giờ#
- Mở bảng điều khiển Nvirya AdGuard (
Alt+A) và chuyển sang tab Giới thiệu. - Dưới mục Sao lưu & đồng bộ, chạm vào Đồng bộ từ URL.
- Khi hộp thoại hiện ra (
Nhập URL danh sách thô (.txt hoặc .json):), dán địa chỉ URLhttps://trỏ trực tiếp tới tệp danh sách thô và xác nhận. - Script sẽ tải danh sách (tự động gắn tham số
?_t=<timestamp>để tránh bộ nhớ đệm) quaGM_xmlhttpRequest(thời gian chờ 10 giây) hoặcfetch, lưu URL vàonvirya_x_sync_url, lưu thời điểm đồng bộ vàonvirya_x_sync_timevà hiện thông báo:Đã đồng bộ {count} tên miền mới. - Tự động làm mới mỗi 24 giờ: Khi đã có URL lưu trong
nvirya_x_sync_url, Giai đoạn 3 lúc khởi động sẽ kiểm tra xem đã quá24 giờ(SYNC_INTERVAL_MS = 86.400.000 ms) kể từ lần đồng bộ trước hay chưa. Nếu đã quá 24 giờ, script sẽ tự động tải lại danh sách trong nền và cập nhật các tên miền mới.
Lưu ý bảo mật và cách khôi phục khi bị chặn nhầm#
Quan trọng: Chỉ đồng bộ danh sách tên miền từ những nguồn mà bạn hoàn toàn tin tưởng.
Nếu một danh sách từ xa chặn nhầm tên miền CDN hoặc tài nguyên cần thiết của trang web:
- Bỏ chặn một tên miền cụ thể: Mở Tổng quan → Thao tác nhanh → Nhật ký kết nối, nhập tên miền vào ô
Lọc tên miền...và nhấn Cho phép bên cạnh tên miền đó (removeCustomBlockedHost). - Bỏ qua tạm thời trên trang hiện tại: Nhấn Tạm dừng phiên này hoặc Cho phép trang này trong Tổng quan → Thao tác nhanh.
- Xóa toàn bộ tên miền đã đồng bộ: Mở trình chỉnh sửa dữ liệu lưu trữ (storage) trong trình quản lý userscript của bạn và xóa hai khóa
nvirya_x_custom_blockedvànvirya_x_sync_url.
2. Xuất và Nhập quy tắc lọc CSS theo trang#
Khi bạn ẩn các phần tử bằng công cụ Ẩn phần tử trên trang, Nvirya AdGuard lưu các bộ chọn CSS theo từng tên miền trong nvirya_x_site_rules:
{
"example.com": [
{
"selector": "div.sticky-promo-banner",
"action": "hide",
"created": 1761034000000
}
]
}
- Xuất quy tắc lọc (
Xuất quy tắc lọc): Mở Giới thiệu → Sao lưu & đồng bộ → Xuất quy tắc lọc để sao chép toàn bộ JSON quy tắc tùy chỉnh vào bộ nhớ tạm (Đã sao chép {count} quy tắc vào bộ nhớ tạm), hoặc sao chép từ hộp thoạiprompt()dự phòng. - Nhập quy tắc lọc (
Nhập quy tắc lọc): Mở Giới thiệu → Sao lưu & đồng bộ → Nhập quy tắc lọc và dán chuỗi JSON hoặc Base64 vào hộp thoại. Script sẽ gộp các bộ chọn chưa trùng lặp vàonvirya_x_site_rules, cập nhật<style data-nvirya-site-rules>ngay lập tức và báoĐã nhập {count} quy tắc mới. - Khôi phục khi ẩn nhầm: Mở Tổng quan → Thao tác nhanh → Quy tắc lọc của trang để xóa từng quy tắc bằng nút
×, hoặc chọn Giới thiệu → Dữ liệu & cập nhật → Xóa quy tắc của trang để xóa toàn bộ quy tắc của tên miền hiện tại.