问题描述
在使用公共或不受信任的 Wi-Fi 网络时,将明文数据发送到互联网会极大地损害您的安全。之前有过讨论过这个问题(请参阅此处)。通常解决方案是使用虚拟私人网络 (VPN),但这种方法可能会增加延迟,并且需要您自己部署服务器或订阅第三方服务,也就是必须信任这些服务。大多数值得信赖的应用程序现在都开始使用 HTTPS 或其他加密协议来与他们的服务器进行通信,很多网站也是如此。因此,在某些情况下无需使用防火墙即可视为安全。然而,作为终端用户,我们并不清楚每款应用的安全性如何。
希望能够在连接到未受信任的网络时完全阻止所有应用程序发送明文数据,并允许使用 HTTPS 和其他加密协议。可以选择基于端口的方式来实现:不会担心恶意应用程序通过假装使用 SSL 端口来绕过过滤。解决方案可以使用 Android 的“总是在线”(always-on)VPN 来实现,前提是不需要远程的 VPN 服务器支持。无需对手机进行ROOT操作,且能够将某些网络标记为可信任,并允许在这些网络上发送明文数据。
解决方案
方案1:通过第三方应用实现
市面上有一些支持防火墙功能的应用程序可以帮助您阻止应用程序发送明文数据(同时允许 HTTPS 数据)。例如,NetGuard
和 Open Network Monitor(ONM)
等。这类应用通常会在您安装后设置基本规则集。为了满足您的需求,可以进行一些额外的配置:
- 下载并安装应用程序:如 NetGuard、 ONM 等。
- 启用“Always-On VPN”功能:
- 打开系统设置 -> 账户与备份 -> Google -> 隐私密 -> 总是在线(即启用始终连接的VPN选项)。
- 配置规则集:打开上述应用程序并创建一个新的规则来禁止明文数据。这些规则可以基于应用包名称、主机或端口进行设置,具体方法请参照使用指南。
- 选择需信任网络:您还可以通过添加例外列表来阻止特定的网络(如家中或办公室等)下的某些应用访问不受信任的网络。
方案2:手动配置
如果您习惯于手动操作并希望更多地控制规则,则可以考虑:
- 使用
iptables
或其他防火墙功能: - 打开终端模拟器,例如 Termux。
- 根据您的需要,编写适当的规则来阻止应用程序通过明文方式传输数据(详情请参考网络社区的相关教程)。
这两种方案都可以满足您对于安全的需求。请根据个人喜好选择合适的策略。虽然解决方案的复杂性可能因应用不同而有所差异,但一般而言,在未使用第三方服务的情况下解决此类问题仍然是可行且有效的。
希望本文对您有所帮助!如果有任何疑问或进一步的要求,请随时提问。