LEAK GUIDE

Phát hiện rò rỉ · Ghi chú kỹ thuật

Kiểm tra rò rỉ xem xét đồng thời lối ra web, WebRTC, DNS, IPv6 và độ nhất quán của môi trường. Các ghi chú này giúp phân biệt rò rỉ thật với việc chia tuyến bình thường hoặc hiện tượng do chế độ proxy gây ra.

Quay lại kiểm tra rò rỉ

Technical Notes

Giải thích rò rỉ WebRTC, UDP và DNS

Kiểm tra rò rỉ xem xét đồng thời lối ra web, WebRTC, DNS, IPv6 và độ nhất quán của môi trường. Các ghi chú này giúp phân biệt rò rỉ thật với việc chia tuyến bình thường hoặc hiện tượng do chế độ proxy gây ra.

Rò rỉ WebRTC là gì

WebRTC là tính năng giao tiếp thời gian thực có sẵn trong trình duyệt, dùng cho họp video, gọi thoại, truyền tệp P2P và các tình huống tương tự. Để thiết lập kết nối ngang hàng, trình duyệt tìm ra địa chỉ công khai của chính nó thông qua máy chủ STUN. Quá trình thăm dò này thường dùng UDP, mà proxy HTTP / SOCKS thông thường không nhất thiết chặn được UDP.

Nếu yêu cầu STUN đi vòng qua proxy và ra thẳng từ mạng nội bộ, một đoạn script trên web có thể lấy được IP công khai thật của bạn. Quá trình này thường không cần quyền camera hay micro và không hiện thêm hộp thoại xác nhận, vì vậy nó hay được dùng để kiểm tra xem proxy có thật sự bao phủ cả lưu lượng giao tiếp thời gian thực hay không.

Công cụ này phát hiện như thế nào

Trang sẽ thử thăm dò WebRTC tới nhiều máy chủ STUN, thu thập các địa chỉ công khai được trả về rồi so sánh với IP lối ra HTTP. Nếu địa chỉ trả về trùng với lối ra hiện tại thì nhiều khả năng đường UDP đã đi qua proxy; nếu trả về địa chỉ của nhà mạng nội địa thì cần xem xét kỹ.

  • Xác minh UDP có đi qua lối ra của proxy hay không
  • Phát hiện IPv4 / IPv6 có rò rỉ riêng lẻ hay không
  • Quan sát các đích STUN khác nhau có rơi vào các quy tắc định tuyến khác nhau hay không

Vai trò của STUN và UDP

UDP là giao thức truyền tải không kết nối, thường dùng cho thoại, video, game và giao tiếp thời gian thực. Việc của STUN rất đơn giản: bạn gửi một gói UDP tới máy chủ, máy chủ sẽ cho bạn biết IP nguồn mà nó nhìn thấy. WebRTC dựa vào kết quả này để thương lượng kết nối, nên địa chỉ mà STUN nhìn thấy là bằng chứng then chốt để kết luận có rò rỉ hay không.

Cách đọc kết quả

Không phát hiện rò rỉIP công khai do WebRTC trả về khớp với lối ra proxy hiện tại của bạn (với IPv6 là cùng /64). Nếu hoàn toàn không có IP công khai nào trả về thì bài kiểm tra đơn giản là chưa nhận được phản hồi; điều đó không chứng minh bạn an toàn.
Nghi ngờ rò rỉWebRTC trả về một IP công khai khác, và vị trí, nhà mạng hoặc ASN của nó trỏ về mạng nội bộ thật của bạn.
Chia luồng bình thườngNhiều máy chủ STUN trả về các lối ra proxy khác nhau, nhưng các lối ra này khớp với định tuyến hoặc quy tắc mà bạn đã cấu hình.

