Pi-hole v4.0 Released With FTLDNS, Improved Blocking Modes, Regex, Docker, and More

Upgrade from beta to 4.0 on Rpi 2 with no problems.
(followed instructions).
Thank You, Nice job! :slight_smile:

1 Like

Did you try flushing your browser cache?

Seems to be working as expected in Chrome/Win10. My issue was in Chrome/Android (but that's not always 100% compatible on a good day). I'll continue to troubleshoot.

Following up: Clearing the browser cache solved all of the issues I was seeing in Chrome/Android. Thanks for the help.

Congrats on the release of the new version!

Just a quick question about the changelog:

What prompted this change, can I turn it back on / what is the proper method to prevent your blocklists from blocking each other?

What prompted the change. We didn't want to whitelist domains automatically for users as that could potentially whitelist some ad serving domains if we weren't careful an example of this would be s3.amazonaws.com. We also noticed that in our tests not many of the lists contained other list sources as blocked domains.

No at this time it is not a user adjustable setting. I like this idea though

Best method would be to look at your blocklist domains and whitelist IF they fail to download on a run of pihole -g

There are a few block lists out there that pretty much throw in everything but the kitchen sink for domains to block, and aren't really tailored to work with a DNS-based solution like Pi-Hole.

In my experience, one of the worst offenders is https://adblock.mahakala.is. This blocks a lot of block list sites, as well as many reputable commercial sites like walmart.com (not just the ad-serving subdomains), etc. I deleted it shortly after I started using it.

1 Like

I am trying to make pihole as automatic as I can, using one of WaLLy3K blacklists and anudeepND whitelist, downloading both lists automatically and running pihole -g. This works until one of WaLLy3K's lists starts blocking other lists.

I understand you don't want to add whole domains (like s3.amazonaws.com) to the whitelist, but I have no problem allowing a specific list like https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt from a well curated Blocklist Collection.

In gravity.sh line 220:

httpCode=$(curl -s -L ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" -A "${agent}" "${url}" -o "${patternBuffer}" 2> /dev/null)

--dns-servers 1.1.1.1 could be added to the curl command to allow the lookup of the entries in the blocklist collection. Unfortunately, the --dns-servers option is not available on Raspbian:

$ curl pi-hole.net --dns-servers 1.1.1.1
curl: (4) A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.

Any other ways you can think of (other then disabling pihole temporarily) to allow the download of the blocklist entries?

If you add a block list, you can whitelist the domain manually.

I am trying to whitelist the entries in the blocklist. Not statically(manually), but dynamically, depending on the content of the blocklist collection.

This works pulling the file, even as hosts-file.net is blacklisted

curl --resolve hosts-file.net:443:`dig @1.1.1.1 +short hosts-file.net` https://hosts-file.net/grm.txt

Are you trying to whitelist the list domains though? That seems to be what you are trying to do. The best way to do that is to just whitelist them manually.

In addition to the other comments, having a pre-populated whitelist also confused some users and some thought we were showing favoritism. So those were a couple other reasons we took them out.

No, I'm not trying to whitelist the domains, I'm trying to find a way to download the url's in a blocklist regardless of the current blacklist or whitelist.

I understand - and agree with - the reasoning behind. But I am concerned with being "locked out" from updates on one blocklist by an other blocklist.

I changed my gravity.sh and inserted:

if [ dig $domain +short | grep 0.0.0.0 -c -ge 1 ]; then
ip=dig @1.1.1.1 +short $domain
if [ echo $url | awk -F '://' '{print $1}' = "https" ]; then
port=443;
else port=80
fi
echo -e "${OVER} ${CROSS} ${str} ${domain} is currently blocked by pi-hole. Circumventing pi-hole and trying again";
echo -ne " ${INFO} ${str} Pending..."
cmd_ext="--resolve $domain:$port:$ip $cmd_ext"
fi

Just before:

httpCode=$(curl -s -L ${cmd_ext} ${heisenbergCompensator} -w "%{http_code}" -A "${agent}" "${url}" -o "${patternBuffer}" 2> /dev/null)

My blocklists now update even if the URL is blocked by pi-hole:

$ pihole -g
[i] Neutrino emissions detected...
[✓] Pulling blocklist source list into range

[i] Target: hosts-file.net (grm.txt)
[✗] Status: hosts-file.net is currently blocked by pi-hole. Circumventing pi-hole and trying again
[✓] Status: Retrieval successful

[i] Target: reddestdream.github.io (minimalhosts)
[✓] Status: No changes detected

[i] Target: raw.githubusercontent.com (hosts)
[✓] Status: Retrieval successful

Quick question : Are there any limitations to running Pi-hole v4.0 when it comes to the used Debian/RaspBian version ?

In other words :
Can I safely upgrade version 3.3.1 running on Raspbian Jessie like I mentioned here => Unexpected version of dnsmasq on Raspbian Jessie
to the latest version of Pi-Hole ?

Thanks in advance :slight_smile:

Yes V4.0 is safe to run on Jessie. Make sure you are on the master branch by using pihole checkout master

1 Like

Hello,

I used the iptable fix for the "endless loading time issue" with the last pi hole version and updated today to version 4.

Have I to do anything to remove this no longer needed fix or does the new update erase it automatically?

Greetings

iptables -L --line-numbers

will show you the ones.

Then you can use

iptables -D <CHAIN> <LINE NUMBER>

to delete them.

1 Like

Perfect. It worked fine. Thank you very much!

Marginal note: you have to be a super user to do this.

Guys... you didn't lie : Version 4.0 is a INSANE FAST ad blocking BEAST!!! :smiley:

Thank you & Keep up the good work! :sunglasses: :+1:t2::+1:t2:

4 Likes

I tried the pihole -up command and it updated the Core without any problems. However when trying to update the FTL, I get

[i] FTL Checks...
[i] Downloading and Installing FTL...curl: (22) The requested URL returned error: 404 Not Found
[✗] Downloading and Installing FTL

Any ideas what I'm doing wrong? Thanks in advance!