Ho un provider (A) che vuole inviarci dati tramite una connessione TCP in entrata. Sfortunatamente il servizio di consumo (B) non può ricevere connessioni TCP in entrata. Inoltre non ha un IP statico, un altro requisito.
Un modo per risolvere questo sarebbe un servizio che collega la porta TCP A in entrata a un'altra porta TCP B, in modo che il consumatore possa stabilire una connessione in uscita a B.
Questo non è un problema unico [1] [2] e con socat posso fare qualcosa di molto vicino a ciò che voglio:
socat -d -d -d -u TCP4-LISTEN:PORT-A,reuseaddr TCP4-LISTEN:PORT-B,reuseaddr
Tuttavia, ciò presenta i seguenti problemi:
- Se B si disconnette, non può riconnettersi. Con
TCP4-LISTEN:PORT-B,reuseaddr,fork
, può connettersi ma non riceve dati. - B non può connettersi prima che A abbia stabilito una connessione (superabile)
- È possibile stabilire solo una connessione a
PORT-B
(superabile)
C'è un modo per regolare il comando in modo che diventi "permamento" e resistente ai guasti?