- Найти все компьютеры в сети linux
- Найти все компьютеры в сети linux
- Как найти все устройства, подключенные к локальной сети
- Поиск устройств в сети с помощью командной строки Linux
- Установите nmap
- Узнайте диапазон адресов сети
- Просканируйте устройства, подключенные к сети
- Отобразить список компьютеров в локальной сети в Linux
- 10 ответов
- Способ № 1.
- Путь № 2. Я знаю, что это работает, но я не могу сказать, правильно ли это сделать.
- 7 сетевых Linux-команд, о которых стоит знать системным администраторам
- Команда ip
- Команда ifconfig
- Команда mtr
- Команда tcpdump
- ▍ Захват трафика, идущего к некоему хосту и от него
- ▍ Захват трафика, идущего в некую сеть и из неё
- ▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
- Команда netstat
- Команда nslookup
- Команда ping
- ▍ Destination Host Unreachable
- ▍ Request timed out
- ▍ Unknown host/Ping Request Could Not Find Host
- Итоги
Найти все компьютеры в сети linux
Иногда просто необходимо сделать сканирование всей сети инайти в ней все активные компьютеры. В Linux есть несколько методов, как это можно сделать.
Допустим, есть сеть 10.153.0.0/24. Поиск активных хостов возможен через следующую команду NMAP:
Starting Nmap 5.51 ( http://nmap.org ) at 2017-07-18 09:19 MSK
Nmap scan report for 10.153.168.1
Nmap scan report for 10.153.168.2
Host is up (0.00047s latency).
MAC Address: CC:46:D6:17:CA:1C (Unknown)
Nmap scan report for 10.153.168.3
Host is up (0.00013s latency).
MAC Address: 00:E0:4C:A1:EB:D4 (Realtek Semiconductor)
Nmap done: 65536 IP addresses (547 hosts up) scanned in 357.14 seconds
Если есть возможность войти на консоль Linux-компьютера, накотором крутится DHCP-сервер, то можно посмотреть кеш активных обращений к нему через программу ARP:
Address HWtype HWaddress Flags Mask Iface
10.106.175.18 ether 08:05:23:53:bf:c0 C eth1
10.106.173.254 ether cc:5d:41:fb:71:df C eth1
10.106.168.204 ether 60:e1:29:05:c1:c6 C eth1
Вариант 3. Скрипт-однострочник
Можно написать скрипт, который будет пинговать хосты из определенного диапазона, и в случае если ответ от хоста есть, выдавать информацию о нем. Скрипт выглядит так:
64 bytes from 192.168.1.101: icmp_req=1 ttl=64 time=0.042 ms
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=37.4 ms
64 bytes from 192.168.1.102: icmp_req=1 ttl=64 time=208 ms
Найти все компьютеры в сети linux
Переходим на Ubuntu
Как найти все устройства, подключенные к локальной сети
Беспроводные сети всегда были желанной целью для начинающих «хакеров». Кроме того, беспроводные сети обычно более уязвимы к атакам, чем обычные проводные.
Я не предлагаю никого взламывать, а прошу задуматься, не подключился ли к вашей сети такой «новичок»? И дело даже не в том, что сосед может пользоваться оплаченным вами доступом в интернет, а в том, что вы можете понести ответственность за его действия.
Для того, чтобы избежать такой ситуации, нужно знать, как найти все устройства, подключенные к вашей беспроводной сети. Кроме того, это будет полезно не только с точки зрения безопасности. Например, знание ip-адреса других машин в сети позволит передать файлы на эту машину, даже не вставая со стула.
Ближе к делу, ниже приводится краткая инструкция, как найти все устройства, подключенные к сети.
Поиск устройств в сети с помощью командной строки Linux
Установите nmap
nmap — одна из самых популярных утилит для сканирования сети в Linux. Для того, чтобы установить nmap в Ubuntu (или других дистрибутивах Linux на базе Debian), выполните следующую команду:
Эта утилита должна быть доступна в официальных репозиториях всех остальных дистрибутивов.
Узнайте диапазон адресов сети
Нужная нам информация находится во второй строке. Как видно, мой локальный IP-адрес 192.168.1.69, а маска подсети 255.255.255.0, что означает, что в локальной сети адреса будут отличаться от 192.168.1.0 до 192.168.1.255.
Просканируйте устройства, подключенные к сети
Для получения более точной информации лучше выполнять сканирование от имени администартора. Используйте команду nmap следующим образом:
Как видно, в сети работает 5 устройств, одно — роутер, два компьютера и два телефона. Регулярно проверяйте вашу беспроводную сеть, это может обезопасить вас от многих проблем!
Отобразить список компьютеров в локальной сети в Linux
10 ответов
Это то, что я использую, nmap и адрес, используя блок-схему CIDR для сети, которую вы хотите отсканировать. Сначала вам нужно установить nmap, поскольку он не может быть предварительно установлен с вами дистрибутивом. На Ubuntu:
Затем введите свой сетевой адрес, используя ifconfig:
вывод ifconfig для интерфейса, который я хочу проверить:
nmap будет выглядеть примерно так:
Вот и все, если вам нужна дополнительная помощь с nmap, см. официальную документацию nmap или выполните:
«Все те» (в двоичном) широковещательном адресе. Обратите внимание, что большинство стеков IP переведет это на широковещательные адреса подсети для всех подключенных подсетей:
Широковещательный адрес подсети для текущей подсети. Предположим, вы используете 192.168.1.0/24:
Многоадресный адрес «все хосты». Мне это очень нравится, потому что более вероятно, что хосты будут настроены для других IP-подсетей, которые подключаются к той же локальной сети Ethernet, что и вы:
Обратите внимание, что этот метод и другие методы, о которых я уже упоминал в других ответах до сих пор, ищут только хосты с IP-доступом в текущей сети. Это, вероятно, все, о чем вам нужно заботиться, но злоумышленник может заглянуть или сделать что-то плохое в сети, не будучи видимым через IP.
Основываясь на этом, вы можете создать скрипт Python:
Способ № 1.
Путь № 2. Я знаю, что это работает, но я не могу сказать, правильно ли это сделать.
Я был бы рад узнать, есть ли более эффективные способы. До тех пор я придерживаюсь этого.
Вы можете попробовать выполнить ping всю данную подсеть с помощью небольшого сценария оболочки linux, например
Чтобы проверить статус диапазона IP-адресов, это приятно и просто:
Я сделал это в Mac OS X (основанный на BSD). Я не уверен, есть ли у версии Linux какие-либо отличия.
Для более компактного списка подключенных устройств:
Куирк
Помните, что если два устройства имеют одинаковое имя, nmap покажет только тот, который был подключен к маршрутизатору последнему
1. Альтернативное решение, если широковещательные сообщения и nmap недоступны:
2a. или просто спросите сервер доменных имен :
2b. без awk
подключает все pingable сетевые устройства в подсети 192.168.2.0/24 параллельно (чтобы сократить время выполнения). Впоследствии arp должно отображаться каждое устройство, на которое он ответил.
не проверяет наличие активных или текущих подключений, но перечисляет все подключения, в которых служба локального домена сохраняет запись, даже очень старые.
Я вызываю эту команду pingall и делает ее доступной по псевдониму в
7 сетевых Linux-команд, о которых стоит знать системным администраторам
Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.
Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.
В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.
Команда ip
Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.
Синтаксис этой команды выглядит так:
Самое важное тут — это (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:
Вывод IP-адресов, назначенных интерфейсу на сервере:
Назначение IP-адреса интерфейсу, например — enps03 :
Удаление IP-адреса из интерфейса:
Изменение статуса интерфейса, в данном случае — включение eth0 :
Изменение статуса интерфейса, в данном случае — выключение eth0 :
Изменение статуса интерфейса, в данном случае — изменение MTU eth0 :
Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:
Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0 :
Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:
Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0 :
Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:
Вывод маршрута к IP 10.10.1.4:
Команда ifconfig
Команда mtr
Синтаксис команды выглядит так:
Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:
А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:
Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:
А так можно получить отчёт, содержащий результаты работы mtr :
Вот — ещё один вариант получения такого отчёта:
Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:
А вот так можно использовать UDP вместо ICMP:
Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:
Так можно настроить размер пакета:
Для вывода результатов работы mtr в формате CSV используется такая команда:
Вот — команда для вывода результатов работы mtr в формате XML:
Команда tcpdump
Утилита tcpdump предназначена для захвата и анализа пакетов.
Установить её можно так:
Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.
Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:
▍ Захват трафика, идущего к некоему хосту и от него
Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:
Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:
Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:
▍ Захват трафика, идущего в некую сеть и из неё
Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:
Ещё можно поступить так:
Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.
Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):
Вот — захват трафика с фильтрацией по сети, в которую он направляется:
▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
Вот пример захвата трафика только для DNS-порта по умолчанию (53):
Захват трафика для заданного порта:
Захват только HTTPS-трафика:
Захват трафика для всех портов кроме 80 и 25:
Команда netstat
Если в вашей системе netstat отсутствует, установить эту программу можно так:
Ей, в основном, пользуются, вызывая без параметров:
В более сложных случаях её вызывают с параметрами, что может выглядеть так:
Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:
Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:
Для вывода сведений обо всех TCP-портах применяется такой вариант команды:
Если нужны данные по UDP-портам — утилиту вызывают так:
Список портов любых протоколов, ожидающих соединений, можно вывести так:
Список TCP-портов, ожидающих соединений, выводится так:
Так выводят список UDP-портов, ожидающих соединений:
А так — список UNIX-портов, ожидающих соединений:
Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:
Так выводятся статистические сведения по TCP-портам:
Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:
Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:
Команда nslookup
Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.
Рассмотрим распространённые примеры использования этой команды.
Получение A-записи домена:
Просмотр NS-записей домена:
Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:
Обнаружение всех доступных DNS-записей домена:
Проверка использования конкретного DNS-сервера (в данном случае запрос производится к серверу имён ns1.nsexample.com ):
Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:
Команда ping
Команда ping — это инструмент, с помощью которого проверяют, на уровне IP, возможность связи одной TCP/IP-системы с другой. Делается это с использованием эхо-запросов протокола ICMP (Internet Control Message Protocol Echo Request). Программа фиксирует получение ответов на такие запросы и выводит сведения о них вместе с данными о времени их приёма-передачи. Ping — это основная команда, используемая в TCP/IP-сетях и применяемая для решения сетевых проблем, связанных с целостностью сети, с возможностью установления связи, с разрешением имён.
Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:
Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:
Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:
Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:
В процессе работы с утилитой ping вы столкнётесь с различными результатами. В частности, это могут быть сообщения о нештатных ситуациях. Рассмотрим три таких ситуации.
▍ Destination Host Unreachable
Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.
▍ Request timed out
Если результат работы ping выглядит именно так — это значит, что локальная система не получила, в заданное время, эхо-ответов от целевой системы. По умолчанию используется время ожидания ответа в 1 секунду, но этот параметр можно настроить. Подобное может произойти по разным причинам. Чаще всего это — перегруженность сети, сбой ARP-запроса, отбрасывание пакетов фильтром или файрволом и прочее подобное.
▍ Unknown host/Ping Request Could Not Find Host
Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.
О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).
Итоги
Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.