Pull to refresh

5 супер полезных сетевых утилит linux

Reading time3 min
Views30K

Привет! Начинающие devops инженеры часто задают вопрос: что мне поучить, чтобы стать лучше (привет diablo)? Обычно я отвечаю: поучи команды linux. Но в целом посыл обычно ясен, чтобы что-то учить, надо хотя бы знать название утилит. Цель этой статьи и является ознакомление любопытного читателя с интересными сетевыми утилитами которые есть (или легко устанавливаются) в любом дистрибутиве linux. И так начнем!

ip

Утилита управляет интерфейсами, сетевыми устройствами и туннелями. Всем сетевым стеком linux. Например: 

ip addr 

Покажет список всех сетевых адресов. Тоже самое делает утилита ifconfig без параметров. 

ip route 

Покажет таблицу роутинга. Тоже самое сделает команда route

ip link set eth0 up 

Поднимает интерфейс eth0. Это можно также сделать с помощью ifconfig

Так зачем она нужна если все ее команды можно выполнить с помощью других утилит? Дело в том, что во многие компактные дистрибутивы (например Alpine или openwrt) не используют ifconfig, route и другие “большие” утилит. Там оставляют только ip. Вот с помощью нее и придется выполнять все сетевые задачи. 

nc

Полное имя netcat - на него она тоже откликается. Это утилита, позволяет слушать и выполнять TCP и UDP соединении. 

И так что может netcat? 

Открываем одно окно терминала и делаем там nc -l 12345 это будет наш сервер. Отрываем другое окно и пишем в нем nc 127.0.0.1 12345 — это наш клиент. Печатаем там “Hello!” нажимаем enter. В первом окне видим эту фразу. Ура! Мы написали однонаправленный чат.

Эта утилита пригодиться чтобы проверить жив ли сервер и слушает ли от вообще на этом порту? С помощью nc можно переслать файл и даже просканировать порты. Http сервер еще можно написать.

socat 

Это труба, которая позволяет соединить два сокета между собой. Mysql слушает только на local socket а мы хотим на его ходить по tcp. Выглядит это так: socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock 

Конектор к netcat из предыдущего примера: socat - TCP4:127.0.0.1:80 

Если вам нужно перебросить сокет в другое место присмотритесь к socat он вам скорее всего поможет. 

netstat 

Эта утилита показывает текущее состояние сетевого стека. Она даст вам ответ на вопросы: что у меня там на порту 9081 висит? netstat -nltp Что с моими tcp соединениями и кто прямо сейчас ко мне подключен? netstat -atp 

У этой утилиты есть младший (или старший по возможностям) брат ss посмотрите на него тоже может он понравиться больше.

curl

Утилита для передачи файлов. Так написано в ее описании. Чем же она замечательна? Она умеет кучу протоколов: DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. В каждом протоколе она знает множество версий, например HTTP она может до версии 2. Умеет подставлять хидера, куки, ходить по SSL, использовать proxy разных видов. Можно отлаживать http(s) соединение с помощью -v. Примеры: 

curl http://artscene.textfiles.com/asciiart/unicorn 

Единорог! 

curl -v http://127.0.0.1:12345 

Соединяемся с сервером из примера netcat. В консоле сервера увидим http запрос. После этого все остановиться curl будет ждать ответ. И если вы руками его введете покажет его. 

Заключение 

Автор уверен, если вы изучите эти утилиты вы не только развлечетесь, но и узнаете много нового. Я вот, например узнал адрес, где можно посмотреть на единорога. В общем спасибо за внимание если понравилось лайк, шер. 

Tags:
Hubs:
Total votes 35: ↑23 and ↓12+15
Comments26

Articles