TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #905 1.4K
👨‍💻 socat: инструмент для диагностики портов, сокетов и туннелей

nc знают почти все. Но если нужно не просто открыть порт или проверить соединение, а быстро связать между собой TCP, UDP, Unix socket, файл, stdin/stdout или сделать простой туннель тут очень выручает socat. Название расшифровывается примерно как SOcket CAT. По сути, это утилита, которая умеет соединять два конца передачи данных. Этими концами могут быть:

TCP-порт;
UDP-порт;
Unix socket;
файл;
pipe;
stdin/stdout;
псевдотерминал;
TLS-соединение.

▪️ Установка:


apt install socat


▪️ Самый простой пример - поднять TCP listener:


socat TCP-LISTEN:8080,fork STDOUT


Теперь все, что прилетает на порт 8080, будет выводиться в терминал.

Можно сделать простой echo-сервер:


socat TCP-LISTEN:8080,fork EXEC:/bin/cat


Подключаемся:


nc 127.0.0.1 8080


И все, что отправляем, возвращается обратно.

▪️ Очень частый сценарий - проброс порта:


socat TCP-LISTEN:8080,fork TCP:10.10.20.15:80


Теперь локальный порт 8080 будет проксировать трафик на 10.10.20.15:80. Это удобно, когда нужно быстро проверить сервис, временно открыть доступ или обойти неудобную сетевую схему без настройки полноценного reverse proxy.

▪️ socat также отлично работает с Unix socket. Например, если приложение слушает только Unix socket, можно временно вывести его в TCP:


socat TCP-LISTEN:9000,fork UNIX-CONNECT:/run/app/app.sock


И наоборот - TCP в Unix socket:


socat UNIX-LISTEN:/tmp/test.sock,fork TCP:127.0.0.1:8080


▪️ Еще полезный пример - тест UDP:


socat - UDP-LISTEN:5353,fork


И отправка UDP-пакета:


echo "test" | socat - UDP:127.0.0.1:5353


socat - это не замена нормальному reverse proxy, firewall, VPN или service mesh. Но для быстрой диагностики и временного связывания разных типов соединений он невероятно удобен. Когда нужно срочно понять, что происходит с портом, сокетом или сетевым потоком, socat часто оказывается тем самым инструментом, который решает задачу одной командой.

Главное - не забыть потом убрать временный listener.

#linux #socat

🧑‍💻 NetworkAdmin
  • 👍 7
  • ❤ 2
More from @networkadminru
  1. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  2. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  3. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
  4. Sep 23, 2026💻 Как жестко перезагрузить linux, когда обычный reboot уже не помогает Иногда сервер зави…
  5. Sep 22, 2026🌚 watch: простая динамическая диагностика в терминале Иногда не нужен отдельный мониторин…
  6. Sep 21, 2026👌 Firewall default deny: как внедрять без внезапного отрезания доступа Идея простая: разр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →