A VPN can improve privacy, but connecting to a VPN server does not automatically remove every online exposure. Your browser may still reveal information through WebRTC, your device may continue using DNS resolvers outside the encrypted tunnel, and some applications may follow their own networking rules instead of the system proxy. Public Wi-Fi adds another layer of uncertainty because the local network can observe connection attempts, redirect requests, or interfere with name resolution.

This guide explains what DNS and WebRTC leaks are, why they happen, how to test them without relying on a single result, and which settings can reduce exposure. The goal is not to promise perfect anonymity. A more practical goal is to make the traffic path understandable: identify which address is visible, which resolver answers domain requests, which applications bypass the client, and whether the result changes when the VPN is disconnected.

Privacy check principle: Always compare the same device and browser before connecting, while connected, and after changing one setting. A test result is useful only when you know which network path produced it.

What DNS and WebRTC leaks can reveal

When you open a domain name, your device normally needs a DNS resolver to translate that name into an IP address. The resolver may be supplied by your home router, mobile carrier, public Wi-Fi, operating system, browser, or VPN client. If the VPN carries ordinary web traffic through its tunnel but DNS requests continue to use the local network resolver, the websites you look up may be visible to that resolver even though the final web connection uses the VPN route. This situation is commonly called a DNS leak.

A DNS leak does not necessarily mean that your password or page content is exposed. DNS usually handles name resolution rather than the full application session. However, the queried domain names can still reveal browsing patterns, software update destinations, streaming services, work platforms, or other information that you intended to route through the VPN. It can also affect region-sensitive services because the resolver location may differ from the VPN exit location.

WebRTC is a set of browser technologies used for real-time audio, video, data channels, and peer-to-peer communication. To establish a connection, a browser may gather network candidates from different interfaces. Depending on the browser, operating system, permissions, and application design, a website may learn an address associated with your local network, a public interface, or an address related to the VPN connection. Modern browsers apply restrictions, but the precise behavior varies, and a browser test should not be treated as a universal statement about every application.

DNS and WebRTC are separate issues. Blocking WebRTC does not guarantee that DNS requests use the VPN resolver. Changing DNS does not necessarily prevent a browser from collecting connection candidates. You should test both paths independently, then check whether the applications you actually use behave in the same way as the test browser.

90+

countries available

200+

available routes

Unlimited

simultaneous devices

5

supported platforms

These service capabilities can make it easier to compare behavior across Windows, macOS, iOS, Android, and Linux, but they do not replace local testing. A client may protect traffic differently in system proxy mode, virtual network interface mode, and browser-only mode. The operating system may also preserve an older DNS route after a network change, so reconnecting and clearing cached state can be important during troubleshooting.

DNS resolution is not the same as web traffic

It is useful to separate three stages. First, the device asks a resolver for an address. Second, the application connects to that address. Third, the application exchanges data over the resulting session. A VPN may handle the second and third stages while the first stage still leaves through the local router. Conversely, a secure DNS setting may protect the request to the resolver while the application itself bypasses the VPN through another interface.

Encrypted DNS, such as DNS over HTTPS or DNS over TLS, can prevent a local network from reading ordinary DNS queries. It is not automatically equivalent to VPN DNS protection, however. A browser using its own encrypted resolver may send queries outside the VPN policy, and the resolver can still associate those queries with the browser connection. For consistent routing, decide whether the VPN client or the browser should control DNS, then avoid silently enabling several competing DNS mechanisms.

Prepare a reliable leak test

Start with a known baseline. Disconnect the VPN, open the browser you normally use, and note the public address and DNS provider shown by a reputable testing page. You do not need to publish the result or save a full screenshot containing an address. A private note with the provider name and the approximate result is enough. If the result is already unusual before the VPN is connected, the later comparison may be difficult to interpret.

Next, close unnecessary VPN or proxy applications. Running two clients at the same time can create competing routes, virtual adapters, or system proxy settings. A browser extension, desktop client, and operating-system VPN profile may all claim to control traffic. This does not create a stronger tunnel. It can instead produce inconsistent results where the browser uses one path, command-line tools use another, and applications ignore both.

Connect one trusted client and wait until its status clearly changes to connected. Choose a route suitable for the test rather than switching repeatedly. Confirm that the client is operating in the intended mode. A system proxy mode may affect applications that honor proxy settings, while a virtual network interface mode can capture a broader range of traffic. Neither label alone proves that every application is covered.

  • ✅ Record the baseline with the VPN disconnected before changing browser settings.
  • ✅ Use one VPN or proxy client at a time during diagnosis.
  • ✅ Confirm whether the client uses system proxy mode or a virtual network interface.
  • ✅ Test the browser you actually use, not only a newly installed test browser.
  • ❌ Do not paste a private subscription link into a public testing or conversion page.
  • ❌ Do not treat a changed public address as proof that DNS and WebRTC are protected.

