如何将Pi-hole与OpenVPN配对以在Ubuntu/Debian Linux上阻止广告并增加隐私
我在Ubuntu服务器上安装了OpenVPN。
如何在同一Debian或者Ubuntu Linux服务器上安装Pi-hole来阻止广告,减少4G/3G/LTE流量?
Pi-hole是免费的开源软件,可以阻止广告和跟踪域。
它是根据GNU通用公共许可证发行的。
最大的优势是广告可以在网络上从智能手机到平板电脑(包括所有台式机)的所有设备上屏蔽。
它甚至会阻止iOS和Android/Windows设备上的应用广告。
好处如下:
- 使用基于网络级DNS的阻止功能来阻止所有广告。
- 无论使用什么操作系统,都可以与应用程序和网站一起使用。
- 您可以将Pi-hole与VPN软件(如OpenVPN)配对以进行实时广告拦截,并节省3G/4G/LTE数据成本。
- 由于广告和跟踪代码的阻止,您可以获得更好的隐私和安全性。
本教程提供"在包含Pi-hole广告拦截功能的Debian或者Ubuntu Linux v14.04/16.04 LTS上配置OpenVPN服务器的逐步说明"。
步骤如下。
安装OpenVPN
执行以下两个命令:
$ wget https://git.io/vpn -O openvpn-install.sh $ sudo bash openvpn-install.sh
只需按照屏幕上的说明安装OpenVPN服务器。
有关在Linux上设置OpenVPN服务器的更多详细信息,请参见我们的分步指南。
在Linux服务器上安装Pi-hole
在此阶段,我假设您有一台可用的OpenVPN服务器。
客户端还配置为在OSX/Windows/Linux/FreeBSD/iOS/Andriod设备上使用OpenVPN。
记下您的OpenVPN服务器IP地址
执行以下命令:
$ ip a show dev tun0
输出示例:
找出您的OpenVPN服务器IP地址
请记下10.8.0.1/24 IP地址。
您还需要提供tun0作为接口名称,包括您的默认网关IP地址,例如192.168.1.254:
$ ip r | grep default `default via 192.168.1.254 dev br0 onlin`
我们的样品设置
我们的示例设置/网络
Pi-hole是为Raspberry PI硬件设计的,但可与基于Ubuntu和Debian的Linux发行版一起使用。
在此示例中,我在Ubuntu 16.04 LTS服务器上进行设置。
安装PI-HOLE
运行安装命令,如下所示:
$ wget -O basic-install.sh https://install.pi-hole.net $ sudo bash basic-install.sh
您将在屏幕上看到进度,如下所示:
Pi-Hole安装程序正在运行
此安装程序会将您的设备转换为网络范围的广告拦截器。
Pi孔是一个服务器,因此它需要一个静态IP地址才能正常运行。
选择Pi-hole的接口
选择OpenVPN服务器的接口,例如tun0
选择DNS服务器的协议
您必须至少为所有dns查询选择IPv4
设置静态IP地址(选择否)
您必须设置一个静态IP地址,并且必须与tun0/OpenVPNs静态IP地址匹配
接下来输入OpenVPNs服务器的IP地址,如下所示:
在此处输入您的tun0接口IP地址
最后输入您的默认路由器/网关IP地址:
设置默认路由器IP
确认设置:
静态IP设置正确吗?
是。
设置上游DNS IP地址
选择上游DNS提供商,例如Google DNS
这样就完成了:
安装完成
测试一下
在Pi-hole上执行以下命令以查看DNS是否正常运行:
$ host theitroad.local 10.8.0.1
输出示例:
Using domain server: Name: 10.8.0.1 Address: 10.8.0.1#53 Aliases: theitroad.local has address 75.126.153.202 theitroad.local mail is handled by 1 aspmx.l.google.com. theitroad.local mail is handled by 10 aspmx2.googlemail.com. theitroad.local mail is handled by 10 aspmx3.googlemail.com. theitroad.local mail is handled by 5 alt1.aspmx.l.google.com. theitroad.local mail is handled by 5 alt2.aspmx.l.google.com.
现在,尝试查找广告服务器的IP地址:
$ host pagead2.googlesyndication.com 10.8.0.1
输出示例:
Using domain server: Name: 10.8.0.1 Address: 10.8.0.1#53 Aliases: pagead2.googlesyndication.com has address 10.8.0.1
如您所见,10.8.0.1不是有效的公共IP地址,因此所有来自pagead2.googlesyndication.com的广告都将由我们的Pi-hole投放。
更新OpenVPN配置以推送我们的PI-hole DNS服务器
执行以下命令:
$ sudo vi /etc/openvpn/server.conf
删除或者注释掉现有的DNS条目:
#Stop using Google DNS for our OpenVPN #push "dhcp-option DNS 8.8.8.8" #push "dhcp-option DNS 8.8.4.4"
接下来添加我们的PI-Hole DNS IP地址:
push "dhcp-option DNS 10.8.0.1"
保存并关闭文件。
重新启动OpenVPN服务器:
$ sudo systemctl restart openvpn@server
打开我们的OpenVPN子网的端口53和80
执行以下命令:
$ ufw allow proto tcp from 10.8.0.0/24 to 10.8.0.1 port 80 $ ufw allow proto tcp from 10.8.0.0/24 to 10.8.0.1 port 53 $ ufw allow proto udp from 10.8.0.0/24 to 10.8.0.1 port 53
现在,重新连接所有OpenVPN客户端,您应该能够浏览所有内容,而无需在移动设备上投放广告。
您可以使用以下网址查看PI漏洞统计信息:
http://10.8.0.1/admin/
您可以将某些域列入白名单或者黑名单。