netcat (nc) знают многие. Но когда задачи становятся сложнее - нужен SSL, нужен форк на несколько соединений, нужна привязка к конкретному интерфейсу - nc пасует. Здесь на сцену выходит socat. Это как прокаченный nc. Он умеет соединять что угодно с чем угодно: файл с сокетом, TCP с SSL, Unix-сокет с UDP, и даже выполнять команду при подключении. ➤ Вариант 1 (Проброс трафика с одного порта на другой): классический use case для обхода фаерволов.# Слушаем на 8080, пересылаем на внутренний сервер 3000 socat TCP-LISTEN:8080,fork TCP:localhost:3000 # fork — позволяет обрабатывать несколько соединений ➤ Вариант 2 (Туннель с SSL-терминацией): нужен HTTPS-сервер, а поднимать nginx ради одного эндпоинта — жирно.# Принимаем HTTPS на 443, внутри отдаём на HTTP 8080 socat OPENSSL-LISTEN:443,cert=server.pem,verify=0,fork TCP:localhost:8080 ➤ Вариант 3 (Работа с Unix-сокетами): контейнеры и демоны часто общаются через сокеты, отлаживать их неудобно.# Подключиться к сокету Docker и отправит
socat - nc для сетей, который вы заслужили
13 апреля13 апр
2 мин