Compare commits
26 Commits
v2.9-alpha
...
v2.7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72e8ec7d93 | ||
|
|
13a479a9f6 | ||
|
|
1194e48bd8 | ||
|
|
1e0666d1ef | ||
|
|
1c53ad6876 | ||
|
|
dc2a537f6b | ||
|
|
a5d3022e9f | ||
|
|
4541da1f17 | ||
|
|
a16cd9aef7 | ||
|
|
6cf446032f | ||
|
|
3fda2d9ac3 | ||
|
|
c03268707a | ||
|
|
7829e907c9 | ||
|
|
b5529e5138 | ||
|
|
d601afcebc | ||
|
|
892a90bf51 | ||
|
|
2209beff8a | ||
|
|
24de6d6fc9 | ||
|
|
09cdf5081c | ||
|
|
d7abbbfac4 | ||
|
|
c714196647 | ||
|
|
3853997295 | ||
|
|
01e1e34874 | ||
|
|
32ff7fb321 | ||
|
|
3f0b15902d | ||
|
|
6d9fbe8d41 |
12
README.md
12
README.md
@@ -20,7 +20,15 @@ chmod +x basic-install.sh
|
|||||||
Once installed, [configure your router to have **DHCP clients use the Pi as their DNS server**](http://pi-hole.net/faq/can-i-set-the-pi-hole-to-be-the-dns-server-at-my-router-so-i-dont-have-to-change-settings-for-my-devices/) and then any device that connects to your network will have ads blocked without any further configuration. Alternatively, you can manually set each device to [use the Raspberry Pi as its DNS server](http://pi-hole.net/faq/how-do-i-use-the-pi-hole-as-my-dns-server/).
|
Once installed, [configure your router to have **DHCP clients use the Pi as their DNS server**](http://pi-hole.net/faq/can-i-set-the-pi-hole-to-be-the-dns-server-at-my-router-so-i-dont-have-to-change-settings-for-my-devices/) and then any device that connects to your network will have ads blocked without any further configuration. Alternatively, you can manually set each device to [use the Raspberry Pi as its DNS server](http://pi-hole.net/faq/how-do-i-use-the-pi-hole-as-my-dns-server/).
|
||||||
|
|
||||||
## Pi-hole Is Free, But Powered By Your Donations
|
## Pi-hole Is Free, But Powered By Your Donations
|
||||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY "Donate")
|
Send a one-time donation or sign up for Optimal.com's service using our link below to provide us with a small portion of the montly fee.
|
||||||
|
|
||||||
|
| Paypal | Bitcoin | Optimal.com |
|
||||||
|
| ------ | ------- | -------- |
|
||||||
|
| [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY "Donate") | <center> <br />1hXEKGKExiPAQ7y5CFPwWiEXUXB6wDuqX</center> | Sign up for [Optimal.com using our link](http://api.optimal.com/partner/v1.0/bmV0d29ya3xkbnN8OlJhc3BiZXJyeSBQaS1Ib2xl/subscribe?redirect=https%3A%2F%2Fpi-hole.net%2Fthank-you%2F) to provide us with a small monthly amount. Your money will also support content-creators.
|
||||||
|
|
||||||
|
[](http://api.optimal.com/partner/v1.0/bmV0d29ya3xkbnN8OlJhc3BiZXJyeSBQaS1Ib2xl/subscribe?redirect=https%3A%2F%2Fpi-hole.net%2Fthank-you%2F)
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
## Catch us out on the net:
|
## Catch us out on the net:
|
||||||
Twitter: [@The_Pi_Hole](https://twitter.com/The_Pi_Hole)
|
Twitter: [@The_Pi_Hole](https://twitter.com/The_Pi_Hole)
|
||||||
@@ -62,7 +70,7 @@ reddit: [/r/pihole](https://www.reddit.com/r/pihole/)
|
|||||||
|
|
||||||
## Partnering With Optimal.com
|
## Partnering With Optimal.com
|
||||||
|
|
||||||
Pi-hole will be teaming up with [Rob Leathern's subscription service to avoid ads](https://medium.com/@robleathern/block-ads-on-all-home-devices-for-53-18-a5f1ec139693#.gj1xpgr5d). This service is unique and will help content-creators and publishers [still make money from visitors who are using an ad ablocker](http://techcrunch.com/2015/12/17/the-new-optimal/).
|
Sign up for Optimal.com's service [using our link](http://api.optimal.com/partner/v1.0/bmV0d29ya3xkbnN8OlJhc3BiZXJyeSBQaS1Ib2xl/subscribe?redirect=https%3A%2F%2Fpi-hole.net%2Fthank-you%2F). This service splits your money between your favorite ad blockers and free Websites. This allows you to block ads while still supporting those sites that currently depend on ads for revenue.
|
||||||
|
|
||||||
## Technical Details
|
## Technical Details
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
## Pi-hole ad-list default sources. Updated 21/02/2016 #########################
|
## Pi-hole ad-list default sources. Updated 22/05/2016 #########################
|
||||||
# #
|
# #
|
||||||
# To make changes to this file: #
|
# To make changes to this file: #
|
||||||
# 1. run `cp /etc/pihole/adlists.default /etc/pihole/adlists.list` #
|
# 1. run `cp /etc/pihole/adlists.default /etc/pihole/adlists.list` #
|
||||||
# 2. run `nano /etc/pihole/adlists.list` #
|
# 2. run `nano /etc/pihole/adlists.list` #
|
||||||
# 3. Uncomment or comment any of the below lists #
|
# 3. Uncomment or comment any of the below lists #
|
||||||
# #
|
# #
|
||||||
@@ -32,7 +32,7 @@ http://hosts-file.net/ad_servers.txt
|
|||||||
#http://optimate.dl.sourceforge.net/project/adzhosts/HOSTS.txt
|
#http://optimate.dl.sourceforge.net/project/adzhosts/HOSTS.txt
|
||||||
|
|
||||||
# Windows 10 telemetry list
|
# Windows 10 telemetry list
|
||||||
#https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/hostsBlockWindowsSpy.txt
|
#https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/win10/spy.txt
|
||||||
|
|
||||||
# Securemecca.com list - Also blocks "adult" sites (pornography/gambling etc)
|
# Securemecca.com list - Also blocks "adult" sites (pornography/gambling etc)
|
||||||
#http://securemecca.com/Downloads/hosts.txt
|
#http://securemecca.com/Downloads/hosts.txt
|
||||||
|
|||||||
@@ -25,6 +25,22 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
function helpFunc()
|
||||||
|
{
|
||||||
|
echo "::: Immediately blacklists one or more domains in the hosts file"
|
||||||
|
echo ":::"
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Usage: pihole -b domain1 [domain2 ...]"
|
||||||
|
echo "::: Options:"
|
||||||
|
echo "::: -d, --delmode Remove domains from the blacklist"
|
||||||
|
echo "::: -nr, --noreload Update blacklist without refreshing dnsmasq"
|
||||||
|
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
|
||||||
|
echo "::: -q, --quiet output is less verbose"
|
||||||
|
echo "::: -h, --help Show this help dialog"
|
||||||
|
echo "::: -l, --list Display your blacklisted domains"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
if [[ $# = 0 ]]; then
|
||||||
helpFunc
|
helpFunc
|
||||||
fi
|
fi
|
||||||
@@ -70,27 +86,6 @@ if [[ -f $piholeIPv6file ]];then
|
|||||||
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
function helpFunc()
|
|
||||||
{
|
|
||||||
echo "::: Immediately blacklists one or more domains in the hosts file"
|
|
||||||
echo ":::"
|
|
||||||
echo ":::"
|
|
||||||
echo "::: Usage: pihole -b domain1 [domain2 ...]"
|
|
||||||
echo "::: Options:"
|
|
||||||
echo "::: -d, --delmode Remove domains from the blacklist"
|
|
||||||
echo "::: -nr, --noreload Update blacklist without refreshing dnsmasq"
|
|
||||||
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
|
|
||||||
echo "::: -q, --quiet output is less verbose"
|
|
||||||
echo "::: -h, --help Show this help dialog"
|
|
||||||
echo "::: -l, --list Display your blacklisted domains"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
|
||||||
helpFunc
|
|
||||||
fi
|
|
||||||
|
|
||||||
function HandleOther(){
|
function HandleOther(){
|
||||||
#check validity of domain
|
#check validity of domain
|
||||||
validDomain=$(echo "$1" | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
validDomain=$(echo "$1" | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
||||||
|
|||||||
@@ -25,6 +25,22 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
function helpFunc()
|
||||||
|
{
|
||||||
|
echo "::: Immediately whitelists one or more domains in the hosts file"
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Usage: pihole -w domain1 [domain2 ...]"
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Options:"
|
||||||
|
echo "::: -d, --delmode Remove domains from the whitelist"
|
||||||
|
echo "::: -nr, --noreload Update Whitelist without refreshing dnsmasq"
|
||||||
|
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
|
||||||
|
echo "::: -q, --quiet output is less verbose"
|
||||||
|
echo "::: -h, --help Show this help dialog"
|
||||||
|
echo "::: -l, --list Display your whitelisted domains"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
if [[ $# = 0 ]]; then
|
||||||
helpFunc
|
helpFunc
|
||||||
fi
|
fi
|
||||||
@@ -69,27 +85,6 @@ if [[ -f $piholeIPv6file ]];then
|
|||||||
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
function helpFunc()
|
|
||||||
{
|
|
||||||
echo "::: Immediately whitelists one or more domains in the hosts file"
|
|
||||||
echo ":::"
|
|
||||||
echo "::: Usage: pihole -w domain1 [domain2 ...]"
|
|
||||||
echo ":::"
|
|
||||||
echo "::: Options:"
|
|
||||||
echo "::: -d, --delmode Remove domains from the whitelist"
|
|
||||||
echo "::: -nr, --noreload Update Whitelist without refreshing dnsmasq"
|
|
||||||
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
|
|
||||||
echo "::: -q, --quiet output is less verbose"
|
|
||||||
echo "::: -h, --help Show this help dialog"
|
|
||||||
echo "::: -l, --list Display your whitelisted domains"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
|
||||||
helpFunc
|
|
||||||
fi
|
|
||||||
|
|
||||||
function HandleOther(){
|
function HandleOther(){
|
||||||
#check validity of domain
|
#check validity of domain
|
||||||
validDomain=$(echo "$1" | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
validDomain=$(echo "$1" | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
||||||
|
|||||||
12
advanced/pihole.sudo
Normal file
12
advanced/pihole.sudo
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Pi-hole: A black hole for Internet advertisements
|
||||||
|
# (c) 2015, 2016 by Jacob Salmela
|
||||||
|
# Network-wide ad blocking via your Raspberry Pi
|
||||||
|
# http://pi-hole.net
|
||||||
|
# Allows the WebUI to use Pi-hole commands
|
||||||
|
#
|
||||||
|
# Pi-hole is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
|
||||||
|
www-data ALL=NOPASSWD: /usr/local/bin/pihole
|
||||||
@@ -58,7 +58,7 @@ else
|
|||||||
if [[ $(dpkg-query -s sudo) ]];then
|
if [[ $(dpkg-query -s sudo) ]];then
|
||||||
export SUDO="sudo"
|
export SUDO="sudo"
|
||||||
else
|
else
|
||||||
echo "::: Please install sudo or run this as root."
|
echo "::: sudo is needed for the Web interface to run pihole commands. Please run this script as root and it will be automatically installed."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -548,7 +548,7 @@ checkForDependencies() {
|
|||||||
echo ":::"
|
echo ":::"
|
||||||
echo "::: Checking dependencies:"
|
echo "::: Checking dependencies:"
|
||||||
|
|
||||||
dependencies=( dnsutils bc dnsmasq lighttpd php5-common php5-cgi php5 git curl unzip wget )
|
dependencies=( dnsutils bc dnsmasq lighttpd php5-common php5-cgi php5 git curl unzip wget sudo)
|
||||||
for i in "${dependencies[@]}"; do
|
for i in "${dependencies[@]}"; do
|
||||||
echo -n "::: Checking for $i..."
|
echo -n "::: Checking for $i..."
|
||||||
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ]; then
|
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ]; then
|
||||||
@@ -638,6 +638,12 @@ installPiholeWeb() {
|
|||||||
$SUDO cp /etc/.pihole/advanced/index.* /var/www/html/pihole/.
|
$SUDO cp /etc/.pihole/advanced/index.* /var/www/html/pihole/.
|
||||||
$SUDO echo " done!"
|
$SUDO echo " done!"
|
||||||
fi
|
fi
|
||||||
|
# Install Sudoer file
|
||||||
|
echo -n "::: Installing sudoer file..."
|
||||||
|
$SUDO mkdir -p /etc/sudoers.d/
|
||||||
|
$SUDO cp /etc/.pihole/advanced/pihole.sudo /etc/sudoers.d/pihole
|
||||||
|
$SUDO chmod 0440 /etc/sudoers.d/pihole
|
||||||
|
echo " done!"
|
||||||
}
|
}
|
||||||
|
|
||||||
installCron() {
|
installCron() {
|
||||||
@@ -698,12 +704,13 @@ displayFinalMessage() {
|
|||||||
# Final completion message to user
|
# Final completion message to user
|
||||||
whiptail --msgbox --backtitle "Make it so." --title "Installation Complete!" "Configure your devices to use the Pi-hole as their DNS server using:
|
whiptail --msgbox --backtitle "Make it so." --title "Installation Complete!" "Configure your devices to use the Pi-hole as their DNS server using:
|
||||||
|
|
||||||
IPv4: $IPv4addr
|
IPv4: ${IPv4addr%/*}
|
||||||
IPv6: $piholeIPv6
|
IPv6: $piholeIPv6
|
||||||
|
|
||||||
If you set a new IP address, you should restart the Pi.
|
If you set a new IP address, you should restart the Pi.
|
||||||
|
|
||||||
The install log is in /etc/pihole." $r $c
|
The install log is in /etc/pihole.
|
||||||
|
View the web interface at http://pi.hole/admin or http://${IPv4addr%/*}/admin" $r $c
|
||||||
}
|
}
|
||||||
|
|
||||||
######## SCRIPT ############
|
######## SCRIPT ############
|
||||||
@@ -740,10 +747,10 @@ echo " done."
|
|||||||
|
|
||||||
echo ":::"
|
echo ":::"
|
||||||
echo "::: Installation Complete! Configure your devices to use the Pi-hole as their DNS server using:"
|
echo "::: Installation Complete! Configure your devices to use the Pi-hole as their DNS server using:"
|
||||||
echo "::: $IPv4addr"
|
echo "::: ${IPv4addr%/*}"
|
||||||
echo "::: $piholeIPv6"
|
echo "::: $piholeIPv6"
|
||||||
echo ":::"
|
echo ":::"
|
||||||
echo "::: If you set a new IP address, you should restart the Pi."
|
echo "::: If you set a new IP address, you should restart the Pi."
|
||||||
echo "::: "
|
echo ":::"
|
||||||
echo "::: The install log is located at: /etc/pihole/install.log"
|
echo "::: The install log is located at: /etc/pihole/install.log"
|
||||||
|
echo "::: View the web interface at http://pi.hole/admin or http://${IPv4addr%/*}/admin"
|
||||||
|
|||||||
@@ -122,7 +122,8 @@ function removeNoPurge {
|
|||||||
$SUDO rm -rf /etc/.pihole/ &> /dev/null
|
$SUDO rm -rf /etc/.pihole/ &> /dev/null
|
||||||
$SUDO rm -rf /opt/pihole/ &> /dev/null
|
$SUDO rm -rf /opt/pihole/ &> /dev/null
|
||||||
$SUDO rm /usr/local/bin/pihole &> /dev/null
|
$SUDO rm /usr/local/bin/pihole &> /dev/null
|
||||||
$SUDO rm /etc/bash_completion.d/pihole
|
$SUDO rm /etc/bash_completion.d/pihole &> /dev/null
|
||||||
|
$SUDO rm /etc/sudoers.d/pihole &> /dev/null
|
||||||
|
|
||||||
echo ":::"
|
echo ":::"
|
||||||
printf "::: Finished removing PiHole from your system. Sorry to see you go!\n"
|
printf "::: Finished removing PiHole from your system. Sorry to see you go!\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user