ich verzweifle gerade an folgendem Setup und hoffe auf eure Erfahrungen:
Hardware/Virtualisierung: Hetzner AX41‑NVMe mit Proxmox
Netz: einzige physische NIC → vmbr0 (WAN), vmbr1 (LAN)
VMs:
pfSense (WAN: xxx.xxx.xxx.xxx/26)
Docker‑VM im LAN (10.10.0.3/24)
Problem:
Jeder docker pull ghcr.io/… in der Docker‑VM läuft ins Leere (Client.Timeout exceeded while awaiting headers). Direkt an der Public‑IP (in Docker‑VM testweise von vmbr0 → xxx.xxx.xxx.xxx) funktioniert der Pull einwandfrei.
Bisher ausprobiert:
MTU/PMTUD geprüft (Ping mit DF=1, 1500 Bytes klappt)
Hardware‑Offloading (TSO, LRO, checksum) in pfSense deaktiviert
MSS‑Clamp als Floating‑Rule (MSS=1412)
Hybrid/Manual Outbound‑NAT mit Static‑Port für LAN (10.10.0.0/24)
„Scrub“/Normalize in pfSense deaktiviert
Docker‑Daemon auf HTTP/1.1 umgestellt (GODEBUG=http2client=0)
Policy‑Routing auf vmbr1 für 10.10.0.2 → gw 10.10.0.1
Neue pfSense‑Installation (ohne weitere Packages) – gleicher Fehler
Direkter Pull von einem anderen Host (läuft) vs. hinter pfSense (hängt)
Logs/Debug:
curl -I https://ghcr.io/v2/ auf Docker‑VM → sofort HTTP/2 405
tcpdump auf vmbr1/vmbr0 zeigt SYN/ACKs, aber Docker‑Daemon stoppt beim Token‑Request
Keine Firewall‑Drops in pfSense-Logs
Frage:
Habt ihr noch eine Idee, warum GHCR‑Pulls nur hinter pfSense abbrechen? Möglicherweise ein NAT‑/State‑Edge‑Case, den ich übersehen habe? Oder ein spezieller PfSense‑Bug mit Docker‑HTTP2/Registry‑Traffic? Bin für jeden Tipp dankbar!
Moin, sehr merkwürdiger Fehler. Hab ich bis jetzt noch nie gehabt. Und ich nutze das selber genauso wie du. Kommst du denn sonst mit der Kiste ins Internet? Also Ping, Updates vom OS etc.?
Ja, das ist ja das Kuriose: Ich habe alle Updates eingespielt und auch schon andere Betriebssysteme ausprobiert – überall dasselbe.
Noch kurioser ist, dass ich die URL anpingen kann und sie reagiert.
Hinter der pfSense läuft bei mir auch noch ein NethServer 8 mit Docker im Backend, und auch der zeigt das gleiche Verhalten.
Alles bis auf Docker funktioniert einwandfrei und ist von außen zugänglich.
Hänge ich die Maschine testweise direkt an die öffentliche IP, funktioniert alles bestens.
Habe ich auch gedacht, aber Werkseinstellungen der pfSense haben auch keinen Effekt. Ich verwende die DNS Server von Hetzner, weil andere gar nicht tun. Wenn ich da z.B. 1.1.1.1 oder 8.8.8.8 verwende bekomme ich garkeine auflösung. Ich schau ich mir die Tage mal das Docker Forum an. Habe jetzt vorerst mal IPfire eingestzt. Damit gehts perfekt, leider kann die einige sachen wie wireguard etc. nicht.
Was die DNS Server an geht, habe ich irgendwo gelesen das Hetzner keine anderen zu lässt. um hier gewisse Angriffe zu verhindern. Im moment ist mir ein bisl die Lust vergangen, da ich mich schon ne Weile damit rum ärgere (mit IpFire läufts jetzt ohne Probleme) aber wissen möchte ich schon was dahinter steckt. Ich glaube ich werde das gleiche noch mal bei mir lokal nachstellen wenn ich Zeit habe, Aber ist schon eine kuriose Geschichte…
Ich könnte das mal testen, ob andere DNS-Server gehen. Hab bei mir aber auch die von Hetzner drin.
Es gehen aber auch andere, hab gerade ein dig gemacht mit Google 8.8.8.8 und das geht auch.