DNS是什么

DNS,全称为"Domain Name System",中文名为"域名系统"。它是一种用于分布式数据库,提供主机名字和IP地址之间的转换服务。

在互联网中,每一台计算机都有一个唯一的IP地址,这就像每一个人都有一个唯一的身份证号码。但是,IP地址是由一串数字组成的,比如192.168.1.1,这样的数字对于人类来说并不容易记忆。因此,就需要有一种方法能够将这些数字转换成更容易记忆的名称,这就是DNS的主要功能。

例如,当你在浏览器中输入www.google.com时,你的计算机会首先向DNS服务器发送一个请求,询问这个网址对应的IP地址是什么。DNS服务器会回答说,www.google.com的IP地址是64.233.170.113。然后,你的计算机就会向这个IP地址发送请求,获取网页内容。

总的来说,DNS服务器就像是互联网的电话簿,帮助我们找到每个网站的"电话号码"(即IP地址)。

与64.233.170.113相比,人类更容易记住www.google.com

改变IP的时候,DNS是怎样工作的

当你使用VPN或代理服务器时,理论上你的所有互联网流量,包括DNS请求(即你访问的网站的名称),都会通过VPN或代理服务器发送。这大概会经历4个步骤:

你的电脑告诉VPN、代理服务器,你想要访问google.com。

VPN、代理服务器向自己的DNS服务器发出请求:给我一个google服务器的IP地址。

DNS服务器返回google服务器的IP地址。

VPN、代理服务器根据返回来的IP地址去访问google。

假设一个在新加坡的用户,使用了VPN或代理服务器(IP地址为美国)访问BrowserScan。如果他的VPN或者软件配置正确,检测的结果应该是:DNS服务器的IP地址也应该位于美国,跟VPN或代理服务器的IP地区一致。如果DNS服务器不位于美国,例如在加拿大等地区也不必担心。至少他所在的地区(新加坡)并没有泄露。

什么是"DNS泄露"

虽然你的互联网流量通过VPN或代理服务器进行传输,你的设备也可能会继续使用你的ISP(Internet Service Provider,互联网服务提供商)的DNS服务器,而不是你的VPN或代理服务的DNS服务器。

因此,你的IP地址、DNS请求(即你访问的网站的名称)可能会被你的ISP看到。这就是所谓的"DNS泄露"。

如下图所示,一个新加坡用户使用一个美国代理IP访问Google。但由于VPN或软件配置不正确,导致他的设备向新加坡地区的DNS服务器请求Google的IP地址。此时,该用户访问Google的事情就被他的ISP知道了。

当他使用BrowserScan检测DNS是否泄露的时候,会出现下图的情况:DNS服务器IP地址所在地区与用户真实IP地址所在的地区(都是新加坡)一样,这位新加坡用户发生了DNS泄露!

DNS泄露的风险

如果发生DNS泄露,你的DNS请求会被发送到你的ISP的DNS服务器,而不是VPN的DNS服务器。这意味着你的ISP可以知道你的IP地址,即你的真实地理位置被泄露。

其次,你的个人隐私也被泄露了。因为你的ISP可能会记录你访问的网站,并可能将这些信息用于广告定向、销售给第三方。

另外,一些恶意软件或网络攻击也可能会改变你的DNS设置,使你的DNS请求被发送到一个不安全的DNS服务器。不安全的DNS服务器可能会将你的请求重定向到恶意网站,这被称为DNS劫持。比如,你可能试图访问一个银行的网站,但实际上被重定向到一个假冒的银行网站,这个网站看起来和你的银行的网站一模一样,但实际上是由网络犯罪分子设置的,他们会试图窃取你的用户名和密码。

如何阻止DNS泄露

使用可靠的VPN/代理服务

一些VPN/代理服务提供商提供了防止DNS泄露的功能。这些VPN/代理会确保你的所有DNS请求都通过它们的服务器进行,而不是你的ISP的服务器。在选择VPN/代理服务时,你应该查看它们是否提供DNS泄露保护。

使用安全的公共DNS服务器

你可以在你的设备的网络设置中手动设置DNS服务器,以使用一个安全的DNS服务器,如Google的公共DNS(8.8.8.8和8.8.4.4, 设置方法)或Cloudflare的DNS(1.1.1.1,设置方法)。这样,即使你的VPN连接中断,你的DNS请求也不会被发送到你的ISP的服务器。

使用DNS泄露检测工具

当你使用VPN或代理服务器访问某个网站前,可以使用DNS泄露检测工具来检查是否发生DNS泄露:https://www.browserscan.net/dns-leak