——打造自用的分流 DNS
两种泄露 IP 泄露和 DNS 泄露
路由原理
IP 路由的实现过程可以简化为以下三条:
数据包接收与解析:路由器接收并解析数据包,提取源 IP 地址和目标 IP 地址等信息。
查找与转发:根据目标 IP 地址查找路由表,确定最佳路径并转发数据包。
路由表更新:通过路由协议与其他路由器交换信息,定期更新和维护路由表。
简单来说,使用路由器访问网络必定是要透露本地 IP 给对端服务器的,不然网络信号来龙去脉怎么确定呢?
怎样防止泄露 IP?
使用虚拟专用网络(VPN):通过 VPN 加密所有的网络流量,这时,本地所有流量是通过 VPN 落点服务器,流量路径为远端服务器 -VPN 服务器 - 本地网络(本机),服务器以为是在和 VPN 服务器通信,访问网络的客户端得以隐藏在安全的 VPN 服务器之后,减少 IP 泄露的风险。
什么是 DNS 泄露?
DNS 泄露(DNS Leak)指的是当使用虚拟专用网络(VPN)或代理服务时,网络流量中的域名系统(DNS)请求仍然通过本地网络而不是通过 VPN 或代理服务器的情况。这可能导致你的真实 IP 地址暴露,并使你在互联网上的活动被追踪或监控。
DNS 泄露的主要问题包括:
隐私泄露:即使你的网络流量通过 VPN 加密,你的 DNS 请求仍然可能暴露你的真实 IP 地址和访问的域名,从而让第三方知道你访问了哪些网站。
位置暴露:DNS 泄露可能暴露你真实的地理位置,因为 DNS 请求可能会指向你本地的 DNS 服务器。
如何防止 DNS 泄露:
使用可靠的 VPN 服务:选择有内置 DNS 泄露保护的 VPN 提供商。启用 DNS 泄露保护功能:在 VPN 客户端设置中启用 DNS 泄露保护(如果提供此功能)
配置 DNS 服务器:手动配置使用安全的 DNS 服务器,例如公共 DNS 服务(如 Google DNS 或 Cloudflare DNS),并确保这些设置在 VPN 连接时生效。
如何检测 DNS 泄露:
使用在线工具:有许多网站可以帮助检测 DNS 泄露,例如 ipleak.net。
检查 VPN 软件:一些 VPN 提供商自带 DNS 泄露检测工具和报告功能。
综上所述,如果想要隐藏本地 IP 安全地访问网络只有一种办法,就是通过 VPN 走所有的流量,并且把本地所有的 DNS 请求也通过 VPN 发送到 VPN 提供者去处理,或者用安全的 DNS 服务器去解析。
两种自欺欺人和我们的妥协
最近网络上很是炒作了一番 DNS 泄露问题,也出现了很多防止 DNS 泄露的(帖子)方案,很多网站也提供 DNS 泄露测试,并且引得很多人出现了危机感,认为 DNS 泄露成了天大的事情。更有甚者为了过各种 DNS 泄露检测网站的检测,把所有的域名解析都发到国外 DNS 去处理。
那么,将所有的域名解析都发到国外 DNS 服务器可能带来哪些问题:
延迟增加:跨越远程网络路径会导致解析延迟,影响网页加载速度。
可靠性问题:国外 DNS 服务器可能会遇到网络故障或政策问题,导致无法解析域名。
管理复杂性:配置和维护国外 DNS 服务器可能较为复杂,需要额外的技术支持。
内容访问问题:一些本地内容可能会因为地理限制而无法访问。
我重点说一下内容访问问题,我们知道很多媒体公司在多个国家有他的业务,甚至为了优化访问体验,优化带宽费用,国内的媒体提供者甚至做了精细的分运营商 / 分地区的的 DNS 策略,以便访问流媒体的时候能让客户端从最近的 CDN 服务器获取数据。
因此,尽管使用国外 DNS 可以提供更好的隐私保护或绕过地理限制,但需要权衡这些潜在问题,并合理配置 DNS 解析策略。
在我这边用 DNS 分流解决 DNS 泄露问题的时候,我的群友给我 https://ipcheck.ing/ 网站让我检测 DNS 泄露问题,不出意外地出了意料之中的问题,国内检测部分命中了我的国内域名表,并且这个网页获取到了我的国内 IP。然后给我说我的分流 DNS 架构是自欺欺人。
我当然不同意这个说法。如果把所有的流量通过 VPN(代理)走(或者把 IPIP.net 加到代理列表走)确实能过这个网站的国内部分的检测,但是我认为没有必要。
首先我们一般不需要这么高的安全性,不需要让所有的流量都走代理出。甚至是流量走国内代理出都会大大降低网络体验,如果你的代理在异地异网体验会更加糟糕。只有需要极端的安全性的情况下才有这个必要。
如果只是把 DNS 发到国外解析,这在我看来纯粹是自欺欺人了。你访问的网络应用的服务方依然能获取到你的 IP,不然怎么通过路由返回数据到你设备?这对国内的很多没有做国内外分布部署的网络应用,并没有正面作用,对做了国内外区分部署网络有负面优化作用甚至有些媒体服务商在某些国家并没有开展业务,会拒绝服务,故此,总体算来得不偿失。
我的需求和我之对策
那么关于 DNS,我们的需求是什么?
1. 防止污染
2. 防止泄露
防止污染
使用可信 DNS 服务:选择如 Cloudflare、Google 或 OpenDNS 等可靠的 DNS 提供商。
启用加密 DNS:使用 DNS over HTTPS (DoH) 或 DNS over TLS (DoT) 加密 DNS 请求。
防止泄露
启用 DNS 泄露保护:确保 VPN 或代理提供 DNS 泄露保护。
配置安全 DNS:通过 VPN 或安全 DNS 服务器处理所有 DNS 请求。
定期检测:使用工具网站如 https://browserleaks.com/dns 检查是否存在 DNS 泄露。
我之对策:
使用白名单域名表,把国内常用域名的 DNS 请求发送到国内的 DNS 服务器解析,甚至直接发送到运营商给的 DNS 解析以获得最佳的 IP。
白名单以外的域名,发给国外的加密 DNS 解析。
定期更新白名单。
至此,可以杜绝国内 DNS 抢答某些国外域名造成的污染的问题。也避免了把所有域名发送到国外解析的造成的区域混乱问题。能通过各种 DNS 泄露测试。