![10 найкращих програм для бігу для Android та iOS у 2022 році](/f/92b5e4f22e78601f39b418eeced42bfb.jpg?width=100&height=100)
Sockstat - це універсальна утиліта командного рядка, яка використовується для відображення мережевих і системних відкритих розеток у FreeBSD. В основному, команда sockstat за замовчуванням встановлена у FreeBSD і зазвичай використовується для відображення назви процесів, які відкрили певний мережевий порт у системі FreeBSD.
Однак, sockstat також може перерахувати відкриті сокети на основі версії протоколу (обидві версії IP), стану з'єднання та портів, на яких зв'язується демон або програма та прослуховує їх.
Читайте також: 20 Корисні приклади команд "netstat" для перевірки мережевих підключень
Він також може відображати міжпроцесні роз'єми зв'язку, зазвичай відомі як доменні сокети Unix або IPC. Команда Sockstat поєднана з фільтр grep або через трубопровід утиліта awk виявляється потужним інструментом для стека локальних мереж.
Він може зменшити результати для відкритого з'єднання на основі користувача, якому належить сокет, дескриптора файлу мережевого сокета або PID процесу, який відкрив сокет.
У цьому посібнику ми перерахуємо деякі поширені приклади використання, але також дуже потужні, утиліти мережевого командного рядка sockstat у FreeBSD.
Просто виконуючись без будь -яких параметрів або перемикачів, команда sockstat відображатиме всі відкриті сокети у системі FreeBSD, як показано на скріншоті нижче.
# sockstat.
Значення, що відображаються на виході sockstat, описуються як:
“??”
позначення означає, що кінцеву точку сокета неможливо розпізнати або встановити.Виконано за допомогою -л
flag, команда sockstat покаже всі роз'єми для прослуховування, відкриті в стеку мереж, і все відкриті розетки домену unix або іменовані канали, які беруть участь у якійсь локальній обробці даних у системи.
# sockstat -l.
Для відображення всіх відкритих розеток для IPv4 лише за протоколом, видайте команду з -4
прапор, як запропоновано у прикладі нижче.
# sockstat -4.
Подібно до версії IPv4, ви також можете відобразити відкриті мережеві розетки для IPv6 тільки, видавши команду, як показано нижче.
# sockstat -6.
Для того, щоб відображати мережеві розетки лише на основі зазначеного мережевого протоколу, наприклад TCP або UDP, використовувати -П
прапорцем, за яким слід назва аргументу протоколу.
Імена протоколів можна дізнатися, переглянувши вміст файлу /etc/protocols файл. Наразі інструмент sockstat не підтримує протокол ICMP.
# sockstat -P tcp.
# sockstat -P udp.
З'єднайте обидва протоколи.
# sockstat –P tcp, udp.
Якщо ви хочете відобразити всі відкриті сокети TCP або UDP IP на основі номера локального або віддаленого порту, використовуйте наведені нижче прапори команд та синтаксис, як показано на скріншоті нижче.
# sockstat -P tcp -p 443 [Показати порт TCP HTTPS] # sockstat -P udp -p 53 [Показати порт UDP DNS] # sockstat -P tcp -p 443,53,80,21 [Показати як TCP, так і UDP]
Щоб відобразити всі відкриті та підключені розетки, використовуйте -в
прапор. Як показано в наведених нижче зразках, ви можете перелічити всі HTTPS підключені розетки або всі підключені до TCP сокети, видаючи команди.
# sockstat -P tcp -p 443 -c. # sockstat -P tcp -c.
Щоб перелічити всі відкриті сокети TCP у стані прослуховування, додайте -л
та -s
прапори, як показано в прикладі нижче. Будучи протоколом без з'єднання, UDP не зберігає ніякої інформації про стан з'єднання.
Розкриті сокети UDP не можна відобразити за допомогою їх стану, оскільки протокол udp використовує дейтаграми для надсилання/отримання даних і не має вбудованого механізму для визначення стану з'єднання.
# sockstat -46 -l -s.
Розетки домену Unix, а також інші форми локальної міжпроцесної комунікації, такі як іменовані канали, можна відобразити за допомогою команди sockstat за допомогою -у
прапор, як показано на зображенні нижче.
# sockstat -u.
Вихід команди Sockstat можна відфільтрувати утиліта grep для відображення списку портів, відкритих певною програмою або командою.
Припустимо, ви хочете перерахувати всі сокети, пов’язані з Nginx веб -сервер, ви можете виконати таку команду для виконання поставленого завдання.
# sockstat -46 | grep nginx.
Щоб відобразити лише підключені сокети, пов'язані з веб -сервером Nginx, виконайте таку команду.
# sockstat -46 -c | grep nginx.
Ви можете перерахувати всі підключені розетки, пов’язані з HTTPS протокол поряд зі станом кожного з'єднання, виконавши команду нижче.
# sockstat -46 -s -P TCP -p 443 -c
Щоб перелічити всі віддалені сокети, пов'язані з протоколом HTTP, можна виконати одну з наведених нижче комбінацій команд.
# sockstat -46 -c | чапля '80 | 443 '| awk '{print $ 7}' | uniq -c | сортувати -nr. # sockstat -46 -c -p 80,443 | grep -v АДРЕСА | awk '{друк $ 7}' | uniq -c | сортувати -nr.
Якщо ви хочете дізнатися, скільки HTTP -з'єднань запитує кожна віддалена IP -адреса, виконайте наведену нижче команду. Ця команда може бути дуже корисною, якщо ви хочете визначити, чи ваш веб -сервер піддається якійсь DDOS -атаці. У разі підозр слід дослідити IP -адреси з найвищою частотою запитів.
# sockstat -46 -c | чапля '80 | 443 '| awk '{print $ 7}' | вирізати -d: -f1 | uniq -c | сортувати – nr.
Якщо ви налаштували кешування та пересилання DNS -сервера у вашому приміщенні для обслуговування внутрішніх клієнтів через транспортний протокол TCP, і ви хочете відобразити список усіх сокетів
відкритий резольвером разом із станом кожного з'єднання сокета, виконайте таку команду.
# sockstat -46 -P tcp –p 53 -s.
Якщо в мережі немає трафіку DNS, ви можете вручну викликати запит DNS до сокета TCP з консолі локальної машини, виконавши наступне: команда dig. Після цього виконайте наведену вище команду, щоб перерахувати всі сокети резольвера.
# dig +tcp www.domain.com @127.0.0.1.
Це все! Разом з netstat та команда lsof лінійні утиліти, командний рядок sockstat - це потужна утиліта, яка використовується для отримання інформації про мережу та усунення несправностей у багатьох аспектах мережевого стека FreeBSD та процесів та послуг, пов’язаних із мережею.
Аналог команди FreeBSD sockstat в Linux представлений netstat або нещодавно ss команду. Вірте чи ні, але на основі утиліти sockstat ви можете знайти подібну програму, розроблену для ОС Android під назвою SockStat - простий графічний інтерфейс Netstat.