Testing should also account for cached information. Browsers may reuse DNS answers, applications may keep existing connections open, and operating systems can retain network state after a route change. If a result looks contradictory, disconnect the VPN, close the browser completely, reconnect the VPN, and run the test again. Change one variable at a time so that you can identify whether the difference came from the client, browser, route, or network.

How to check DNS and WebRTC step by step

Begin with the public address test. While connected, a normal public-address page should show the VPN exit rather than the address associated with your local internet connection. This result confirms only that at least one browser request used the VPN route. It does not confirm DNS protection, because the page may be reached through a resolver outside the tunnel.

Run a DNS leak test next. Look at the resolver organization and geographic pattern rather than focusing only on whether the page displays a warning. If the results consistently identify your internet provider or local network while the VPN is active, investigate the client’s DNS handling, the operating system resolver, and browser secure-DNS settings. A resolver name that differs from the VPN provider is not automatically a leak: some services use independent DNS infrastructure. The important question is whether the resolver is expected, whether requests follow the intended route, and whether the result changes when the VPN disconnects.

Then run a WebRTC test in the same browser. Inspect every address category shown by the test, including local, public, and VPN-related candidates. Some local addresses are private interface addresses and cannot directly identify you on the public internet, but they may still reveal network structure to a webpage. A public address associated with your normal connection is more significant when it appears while the VPN is active. A VPN-related address is expected if the browser exposes the tunnel interface; whether that is desirable depends on your use case.

Repeat the checks after changing only the relevant browser or client setting. For example, first test with the browser’s current WebRTC behavior. Then apply the browser’s privacy control or an approved extension, restart the browser, and test again. For DNS, change the client’s DNS mode or the browser’s secure-DNS choice, reconnect the VPN, and compare the resolver result. If both DNS and WebRTC results change at the same time, you will not know which setting produced the improvement.

Check What it measures Potential warning sign Useful response
Public address Visible exit address for the test request Your ordinary connection address remains visible Check client mode, route status, and system proxy settings
DNS resolver Which service answers domain-name requests Unexpected local or carrier resolver appears Review VPN DNS handling and browser secure-DNS settings
WebRTC candidates Addresses exposed during real-time connection setup An unexpected public interface address is listed Review browser WebRTC controls and application permissions
Application traffic Whether a specific app follows the intended route Only the browser changes while the app keeps its old path Check split tunneling, proxy support, and virtual interface mode
Testing conclusion:

A clean public-address result is only the first checkpoint. Treat DNS, WebRTC, and application routing as separate tests, and repeat the comparison after every meaningful configuration change.

Settings that can reduce exposure

On Windows and macOS, first check whether the client offers DNS protection, leak prevention, or a kill switch. The exact names differ between clients. A kill switch is designed to prevent selected traffic from falling back to the ordinary network when the tunnel disconnects. Read its scope carefully: some implementations cover only system traffic, while others apply only when the virtual interface is active. A kill switch is not a substitute for testing, but it can reduce the chance of an accidental fallback during a network change.

On Android, review whether the VPN is configured as the always-on VPN and whether the operating system offers a setting to block connections without the VPN. These controls can be helpful on public Wi-Fi, but they may affect local network access, captive portals, casting, or work applications. Test the services you need before relying on the configuration. Android applications can also use their own networking stack, so a browser result does not prove that every app follows the same path.

On iOS, application behavior is more controlled by the operating system, but browser privacy settings and app-specific network features still matter. A VPN profile can protect traffic according to its configuration, while a browser may use private relay-style features or its own secure DNS behavior. Avoid stacking several privacy-routing products without understanding their order. If an application stops connecting, temporarily isolate the variables and check whether the issue is a route policy, DNS choice, or local network restriction.

On Linux, inspect the routing table, resolver configuration, and the client’s tunnel interface. NetworkManager, systemd-resolved, desktop proxy settings, and command-line tools may not all use the same resolver path. A browser test can therefore look clean while a package manager, terminal tool, or container follows the host network directly. If you need application-level separation, confirm whether the client supports rules, a virtual interface, or a SOCKS or HTTP proxy, and understand which programs honor that method.

Browser controls can reduce WebRTC exposure, but they may also disable legitimate calling, conferencing, or peer-to-peer features. Rather than installing several extensions, use the browser’s built-in privacy controls where available and test the websites that require real-time communication. For sensitive browsing, separate browser profiles can be useful: one profile can keep normal collaboration features enabled, while another uses stricter privacy settings and fewer extensions.

