When enabling pi-holes DHCP, after leases expired it seems to have broken my minecraft server and the linux vm I run on my phone.
Expected Behaviour:
After pi-hole takes over leases from my routers dhcp I expect networking in all areas to continue running smoothly. Please include as much detail relevant to your system/install as possible including, but not limited to: (Obligatory neofetch)
root@sylph:/etc/dhcp# neofetch --off
root@sylph.home
---------------
OS: Debian GNU/Linux 12 (bookworm) aarch64
Host: Raspberry Pi 5 Model B Rev 1.0
Kernel: 6.6.74+rpt-rpi-2712
Uptime: 18 days, 1 hour, 28 mins
Packages: 1905 (dpkg)
Shell: bash 5.2.15
Resolution: 1920x1080
CPU: (4) @ 2.400GHz
Memory: 580MiB / 8048MiB
Actual Behaviour:
After my dhcp leases were taken over by pi-hole everything works as anticipated except for my minecraft server which runs on a physical host called Ataribox, and the shell I run on my iphone called ishell can no longer do package updates, but has no problem doing anything else.
On Ataribox, here is some necessary information:
[root@ataribox ~]# neofetch --off
root@ataribox
-------------
OS: Rocky Linux 9.5 (Blue Onyx) x86_64
Host: HP EliteDesk 800 G2 DM 35W
Kernel: 5.14.0-503.35.1.el9_5.x86_64
Uptime: 6 days, 23 hours, 9 mins
Packages: 978 (rpm)
Shell: bash 5.1.8
Resolution: 1920x1080
CPU: Intel i5-6500T (4) @ 3.100GHz
GPU: Intel HD Graphics 530
Memory: 6350MiB / 7565MiB
[root@ataribox ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search lan
nameserver 192.168.1.59 (this is my pi-hole)
nameserver 2605:a601:800c:2200:c641:1eff:fe88:652e (this is my pi-hole)
Minecraft Errors from ataribox
These errors were not present when the pi-hole was only doing dns. After it picked up on dhcp is where this became a problem. Just to be clear for anyone wondering, there isn't and has never been an instance where two dhcp servers are running at the same time. It seems the server can no longer do anything related to networking at all. Normally, I wouldn't care. But because it can't check in with microsofts authentication servers, nobody can join when the server is in online mode. When it tries to do anything to do with networking this is the error I get:
[12:03:34] [Forge Version Check/WARN] [ne.mi.fm.VersionChecker/]: Failed to process update information
java.net.http.HttpConnectTimeoutException: HTTP connect timed out
at jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:945) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133) ~[java.net.http:?] {}
at net.minecraftforge.fml.VersionChecker$1.openUrlString(VersionChecker.java:139) ~[fmlcore-1.20.1-47.3.6.jar%23632!/:?] {}
at net.minecraftforge.fml.VersionChecker$1.process(VersionChecker.java:177) ~[fmlcore-1.20.1-47.3.6.jar%23632!/:?] {}
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {re:mixin}
at net.minecraftforge.fml.VersionChecker$1.run(VersionChecker.java:114) ~[fmlcore-1.20.1-47.3.6.jar%23632!/:?] {}
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
at jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:68) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1780) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1378) ~[java.net.http:?] {}
Caused by: java.net.ConnectException: HTTP connect timed out
at jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:69) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1780) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1378) ~[java.net.http:?] {}
And it just does this over and over again with each thing it tries to check.
Here's another:
[12:07:21] [Forge Version Check/INFO] [ne.mi.fm.VersionChecker/]: [puzzleslib] Starting version check at https://raw.githubusercontent.com/Fuzss/modresources/main/update/puzzleslib.json
[12:07:36] [Forge Version Check/WARN] [ne.mi.fm.VersionChecker/]: Failed to process update information
java.net.http.HttpConnectTimeoutException: HTTP connect timed out
at jdk.internal.net.http.HttpClientImpl.send(HttpClientImpl.java:945) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientFacade.send(HttpClientFacade.java:133) ~[java.net.http:?] {}
at net.minecraftforge.fml.VersionChecker$1.openUrlString(VersionChecker.java:139) ~[fmlcore-1.20.1-47.3.6.jar%23632!/:?] {}
at net.minecraftforge.fml.VersionChecker$1.process(VersionChecker.java:177) ~[fmlcore-1.20.1-47.3.6.jar%23632!/:?] {}
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?] {re:mixin}
at net.minecraftforge.fml.VersionChecker$1.run(VersionChecker.java:114) ~[fmlcore-1.20.1-47.3.6.jar%23632!/:?] {}
Caused by: java.net.http.HttpConnectTimeoutException: HTTP connect timed out
at jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:68) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1780) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1378) ~[java.net.http:?] {}
Caused by: java.net.ConnectException: HTTP connect timed out
at jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:69) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1780) ~[java.net.http:?] {}
at jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1378) ~[java.net.http:?] {}
Now, if I try to resolve these things outside of the minecraft server it has no problem:
[carson@ataribox ProdigiumServer]$ curl -v https://raw.githubusercontent.com/Fuzss/modresources/main/update/puzzleslib.json
* Trying 2606:50c0:8001::154:443...
* Trying 185.199.111.133:443...
* Connected to raw.githubusercontent.com (185.199.111.133) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Unknown (23):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.2 (IN), TLS header, Unknown (23):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS header, Unknown (23):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.2 (IN), TLS header, Unknown (23):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.2 (OUT), TLS header, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS header, Unknown (23):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=*.github.io
* start date: Mar 7 00:00:00 2025 GMT
* expire date: Mar 7 23:59:59 2026 GMT
* subjectAltName: host "raw.githubusercontent.com" matched cert's "*.githubusercontent.com"
* issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* TLSv1.2 (OUT), TLS header, Unknown (23):
* TLSv1.2 (OUT), TLS header, Unknown (23):
* TLSv1.2 (OUT), TLS header, Unknown (23):
* Using Stream ID: 1 (easy handle 0x560519bf2660)
* TLSv1.2 (OUT), TLS header, Unknown (23):
> GET /Fuzss/modresources/main/update/puzzleslib.json HTTP/2
> Host: raw.githubusercontent.com
> user-agent: curl/7.76.1
> accept: */*
>
* TLSv1.2 (IN), TLS header, Unknown (23):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.2 (IN), TLS header, Unknown (23):
* TLSv1.2 (OUT), TLS header, Unknown (23):
* TLSv1.2 (IN), TLS header, Unknown (23):
< HTTP/2 200
< cache-control: max-age=300
< content-security-policy: default-src 'none'; style-src 'unsafe-inline'; sandbox
< content-type: text/plain; charset=utf-8
< etag: "467092d3c658d3e12473f13aa4dd01976c824d9d85d313c69fa8afa6c394ab24"
< strict-transport-security: max-age=31536000
< x-content-type-options: nosniff
< x-frame-options: deny
< x-xss-protection: 1; mode=block
< x-github-request-id: 8874:A1AF8:B53E80:F64EF1:67FBF925
< accept-ranges: bytes
< date: Sun, 13 Apr 2025 18:09:25 GMT
< via: 1.1 varnish
< x-served-by: cache-bur-kbur8200055-BUR
< x-cache: HIT
< x-cache-hits: 0
< x-timer: S1744567765.420691,VS0,VE155
< vary: Authorization,Accept-Encoding,Origin
< access-control-allow-origin: *
< cross-origin-resource-policy: cross-origin
< x-fastly-request-id: 8414c0d57eb890d5bdbbd00af16c9fc02e50da23
< expires: Sun, 13 Apr 2025 18:14:25 GMT
< source-age: 0
< content-length: 1657
<
* TLSv1.2 (IN), TLS header, Unknown (23):
{
"homepage": "https://www.curseforge.com/minecraft/mc-mods/puzzles-lib",
"promos": {
"1.16.2-latest": "1.0.15",
"1.16.2-recommended": "1.0.15",
"1.16.3-latest": "1.0.15",
"1.16.3-recommended": "1.0.15",
"1.16.4-latest": "1.0.15",
"1.16.4-recommended": "1.0.15",
"1.16.5-latest": "1.0.15",
"1.16.5-recommended": "1.0.15",
"1.17.1-latest": "2.0.2",
"1.17.1-recommended": "2.0.2",
"1.18-latest": "3.2.1",
"1.18-recommended": "3.2.1",
"1.18.1-latest": "3.2.1",
"1.18.1-recommended": "3.2.1",
"1.18.2-latest": "3.5.10",
"1.18.2-recommended": "3.5.10",
"1.19-latest": "4.0.18",
"1.19-recommended": "4.0.18",
"1.19.1-latest": "4.2.4",
"1.19.1-recommended": "4.2.4",
"1.19.2-latest": "4.4.3",
"1.19.2-recommended": "4.4.3",
"1.19.3-latest": "5.0.33",
"1.19.3-recommended": "5.0.33",
"1.19.4-latest": "6.0.11",
"1.19.4-recommended": "6.0.11",
"1.20-latest": "7.0.9",
"1.20-recommended": "7.0.9",
"1.20.1-latest": "8.1.32",
"1.20.1-recommended": "8.1.32",
"1.20.4-latest": "20.4.52",
"1.20.4-recommended": "20.4.52",
"1.21-latest": "21.0.28",
"1.21-recommended": "21.0.28",
* TLSv1.2 (IN), TLS header, Unknown (23):
"1.21.1-latest": "21.1.33",
"1.21.1-recommended": "21.1.33",
"1.21.3-latest": "21.3.21",
"1.21.3-recommended": "21.3.21",
"1.21.4-latest": "21.4.13",
"1.21.4-recommended": "21.4.13",
"1.21.5-latest": "21.5.4",
"1.21.5-recommended": "21.5.4"
}
* Connection #0 to host raw.githubusercontent.com left intact
}
[carson@ataribox ProdigiumServer]$ nslookup https://raw.githubusercontent.com
Server: 192.168.1.59
Address: 192.168.1.59#53
Non-authoritative answer:
Name: https://raw.githubusercontent.com
Address: 185.199.110.133
Name: https://raw.githubusercontent.com
Address: 185.199.109.133
Name: https://raw.githubusercontent.com
Address: 185.199.108.133
Name: https://raw.githubusercontent.com
Address: 185.199.111.133
iSH not updating.
This one is bizarre to me too. Certainly, like with the minecraft server, this is a symptom of an underlying problem that is most likely to do with user error, but it boggles my mind as to what could be causing these things. I have an app on my phone called iSH which is supposedly a full linux VM running a shelll.
So in this particular example, things hang for a while and don't error. But, it's the hanging for an extended period of time that's odd to me here, also before hand there was an error with doing this same thing in recent:
localhost:~# apk update
fetch http://apk.ish.app/v3.14-2023-05-19/main/x86/APKINDEX.tar.gz
fetch http://apk.ish.app/v3.14-2023-05-19/community/x86/APKINDEX.tar.gz
v3.14.10-42-gd8ce7b89082 [http://apk.ish.app/v3.14-2023-05-19/main]
v3.14.10-42-gd8ce7b89082 [http://apk.ish.app/v3.14-2023-05-19/community]
OK: 14621 distinct packages available
localhost:~# apk upgrade
OK: 198 MiB in 51 packages
localhost:~# cat /etc/resolv.conf
search lan
nameserver 2605:a601:800c:2200:c641:1eff:fe88:652e
nameserver 192.168.1.59
Conclusion
Anyways, thank you for your time in looking at this, hopefully someone sees something goofy I have setup in my settings or something. When all is said and done I need to get the minecraft server back up and running, it had no problems until the pi-hole took over dhcp.