Cần làm gì sau khi phát hiện rò rỉ

  • Chuyển ứng dụng proxy sang chế độ TUN để UDP của WebRTC cũng đi qua lối ra proxy.
  • Chrome / Edge: đặt chính sách doanh nghiệp <code>WebRtcIPHandling</code> = <code>disable_non_proxied_udp</code>; Firefox: bật <code>media.peerconnection.ice.proxy_only_if_behind_proxy</code> trong <code>about:config</code>. Đừng gỡ hẳn WebRTC, vì một trình duyệt không có WebRTC tự nó đã dễ bị nhận diện.
  • Brave: đặt chính sách xử lý IP của WebRTC thành "Disable non-proxied UDP".
  • Khi cần họp trực tuyến hoặc gọi thoại, hãy chỉnh các quy tắc định tuyến UDP / STUN trong ứng dụng proxy trước.

Nhiều IP lối ra không nhất thiết là rò rỉ

Nếu bạn đã cấu hình chia luồng, các máy chủ STUN khác nhau có thể đi qua các node khác nhau — ví dụ STUN của Google đi qua lối ra Mỹ, STUN của Cloudflare đi qua lối ra Hồng Kông. Điều này không nhất thiết nguy hiểm; điều quan trọng là nó có khớp với thiết kế quy tắc của bạn hay không. Điều thật sự cần để ý là khi mọi địa chỉ WebRTC đều trỏ về vị trí thực tế hoặc ISP nội địa của bạn.

Rò rỉ DNS cũng quan trọng không kém

Rò rỉ WebRTC làm lộ "IP thật của bạn"; rò rỉ DNS làm lộ "bạn đã truy vấn những tên miền nào". Nếu các yêu cầu DNS không đi qua proxy, nhà mạng nội địa hoặc resolver upstream vẫn thấy được bạn đã truy cập những trang nào.

Phần kiểm tra rò rỉ DNS của trang này dùng một probe thật: CleanIP.io vận hành mỗi nơi một NS có thẩm quyền tại Utah, Mỹ (ns1) và Los Angeles, Mỹ (ns2), phục vụ vùng dp.cleanip.io. Mỗi lần kiểm tra sẽ phân giải 8 subdomain <uuid>.dp.cleanip.io độc lập; các truy vấn này đi qua stub resolver của hệ thống -> ISP / VPN / resolver đệ quy công cộng, cuối cùng đến NS có thẩm quyền của chúng tôi, nơi ghi lại IP của resolver đã truy vấn và (nếu có) EDNS Client Subnet, rồi trả về cho bạn để đối chiếu.

Hãy tập trung vào hai tín hiệu: ① Dải ECS — nếu resolver đệ quy chuyển tiếp dải IP máy khách của bạn (thường gặp với Google 8.8.8.8) thì dải đó là bằng chứng xác định danh tính máy khách của bạn; ② quốc gia của resolver — anycast xuyên biên giới của các resolver đệ quy công cộng (1.1.1.1 / 8.8.8.8) là bình thường; điều quan trọng là khi bạn cho rằng VPN đang bật, vị trí resolver có khớp với quốc gia lối ra HTTP của bạn hay không.

Vì sao chế độ proxy và chế độ TUN cho kết quả khác nhau

Proxy HTTP / SOCKS thường chỉ xử lý TCP, nên UDP mà STUN cần có thể không gửi được và trang có thể hiện "không rò rỉ". Điều này không có nghĩa UDP đã được proxy an toàn — chỉ là UDP chưa bao giờ tới được máy chủ STUN. Chế độ TUN chặn cả TCP lẫn UDP trên card mạng ảo, nên phản ánh đúng hơn đường lối ra UDP thực tế.

Chế độSTUN UDPÝ nghĩa kết quả
Proxy HTTP / SOCKSCó thể không gửi được"Không rò rỉ" có thể chỉ do UDP bị chặn
TUN / card mạng ảoGửi được thật sựPhù hợp hơn để xác minh lối ra UDP và các quy tắc định tuyến

Bạn nên kiểm tra lại ở đúng chế độ mạng mình thực sự dùng: nếu thường dùng TUN thì kiểm tra bằng TUN; nếu dựa vào proxy trình duyệt thì cũng cần xác nhận UDP bị chặn không bị hiểu nhầm là an toàn. Khi đánh giá rò rỉ WebRTC, hãy tập trung vào ASN, vị trí và việc IP trả về có khớp với cách bạn chia luồng hay không.

mimetic
mimetic
mimetic