Communityoplossing

CasaOS IPv4 werkt niet: controleer IPv6- en Docker-bindingen

A CasaOS user on Debian 12 in GCP saw port 80 reported as tcp6 and then broke web access after disabling IPv6 before installation.

Schakel IPv6 niet uit alleen omdat ss laat zien dat een CasaOS- of Docker-service luistert op :::80. Op Linux kan een IPv6-wildcardlistener ook IPv4 accepteren, afhankelijk van de socketinstellingen. Docker publiceert poorten normaal gesproken naar IPv4 wanneer er geen hostadres is opgegeven.

De oorspronkelijke situatie betrof CasaOS op Debian 12 in GCP, niet ZimaOS. De juiste diagnose is om IPv4 expliciet te testen, de CasaOS-gateway en Docker-poortkoppelingen te controleren en de cloudfirewall te controleren voordat je GRUB aanpast of IPv6 globaal uitschakelt.

Test IPv4 eerst rechtstreeks

curl -4 -v http://127.0.0.1:80/
curl -4 -v http://SERVER_IPV4:80/
ss -ltnp | grep ':80'

Als lokale IPv4 werkt maar externe IPv4 niet, ligt het probleem waarschijnlijk bij de host- of cloudfirewall of bij de routing, en niet bij de binding van CasaOS.

Poortpublicatie van Docker omvat normaal gesproken IPv4

De huidige handleiding voor poortpublicatie van Docker vermeldt dat normaal gepubliceerde poorten bereikbaar zijn via hostadreskoppelingen; expliciet IPv6-only gedrag vereist een andere configuratie.

Controleer CasaOS zelf

systemctl status casaos
journalctl -u casaos --no-pager -n 100
ss -ltnp | grep -E ':80|casaos'

Het huidige CasaOS-installatieprogramma vermeldt nog steeds IPv4-NIC-adressen bij het afdrukken van de dashboard-URL. Een gezonde installatie is dus niet ontworpen om uitsluitend via IPv6 toegankelijk te zijn.

Controleer de GCP-firewall

Controleer of de VM een IPv4-adres en route heeft en of er een inkomende regel bestaat voor de gekozen webpoort van CasaOS. Een cloudfirewall kan poort 80 blokkeren, zelfs wanneer de service correct luistert.

Schakel IPv6 niet globaal uit als eerste oplossing

Oudere CasaOS-componenten verwachtten historisch gezien dat /proc/net/tcp6 bestond. Het uitschakelen van IPv6 heeft in sommige builds problemen met appbeheer veroorzaakt. Het verwijderen van IPv6 kan dus een tweede probleem creëren zonder het eerste op te lossen.

Als je een IPv4-only Docker-binding nodig hebt

ports:
  - "0.0.0.0:8080:80"

Gebruik een expliciete IPv4-binding alleen wanneer je die Compose-definitie beheert en de gevolgen voor de blootstelling begrijpt.

Controleer de webpoort van CasaOS

Het installatieprogramma kan een andere beschikbare poort kiezen als poort 80 al bezet is. Controleer de daadwerkelijke HTTP-poort van CasaOS voordat je ervan uitgaat dat de service is mislukt.

De Docker-netwerkgids behandelt dezelfde netwerkbasisprincipes.

Controleer sysctl pas nadat je de daadwerkelijke connectiviteit hebt getest

Als je nog steeds dual-stack-socketgedrag vermoedt, controleer dan sysctl net.ipv6.bindv6only. Een waarde van 0 staat toe dat veel IPv6-wildcardsockets IPv4-gemapte verbindingen accepteren; een waarde van 1 maakt ze IPv6-only. Wijzig dit niet systeembreed tenzij je begrijpt welke services daardoor worden beïnvloed.

Controleer de daadwerkelijk gepubliceerde Docker-adressen

docker ps --format 'table {{.Names}}	{{.Ports}}'
docker inspect CONTAINER --format '{{json .NetworkSettings.Ports}}'

Hiermee zie je of Docker een IPv4-koppeling zoals 0.0.0.0:PORT, een IPv6-koppeling of beide heeft aangemaakt. Dit is betrouwbaarder dan gedrag afleiden uit één regel in de proceslijst.

Houd rekening met twee firewalllagen in GCP

Een Debian-host kan eigen nftables-/iptables-regels hebben, terwijl GCP afzonderlijk inkomend verkeer via de VPC-firewall beheert. Een service kan lokaal correct werken maar extern onbereikbaar zijn omdat een van beide lagen de poort blokkeert.

Veelgestelde vragen

Betekent :::80 altijd dat het alleen IPv6 is?

Nee. Controleer dit met curl -4 voordat je die conclusie trekt.

Moet ik IPv6 in GRUB uitschakelen?

Niet als eerste stap bij het oplossen van problemen. Dit kan componenten verstoren die IPv6-kernelinterfaces verwachten.

Waarom werkt localhost wel, maar openbare IPv4 niet?

Controleer de cloudfirewall, beveiligingsgroep, route en hostfirewall.

Is dit een ZimaOS-probleem?

De oorspronkelijke thread gaat over CasaOS dat op Debian 12 is geïnstalleerd, niet over ZimaOS.