Saya memiliki penyedia (A) yang ingin mengirimkan data kepada kami melalui koneksi TCP yang masuk. Sayangnya layanan yang dikonsumsi (B) tidak dapat menerima koneksi TCP masuk. Juga tidak memiliki IP statis, persyaratan lain.
Salah satu cara untuk menyelesaikannya adalah layanan yang menghubungkan port TCP A yang masuk ke port TCP B lainnya, sehingga konsumen dapat membuat koneksi outbound ke B.
Ini bukan masalah unik [1] [2] , dan dengan socat saya dapat membuat sesuatu yang sangat dekat dengan apa yang saya inginkan:
socat -d -d -d -u TCP4-LISTEN:PORT-A,reuseaddr TCP4-LISTEN:PORT-B,reuseaddr
Namun, ini memiliki masalah berikut:
- Jika B terputus, ia tidak dapat terhubung kembali. Dengan
TCP4-LISTEN:PORT-B,reuseaddr,fork
, itu dapat terhubung tetapi tidak menerima data. - B tidak dapat terhubung sebelum A membuat koneksi (dapat diatasi)
- Hanya satu koneksi yang dapat dibuat
PORT-B
(dapat diatasi)
Apakah ada cara untuk menyesuaikan perintah sehingga menjadi "permament" dan tahan terhadap kegagalan?