Ich habe einen Anbieter (A), der uns Daten über eine eingehende TCP-Verbindung senden möchte. Leider kann der konsumierende Dienst (B) keine eingehenden TCP-Verbindungen empfangen. Es hat auch keine statische IP, eine weitere Anforderung.
Eine Möglichkeit, dies zu lösen, wäre ein Dienst, der den eingehenden TCP-A-Port mit einem anderen TCP-Port B verbindet, sodass der Verbraucher eine ausgehende Verbindung zu B herstellen kann.
Dies ist kein einzigartiges Problem [1] [2] , und mit socat kann ich etwas sehr nah an das bringen, was ich will:
socat -d -d -d -u TCP4-LISTEN:PORT-A,reuseaddr TCP4-LISTEN:PORT-B,reuseaddr
Dies hat jedoch die folgenden Probleme:
- Wenn B die Verbindung trennt, kann keine erneute Verbindung hergestellt werden. Mit
TCP4-LISTEN:PORT-B,reuseaddr,fork
kann es eine Verbindung herstellen, empfängt jedoch keine Daten. - B kann keine Verbindung herstellen, bevor A eine Verbindung hergestellt hat (überwindbar)
- Es kann nur eine Verbindung hergestellt werden zu
PORT-B
(überwindbar)
Gibt es eine Möglichkeit, den Befehl so anzupassen, dass er "dauerhaft" und widerstandsfähig gegen Fehler wird?