<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://segfault.wilderland.ovh/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>segfault - blog:2026:03</title>
        <description></description>
        <link>http://segfault.wilderland.ovh/</link>
        <lastBuildDate>Sun, 03 May 2026 13:17:40 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>http://segfault.wilderland.ovh/_media/wiki:dokuwiki.svg</url>
            <title>segfault</title>
            <link>http://segfault.wilderland.ovh/</link>
        </image>
        <item>
            <title>03_pihole_as_a_ntp_server</title>
            <link>http://segfault.wilderland.ovh/blog:2026:03:03_pihole_as_a_ntp_server</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;pihole_as_a_ntp_server&quot;&gt;pihole as a NTP server&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You have to wonder if it&amp;#039;s intentional or not, but even the pihole documentation points out the problem: raspberry pis do not come with a RTC (real-time clock), so unless one gets one for the Pi your pihole-based NTP server always will have a problem if it was offline for longer than a few hours.
&lt;/p&gt;

&lt;p&gt;
The problem is deliciously simple: a device with no RTC will keep the time it last switched off on until it synchronized with another NTP server. It cannot synchronize with any public NTP server because it can&amp;#039;t establish a connection: the handshake fails because one of the devices believes it&amp;#039;s days earlier than it actually is. 
&lt;/p&gt;

&lt;p&gt;
No connection, no sync. No sync, no valid &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; resolution. No valid &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; resolution, no connection.
&lt;/p&gt;

&lt;p&gt;
How do we solve this?
&lt;/p&gt;

&lt;p&gt;
Well, one way is to set your time manually.
&lt;/p&gt;

&lt;p&gt;
Run 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ timedatectl set-ntp false&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Then
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ timedatectl set-time 2026-03-04 02:00&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Or whatever is right. Then 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ timedatectl set-ntp true&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
And while that does the job, I realized there&amp;#039;s actually an easier way to handle the problem: you see, the issue comes because &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; resolution doesn&amp;#039;t work, right?
So why not, incidentally, just use the ip address of a nearby NTP server?
&lt;/p&gt;

&lt;p&gt;
And presto, it&amp;#039;s back to normal.
&lt;/p&gt;

&lt;p&gt;
I actually used the server of the Polish Główny Urząd Miar (Central Office of Measures) as I&amp;#039;m located in Poland (their address is 194.146.251.100 btw) because I figured, well, isn&amp;#039;t that likely one of the most accurate places around?
In fact, why do we keep using clock servers by Google and Cloudflare and so on, when public scientific institutions everywhere provide the same service?
Oh, well, besides the fact that it&amp;#039;s free either way I guess? 
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:ntp?do=showtag&amp;amp;tag=ntp&quot; class=&quot;wikilink1&quot; title=&quot;tag:ntp&quot; rel=&quot;tag&quot;&gt;ntp&lt;/a&gt;,
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:pihole?do=showtag&amp;amp;tag=pihole&quot; class=&quot;wikilink1&quot; title=&quot;tag:pihole&quot; rel=&quot;tag&quot;&gt;pihole&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;!-- cachefile /storage/data/cache/8/8e8712e813256b50a295c32c80156a7b.xhtml used --&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 03 Mar 2026 23:47:59 +0000</pubDate>
        </item>
        <item>
            <title>05_my_irc_setup_i_chat_server_ngircd</title>
            <link>http://segfault.wilderland.ovh/blog:2026:03:05_my_irc_setup_i_chat_server_ngircd</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;my_irc_setup_ichat_server_ngircd&quot;&gt;My IRC setup I: Chat Server – ngircd&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://segfault.wilderland.ovh/_detail/blog:2026:03:wilderland-irc.png?id=blog%3A2026%3A03%3A05_my_irc_setup_i_chat_server_ngircd&quot; class=&quot;media&quot; title=&quot;blog:2026:03:wilderland-irc.png&quot;&gt;&lt;img src=&quot;http://segfault.wilderland.ovh/_media/blog:2026:03:wilderland-irc.png?w=800&amp;amp;tok=1124fe&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/ngircd/ngircd&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/ngircd/ngircd&quot; rel=&quot;ugc nofollow&quot;&gt;ngircd&lt;/a&gt; (Next-Generation &lt;abbr title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/abbr&gt; Daemon) is one of the simplest full-featured &lt;abbr title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/abbr&gt; clients around.
It&amp;#039;s similarly next generation as Star Trek: The Next Generation is to Star Trek though: it has been around for a long time.
It originally came out in 2001 and has been in development ever since, but as the developer is basically just one person it&amp;#039;s not like it was going to get earth-shattering new features.
&lt;/p&gt;

&lt;p&gt;
What it promises is simplicity though: One can get it running incredibly fast, just install it from source or from your distro&amp;#039;s package manager (on debian: &lt;code&gt;apt install ngircd&lt;/code&gt;), fix up the configuration file (add a name, OPer user and password, and so on, the ngircd.conf file is amazingly self-explanatory if you ever looked at any of the other ircds) and you have a running &lt;abbr title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/abbr&gt; server you can connect to with a normal &lt;abbr title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/abbr&gt; client on port 6667.
It&amp;#039;s only slightly more complicated to get SSL running on port 6697 or do things like setting permanent channels.
&lt;/p&gt;

&lt;p&gt;
Multi-server networks are also easy: you need to find another ngircd server willing to peer with you though, then add a few code snippets like this into your configuration:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[Server]
	  Name = example.org
	  Host = example.org
	  Port = 6667
	  MyPassword = supersecret
	  PeerPassword = secretsuper
	  SSLConnect = no&lt;/pre&gt;

