Android 解決DNS污染 方案
机器必须已经 root。
Step 1:安装 OpenVPN
在市场中搜索安装 OpenVPN Installer。安装后运行,如果提示“Binary installed” 并给出程序路径(如 system/xbin/openvpn),进行下一步。否则,点击“Install”安装。
在市场中搜索安装 OpenVPN Settings。在 SD 卡中新建 openvpn 文件夹(全小写),将证书、conf 文件拷贝到该文件夹内。
启动 OpenVPN Settings。如果前面配置正确,就应该能看到配置文件被载入(右图)。
打开 OpenVPN 的开关,然后再打开对应 conf 的开关。如果看到“Connected to … as …”,就说明连接成功啦。
说明:
通知栏上也会有状态提示。左数第五个图标(豌豆荚左侧),指示 OpenVPN 状态。深色(如图)表示已连接,浅色表示连接中。
开机后会自动启动。也就意味着,不需要你管它,只要有网络信号,就能连接上(只不过有时候切换超慢,需要你手动关了再开。这个应该与 OpenVPN 服务器也有关系,因为 OpenVPN 同一时刻一账号只允许触发一个连接,非正常掉线服务器可能会反应错误)。
Step 2:解决 DNS 污染
还有一个重要的问题没解决。众所周知,国内的 DNS 基本全被污染光了,所以必须强制走国外 DNS(在 VPN 拨通的条件下,也即 DNS 流量也必须被加密)。
最好的办法就是让服务商开通 DNS Push。但如果没开通,就只能在本机上做了。iOS 上有插件 GuizmoDNS 可以强制 wifi / 3G 的 DNS,但 Android 上我还没发现。只好找了一个折中的办法,执行一个脚本,来制定 DNS。
在市场中搜索安装 GScript Lite。
安装后运行,添加一个新的脚本,内容就两行:
setprop net.dns1 8.8.8.8
setprop net.dns2 8.8.4.4
保存,运行。
为了方便以后运行,可以点击(MIUI 桌面下)Menu → 编辑模式 → Menu → 添加 → 快捷方式,将该脚本的快捷方式放置在桌面。
以后每次开机后,点一下这个脚本,设置 DNS 就可以了。麻烦点,但,不这样又能怎么办呢?