gitlab und rinetd - Verbindungsprobleme

Seit Jahren verwende ich den Linux-Dienst rinetd auf meinem Proxmox-Server, um den Port 22 unkompliziert an einen LXC mit einer gitlab-Instanz durchzureichen. Diese Kombination hat bis vor einiger Zeit klaglos funktioniert, bis rinetd ständig derart hängen blieb, dass git remote keine Verbindung mehr zur der gitlab-Instanz aufbauen konnte.

Erst ein Neustart des rinetd-Services behob das Problem. Aber auch nicht wirklich, einige Stunden später stellte sich das gleiche Problem wieder ein. Scheinbar hat sich bei gitlab über die vielen Updates auf die jeweils neueste Version ein diffiziles Problem eingeschlichen.

Um das Problem einzugrenzen, habe ich die Port-Durchreichung testweise mit

socat -T30 TCP4-LISTEN:22,bind=<PUBLIC_IP>,fork TCP4:192.168.10.103:22

realisiert. Aber auch socat zeigte nach einiger Zeit das gleiche Verhalten in Kombination mit gitlab. Erst mit der Ergänzung des Kommandos um ein explizites Timeout von 30 Sekunden schuf dieses lästige Problem aus der Welt.

Da rinetd ebenfalls mit einer Timeout-Option konfiguriert werden kann, konnte dieser Trick auch dort angewendet werden, um das Problem endgültig zu beheben.

# rinetd 
<PUBLIC_IP>      22    192.168.10.103        22  [timeout=30]