Public Wi-Fi reminder: Use the VPN before opening accounts or entering sensitive information, but still verify the network name, avoid unknown captive-portal prompts, keep the operating system updated, and prefer HTTPS. A VPN protects a traffic path; it does not make a malicious website, downloaded file, or phishing message safe.

Protocol and client behavior still matter

A subscription may contain configurations for protocols such as Shadowsocks, VMess, Trojan, VLESS, Hysteria2, or WireGuard. These are not interchangeable labels. Shadowsocks, VMess, Trojan, and VLESS are commonly used by proxy clients, while WireGuard is a VPN protocol; Hysteria2 uses QUIC-based transport behavior. The protocol can influence connection establishment and performance, but it does not automatically determine whether a browser’s WebRTC candidates or DNS resolver are exposed.

Clash Verge, sing-box, Shadowrocket, and official clients can implement system proxy, rule-based routing, or virtual-interface modes differently. Rule mode may send browser traffic through the selected route while allowing local services to remain direct. Global mode may cover a broader set of destinations but can interfere with printers, internal domains, or captive portals. Before comparing test results, record the client, mode, protocol, and DNS setting. Otherwise, two tests made under different conditions may appear to contradict each other.

A practical troubleshooting order

If a DNS leak appears, start by checking the client’s DNS option and whether it is configured to use the tunnel. Then inspect the operating system’s active resolver and the browser’s secure-DNS setting. Disable only one competing resolver at a time, reconnect the client, and repeat the DNS test. If the result remains unchanged, check whether the client is operating as a system proxy rather than a full virtual interface and whether the browser is deliberately using an independent resolver.

If a WebRTC test shows an unexpected public address, review browser permissions and WebRTC controls first. Close existing tabs, restart the browser, and test again. If the result appears only in one browser, the issue may be browser-specific. If it appears in multiple browsers, compare the client mode and operating-system interfaces. A browser extension may alter the result, but extensions can also introduce their own trust and compatibility considerations.

If only one application bypasses the route, inspect split-tunneling rules, process rules, and proxy support. Some applications ignore system proxy settings and connect directly. Others use embedded browsers, background services, or separate update processes. A virtual network interface can provide broader coverage, but it can also require more careful local-network rules. Do not assume that forcing every process through the same route is always the best answer; identify the application that needs a different policy.

If the problem occurs only on public Wi-Fi, test another network before changing many settings. Captive portals, DNS interception, IPv6 behavior, and firewall policies can produce results that do not appear on a home connection. Connect to the Wi-Fi portal when necessary, then activate the VPN and repeat the checks. If IPv6 is enabled locally but the client handles only IPv4, an application may expose a separate path. The correct response depends on the client’s documented IPv6 support and the operating system configuration.

  • ✅ Disconnect the VPN and confirm the baseline before diagnosing a changed result.
  • ✅ Reconnect after changing DNS, WebRTC, routing, or browser settings.
  • ✅ Check the specific app when the concern involves an app rather than a browser.
  • ✅ Keep a short record of client mode, protocol, resolver, and test outcome.
  • ❌ Do not publish public addresses, subscription links, tokens, or complete configuration files.
  • ❌ Do not conclude that one successful test protects every device, browser, or application.

Final checklist for DNS and WebRTC privacy

A sensible privacy routine is based on verification rather than a single marketing claim. Confirm that the public address changes as expected, check which DNS resolver answers requests, inspect WebRTC candidates in the browser you use, and test important applications separately. Then reconnect after sleep, network switching, client updates, or changes to split tunneling. These events can alter routes and resolver behavior even when the client appears connected.

Use the least complicated configuration that meets your needs. One trusted client, one clear routing mode, and one deliberate DNS policy are easier to audit than several overlapping tools. If you need compatibility with local services, choose rules deliberately instead of assuming that global mode is always safer. If you need stronger fallback protection, review the kill switch scope and test what happens when the network changes or the client disconnects.

Finally, remember that DNS and WebRTC checks address network exposure, not every aspect of online privacy. Accounts, cookies, browser fingerprinting, malware, phishing, insecure websites, and data held by the services you use remain separate concerns. A VPN can reduce exposure on an untrusted network and provide a different exit route, but safe browsing still depends on careful permissions, current software, and informed choices.

Bottom line:

Connect the VPN, verify the visible address, test DNS, inspect WebRTC, and then check the applications that matter to you. If one result is unexpected, change one setting at a time and repeat the test instead of replacing the entire setup blindly.