![使用服务器域名而不是服务器 IP 地址在 Android 上配置始终在线的 VPN](https://linux22.com/image/1445391/%E4%BD%BF%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9F%9F%E5%90%8D%E8%80%8C%E4%B8%8D%E6%98%AF%E6%9C%8D%E5%8A%A1%E5%99%A8%20IP%20%E5%9C%B0%E5%9D%80%E5%9C%A8%20Android%20%E4%B8%8A%E9%85%8D%E7%BD%AE%E5%A7%8B%E7%BB%88%E5%9C%A8%E7%BA%BF%E7%9A%84%20VPN.png)
我使用 IPSec 将 Android (v4.4.x) 移动设备连接到家用 Hamachi VPN。VPN 连接工作正常,只是我无法在 Android 的 VPN 设置中将连接配置为“始终开启”。因此,连接经常断开,需要我返回移动设备的 Android 设置并手动重新启动 VPN,这很烦人,也违背了使用 VPN 的目的。
(旁注:有关“始终开启”设置的更多信息,请参见文章底部:http://www.howtogeek.com/135036/how-to-connect-to-a-vpn-on-android/。
导致我出现问题的原因是,Android 需要静态 VPN 服务器 IP 地址,才能接受“始终开启”的 VPN 连接,而 Hamachi 不使用静态 IP 进行移动 VPN 连接。相反,它只使用静态 URL“m.hamachi.cc”。
因此,我有两个问题:首先,鉴于 VPN 服务器没有必需的静态 IP 地址,我该如何将 VPN 连接设置为“始终开启”?其次,为什么 Google 要求始终开启的连接使用静态 IP,这样做有什么好处?
谢谢,我很感激任何想法。
答案1
这个问题已经问了很久了,但我还是想回答一下。基于这个答案线,该问题是 DNS 欺骗:
始终在线的 VPN 可以保护您免受您无法控制的网络的侵害。如果您使用的是 DNS 名称而不是 IP,则设备必须在建立 VPN 隧道之前解析此名称。但是此解析将在您不信任的网络上进行,因此您无法确定返回的名称的 IP 是否正确。
一种情况是,不受信任网络中的 DNS 服务器会将 IP 提供给它控制下的 VPN 服务器,然后将您的凭据发送到该服务器(而不是您自己的服务器)。
答案2
在建立 VPN 隧道之前,您不能依赖任何通信。VPN 隧道的建立应从设置基于证书的加密连接开始,因此 Aron 提到的 ARP 中毒不会影响它(因为攻击计算机无法真正建立连接,它只能阻止您与网络之间的通信,因此将攻击从 MITM 转变为 DOS)
因此,任何用于确定服务器 IP 的 DNS 查询都可能被泄露(或被阻止,因此您实际上无法连接)。您必须提供 DNS 服务器以防止将信息泄露给您当前的 ISP。