构建你自己的隐私保护代理(BYOPPP) - 基于OpenVPN和Privoxy的技术方案

本文详细介绍了如何在非root安卓设备上通过OpenVPN、Privoxy和iptables搭建隐私保护代理系统,有效拦截广告并保护网络隐私,包含完整的配置指南和技术实现细节。

BYOPPP - 构建你自己的隐私保护代理

我最近读到一篇关于在树莓派上搭建隐私代理服务器的博文,这让我开始思考如何将其应用于安卓手机,既能保护隐私又能屏蔽烦人的广告。

由于我使用的是三星Galaxy S3 LTE(搭载基于硬件的Knox计数器),现在root手机会破坏Knox并丧失保修。这意味着我必须在非root环境下解决这个问题。幸运的是,新版安卓系统支持免root使用VPN,但设置全局系统代理仍需要root权限。

不过借助iptables和Privoxy的组合方案,这个问题迎刃而解。

构建隐私保护代理的组件清单:

  • 一台(或多台)廉价VPS服务器
  • 可靠的VPN程序
  • Privoxy
  • iptables

VPS服务器

推荐使用Amazon EC2的微实例,价格低廉(甚至免费),资源完全够用。我目前使用Ubuntu免费套餐运行良好。选择距离最近的AWS区域(例如我选择欧盟-爱尔兰),10分钟内即可完成Ubuntu服务器搭建。

VPN配置

推荐使用OpenVPN AS免费版(注意服务器和客户端都需使用2.0.6或更高版本)。其提供图形化配置界面和安卓/iOS/Windows/Linux/OSX的一键安装客户端。

关键配置参数:

  • 使用TCP 443和UDP 53端口
  • 优先选择UDP协议以获得更好性能
  • VPN模式选择"Layer 3 (routing/NAT)"
  • 记得在AWS安全组中开放VPN端口

其他重要设置:

  • 允许VPN客户端访问服务器端私有子网:是
  • 客户端网络流量通过VPN路由:是

Privoxy安装

通过apt-get install privoxy安装后,需修改/etc/privoxy/config文件:

1
2
listen-address your.ip.add.ress:8118
accept-intercepted-requests 1

注意在AWS安全组中限制仅VPN用户可访问Privoxy服务器。

启动命令:service privoxy start 设置开机自启:update-rc.d privoxy defaults

iptables配置

将所有VPN客户端的web流量重定向到Privoxy:

1
iptables -t nat -A PREROUTING -s 5.5.0.0/16 -p tcp -m multiport --dports 80,8080,81 -j DNAT --to-destination your.ip.add.ress:8118

可选配置其他端口过滤规则,根据Linux发行版设置规则持久化。

效果测试

连接VPN后可以看到广告拦截效果对比:

  • 愤怒的小鸟游戏:使用Privoxy前后对比
  • 手电筒应用:广告拦截效果展示

注意事项

  • 本方案不提供IP层匿名性
  • 网络连接中断时VPN会断开
  • SSL网站仍可能通过域名泄露隐私

额外推荐

OSX/Windows用户可使用Aviator浏览器作为默认浏览器。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计