&lt;p&gt;
Your peer needs to add exactly the opposite passwords. Then reload ngircd and you have your own &lt;abbr title=&quot;Internet Relay Chat&quot;&gt;IRC&lt;/abbr&gt; network.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Notes&lt;/strong&gt;: do watch out that the nicklength value is the same. That governs how long nicks can be in the network, and if it isn&amp;#039;t the same on all servers it will refuse to connect. Ask me how I know. 
&lt;/p&gt;

&lt;p&gt;
We have a small network running via ngircd. You can connect to it via wilderland.ovh or campaignwiki.org, in both cases ports 6667 or 6697. It&amp;#039;s mostly for ttrpg topics, but most of us are also into weird computer talk.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:irc?do=showtag&amp;amp;tag=irc&quot; class=&quot;wikilink1&quot; title=&quot;tag:irc&quot; rel=&quot;tag&quot;&gt;irc&lt;/a&gt;,
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:chat?do=showtag&amp;amp;tag=chat&quot; class=&quot;wikilink1&quot; title=&quot;tag:chat&quot; rel=&quot;tag&quot;&gt;chat&lt;/a&gt;,
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:ngircd?do=showtag&amp;amp;tag=ngircd&quot; class=&quot;wikilink1&quot; title=&quot;tag:ngircd&quot; rel=&quot;tag&quot;&gt;ngircd&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;!-- cachefile /storage/data/cache/d/dedbb4a3c98db50c1476e2a8cd5c205c.xhtml used --&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 05 Mar 2026 08:45:14 +0000</pubDate>
        </item>
        <item>
            <title>09_tailscale_pi-hole_and_the_raspberry_pi_zero</title>
            <link>http://segfault.wilderland.ovh/blog:2026:03:09_tailscale_pi-hole_and_the_raspberry_pi_zero</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;tailscale_pi-hole_and_the_raspberry_pi_zero&quot;&gt;Tailscale, Pi-Hole, and the Raspberry Pi Zero&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
As many other people do I also have a pihole running on a Raspberry Zero in my network to get around ads and other unwanted &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; requests (one of the most regular things trying to communicate home by the way is Windows on our laptops).
It technically is a RPi Zero W, but I don&amp;#039;t use the wireless function at all, having it connected via a USB-to Ethernet connector instead.
And for the last few years it was working quite dependably, filtering out &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; requests, and even resolving actual requests via unbound. That is, until recently when I installed Tailscale on it. 
Tailscale, if you&amp;#039;re not familiar, is an app that allows you to basically create your own VPN network and assign your devices to it. And it works quite brilliantly when it works.
I originally added it to the pihole machine as a way to start other machines in my network when I was going abroad but my wife stayed home.
And it worked. I was able to do stuff on my home server while I was in Germany, while my wife noticed only that the machines occasionally powered up and down. Oh, and internet became spotty.
Why though?
Well, it turns out tailscale is just a tiny sliver too demanding for unbound to do it&amp;#039;s magic. In my experience whenever I used tailscale for anything all of a sudden &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; resolution with my pihole/unbound combination didn&amp;#039;t work consistently (it started throwing SERVFAILs)
Ok, it might also have been because I updated the Debian to the newest version.
&lt;/p&gt;

&lt;p&gt;
So, what did I do about it?
I could have replaced the pi zero with something beefier, but I do like it&amp;#039;s otherwise VERY low demands.
It also worked if I just switched to external resolvers. So if you have this issue and don&amp;#039;t mind using external &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; servers that always is an option.
Me, I of course made it more complicated: I installed a technitium docker container on my home server. Which to be fair is pretty stupid as that&amp;#039;s basically a full-blown replacement for the pihole in the first place. Technitium is a full &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; server with adblocking capabilities. It&amp;#039;s not sleek enough to run on a zero though, from what I&amp;#039;ve seen it needs at least a Pi 4. It&amp;#039;s barely noticeable on my home server though.
It&amp;#039;s not quite ideal, but at least it works. The issue here is that, as I often work on my home server having it down without a replacement would mean &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; resolution is off in the whole network. So the zero keeps running with pihole and unbound, and while most &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; requests are done by technitium, if that machine is off it instantly goes back to the old pihole/unbound combo.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:pihole?do=showtag&amp;amp;tag=pihole&quot; class=&quot;wikilink1&quot; title=&quot;tag:pihole&quot; rel=&quot;tag&quot;&gt;pihole&lt;/a&gt;,
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:rpi?do=showtag&amp;amp;tag=rpi&quot; class=&quot;wikilink1&quot; title=&quot;tag:rpi&quot; rel=&quot;tag&quot;&gt;rpi&lt;/a&gt;,
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:technitium?do=showtag&amp;amp;tag=technitium&quot; class=&quot;wikilink1&quot; title=&quot;tag:technitium&quot; rel=&quot;tag&quot;&gt;technitium&lt;/a&gt;,
	&lt;a href=&quot;http://segfault.wilderland.ovh/tag:unbound?do=showtag&amp;amp;tag=unbound&quot; class=&quot;wikilink1&quot; title=&quot;tag:unbound&quot; rel=&quot;tag&quot;&gt;unbound&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;!-- cachefile /storage/data/cache/4/4687ef662b6f12aa850dd2e5d6083384.xhtml used --&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 09 Mar 2026 13:00:00 +0000</pubDate>
        </item>
    </channel>
</rss>
