Как посмотреть все ip адреса в локальной сети линукс
Перейти к содержимому

Как посмотреть все ip адреса в локальной сети линукс

  • автор:

Утилита ip Linux

Если вы начинающий системный администратор, думаю, вам понадобится утилита ip. Она позволяет посмотреть сетевые интерфейсы и IP адреса им присвоенные, посмотреть и настроить таблицу маршрутизации, включать или отключать сетевые интерфейсы, управлять маршрутизацией и ARP, а также многое другое.

Раньше вместо неё использовалось несколько других утилит, одна из них — ipconfig. Однако потом им на замену пришла ip. Сейчас она уже поставляется во всех дистрибутивах, а со временем старые утилиты будут удалены, поэтому разобраться с ней стоит.

Синтаксис и опции утилиты ip

Сначала рассмотрим синтаксис команды. Утилита довольно многофункциональная, поэтому и синтаксис её вызова непростой:

$ ip [опции] объект команда [параметры]

Опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.

  • объект — это тип данных, с которым надо будет работать, например: адреса, устройства, таблица arp, таблица маршрутизации и так далее;
  • команды — какое-либо действие с объектом;
  • параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.

Дальше рассмотрим все еще более подробно:

  • -v, -Version — только вывод информации об утилите и ее версии.
  • -h, -human — выводить данные в удобном для человека виде.
  • -s, -stats — включает вывод статистической информации.
  • -d, —details — показывать ещё больше подробностей.
  • -f, -family — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
  • -o, -oneline — выводить каждую запись с новой строки.
  • -r,-resolve — определять имена хостов с помощью DNS.
  • -a, -all — применить команду ко всем объектам.
  • -c, -color — позволяет настроить цветной, доступные значения: auto, always и never.
  • -br, -brief — выводить только базовую информацию для удобства чтения.
  • -4 — короткая запись для -f inet.
  • -6 — короткая запись для -f inet-f inet6.
  • -B — короткая запись для -f inet-f bridge.
  • -0 — короткая запись для -f inet -f link.

Теперь давайте рассмотрим самые важные объекты.

  • address или a — сетевые адреса.
  • link или l — физическое сетевое устройство.
  • neighbour или neigh — просмотр и управление ARP.
  • route или r — управление маршрутизацией.
  • rule или ru — правила маршрутизации.
  • tunnel или t — настройка туннелирования.

Конечно, это не все объекты которые поддерживает команда ip Linux, но на первое время вам хватит. Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r — означает route.

Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Они зависят от объекта, к которому будут применяться. Вот основные команды: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update. Если команда не задана, по умолчанию используется show (показать).

Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set, к сожалению.

Примеры использования ip

Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip.

1. Просмотр IP адресов

Чтобы посмотреть все IP адреса, связанные с сетевыми интерфейсами используйте такую команду:

Для просмотра информации в кратком виде используйте опцию -br:

Можно посмотреть IP адреса только по определённому сетевому интерфейсу, например: enp0s3:

ip a show enp0s3

ip a show dev enp0s3

Можно отобразить только статические IP адреса:

ip a show dev enp0s3 permanent

Или только динамические:

ip a show dev enp0s3 dynamic

2. Добавление IP адреса

Чтобы присвоить IP адрес для устройства нужно использовать команду add. Её общий синтаксис такой:

$ ip addr add IP_адрес / маска dev интерфейс

Например, давайте присвоим тому же интерфейсу enp0s3 IP адрес 10.0.2.100 с маской подсети 255.255.255.0:

ip addr add 10.0.2.100/255.255.255.0 dev enp0s3

Маску можно указать и в сокращённом виде:

ip addr add 10.0.2.100/24 dev enp0s3

3. Удаление IP адреса

Чтобы удалить IP адрес из интерфейса надо использовать команду del. Синтаксис её очень похож на предыдущую команду. Например, удалим IP адрес 10.0.2.100:

ip addr del 10.0.2.100/255.255.255.0 dev enp0s3

Можно удалять IP адреса по одному или удалить все сразу с помощью команды flush:

Или же можно удалить адреса только определённой подсети:

sudo ip a flush to 10.0.2.0/24

Если вы будете применять эти команды к интерфейсу, с помощью которого у вас работает сеть, то сеть пропадёт и чтобы её вернуть надо будет перезагрузить сетевые службы.

4. Список интерфейсов

Чтобы посмотреть список сетевых интерфейсов используйте объект link:

5. Включение или выключение интерфейсов

Для решения этой задачи тоже используется объект link, но с командой set. Синтаксис её такой:

$ ip link set dev интерфейс действие

В качестве действия можно использовать up или down. Например, чтобы отключить интерфейс enp0s3 выполните:

ip link set dev enp0s3 down

А чтобы включить его обратно:

ip link set dev enp0s3 up

6. Настройка MTU

Параметр MTU означает размер одного пакета, передаваемого по сети. Этот размер можно изменить с помощью команды set. Например, увеличим MTU для enp0s3 до 4000 тысяч байт:

ip link set mtu 4000 dev enp0s3

7. Настройка MAC адреса

Адрес MAC — это физический адрес, который используется для определения какому устройству надо передать сетевой пакет в локальной сети. Прежде чем настраивать MAC адрес ваше устройство надо отключить:

sudo ip link set dev enp0s3 down

Затем можно установить адрес:

sudo ip link set dev enp0s3 address AA:BB:CC:DD:EE:FF

А потом включить интерфейс обратно:

sudo ip link set dev enp0s3 up

8. Таблица ARP

Именно протокол ARP отвечает за преобразование IP адресов в низкоуровневые MAC адреса. Для того чтобы не отправлять ARP запросы каждый раз в сеть, кэш хранится в таблице ARP на протяжении 20-ти минут. Чтобы посмотреть содержимое таблицы ARP используйте такую команду:

9. Добавление записи в таблицу ARP

Обычно записи в эту таблицу попадают автоматически, но вы можете добавить их и вручную. Для этого используйте команду add объекта neigh:

sudo ip neigh add 192.168.0.105 lladdr b0:be:76:43:21:41 dev enp0s3

В этом примере я заставил компьютер думать, что узел с IP 192.168.0.105 это 192.168.0.1. Теперь можно попытаться выполнить ping по этому адресу и оно будет работать, несмотря на то, что реально такого узла в сети нет.

10. Очистка таблицы ARP

Вы можете удалять IP адреса по одному с помощью команды del:

sudo ip neigh del dev enp0s3 192.168.0.105

Можно удалить все записи для определённого сетевого интерфейса:

ip neigh flush dev enp0s3

Или очистить таблицу полностью командой flush:

11. Просмотр таблицы маршрутизации

Для просмотра таблицы маршрутизации используйте объект route и команду show:

12. Добавление маршрута

Синтаксис добавления нового маршрута в таблицу маршрутизации такой:

$ ip route add подсеть / маска via шлюз

Вместо шлюза можно указать сетевой интерфейс с помощью которого надо отправлять пакеты:

$ ip route add подсеть / маска dev устройство

Например, добавим новый маршрут для сети через тот же IP адрес:

sudo ip route add 169.255.0.0 via 169.254.19.153

Или можно указать сетевой интерфейс через который надо отправлять пакеты для определённой сети:

sudo ip route add 169.255.0.0 dev enp0s3

13. Удаление маршрута

Удалить маршрут можно командой с аналогичным синтаксисом, только вместо add надо использовать del:

sudo ip route del 169.255.0.0 via 169.254.19.153

Выводы

Вот и подошла к завершению наша статья. Надеюсь, утилита ip Linux уже не кажется такой непонятной. Если у вас есть вопросы или хотите предложить ещё какие-нибудь примеры, пишите комментарии!

Как получить список ip-адресов в локальной сети?

Подскажите, пожалуйста, как получить список ip-адресов всех хостов локальной сети (192.168.0.ххх)?

В сети на всех компьютерах есть либо windows, либо linux+samba, поэтому я пробовал nmblookup ‘*’. Но в список не попадает более трети хостов. Оказалось, что это нормальное поведение, потому что nmblookup долго ответа не ждет и многие просто не успевают ответить.

Можно ли надежно получить список всех хостов?

Re: Как получить список ip-адресов в локальной сети?

nmap -sP -n 192.168.0.0/24
nmap -sP -n 192.168.0.0/24|grep "^Host"|cut -f 2 -d ‘ ‘

Re: Как получить список ip-адресов в локальной сети?

Спасибо за помошь. Но nmap тоже не все выводит. У меня нашлось только 13 хостов, в то время как nmblookup нашел 15, а всего их 23.

Может быть можно timeout указать какой-нибудь?

$ nmap -sP -n 192.168.0.0/24|grep "^Host"|cut -f 2 -d ‘ ‘|wc 13 13 172 $ nmblookup ‘*’|grep "<00>"|wc 15 30 288

Re: Как получить список ip-адресов в локальной сети?

Сорри, форматирование подкачало:

$ nmap -sP -n 192.168.0.0/24|grep "^Host"|cut -f 2 -d ‘ ‘|wc

Re: Как получить список ip-адресов в локальной сети?

Re: Как получить список ip-адресов в локальной сети?

nmap -PR ‘192.168.0.*’

Re: Как получить список ip-адресов в локальной сети?

Re: Как получить список ip-адресов в локальной сети?

ICMP — не выход. я например всегда запрещаю кернелу отвечать на реквесты.
может быть s/ping/arping/ попробовать?

Re: Как получить список ip-адресов в локальной сети?

Re: Как получить список ip-адресов в локальной сети?

Спасибо за ответы.
В итоге дошел до написания простого скрипта на питоне,
который параллельно запускает опрос всех возможных ip’шников.
В принципе, это то же самое, что и предложенный shell-скрипт:

How to effectively deal with bots on your site? The best protection against click fraud.

Сетевым администраторам необходимо сканировать подключенные устройства в сети в качестве меры безопасности. С развитием Интернета вещей (IoT) к Интернету подключается все больше устройств. Это вызывает у организаций озабоченность по поводу защиты своей сети и сетевых ресурсов от любых потенциальных нарушений безопасности. Любая халатность в этом случае может привести к потере потенциальных активов и репутации организации. Это верно, поскольку даже крупные игроки, такие как Github, FireEye, Capitol One и т. Д., В последнее время стали жертвами кибератак.

Очень важно поддерживать стабильную и безопасную сеть, предотвращая несанкционированный доступ и отслеживая активность законных пользователей. Организации тратят миллионы долларов на защиту от любых угроз.

В случае какого-либо ужасного события знание того, кто подключен к сети, является первым и наиболее важным шагом к анализу угроз. Это помогает администраторам сузить процесс расследования, а также упрощает отслеживание неисправностей.

Что мы будем освещать?

В этом руководстве мы рассмотрим различные способы обнаружения различных устройств, подключенных к нашей сети. Во-первых, мы увидим инструменты командной строки, изначально доступные в Ubuntu 20.04 для сканирования сети; тогда мы увидим сборку графической программы для этой цели.

Использование инструмента командной строки Nmap для сканирования сети.

Nmap или Network Mapper, несомненно, одна из наиболее часто используемых программ для обнаружения узлов, подключенных к сети. Его используют сетевые администраторы, аудиторы безопасности, тестеры на проникновение, этические хакеры и т. Д. Он имеет открытый исходный код и свободно доступен для использования.

Чтобы установить nmap в Ubuntu 20.04, используйте команду:

$ судо подходящий установить nmap

После установки Nmap мы можем использовать его для многих целей, таких как сканирование портов, обнаружение ОС, обнаружение хостов и т. Д.

Чтобы узнать, какие устройства подключены к нашей сети, сначала найдите свой сетевой адрес с помощью команды «ip a» или «ifconfig». Ниже мы показали вывод команды «ip a»:

Мы видим, что наш IP-адрес 192.168.43.216 в сети / 24. Таким образом, наш сетевой адрес будет 192.168.43.0/24. Теперь найдите подключенные устройства, выполнив команду:

$ судо nmap -sn 192.168.43. *

Приведенные выше выходные данные показывают IP-адреса подключенного устройства с их статусом и MAC-адресами. Мы также можем использовать команду:

$ судо nmap -sP 192.168.43. *

В качестве альтернативы мы можем использовать сетевой адрес вместо обозначения подстановочных знаков, как здесь:

$ судо nmap -sn 192.168.43.0 / 24
$ судо nmap -sP 192.168.43.0 / 24

Все выходы идентичны.

Использование команды ARP-SCAN для обнаружения сетевых устройств.

Команда arp встроена в большинство дистрибутивов Linux. ARP — это аббревиатура от Address Resolution Protocol. Он используется для отображения и изменения кеша arp. Кэш ARP переводит IP-адрес в физический адрес или в MAC-адрес машины, говоря простым языком. Для ускорения последующего поиска ARP в нем хранится отображение ARP.

Команда ARP-SCAN — это инструмент arp-scanner, который передает пакеты ARP для идентификации устройств, подключенных к вашей локальной сети или LAN. Чтобы установить ARP-SCAN в вашей системе Ubuntu, используйте команду:

$ судо подходящий установить arp – scan

Чтобы просканировать вашу сеть с помощью arp-scan, запустите команду с привилегиями sudo:

$ судо arp-сканирование —интерфейс = enp0s3 —localnet

Здесь enp0s3 — это имя интерфейса, который мы используем для отправки пакетов arp. В вашем случае все может быть иначе. Опять же, используйте команду «ip a» или «ifconfig», чтобы определить имя интерфейса в вашей системе.

Мы видим, что arp-scan показал все подключенные устройства в нашей сети. Это действительно хороший инструмент для сканирования вашей локальной сети. Чтобы узнать больше об использовании этой команды, вы можете использовать параметр –help или -h, как здесь:

Использование Network Scanner Tools для сканирования сетевых устройств.

Помимо инструментов на основе командной строки, для Linux доступно множество инструментов сканирования IP на основе графического интерфейса. Возможности и функциональные возможности этих инструментов могут отличаться. Один из популярных инструментов сканирования IP — Angry IP Scanner.

Angry IP Scanner — это бесплатный сетевой сканер. Он отправляет запросы ping на хост, чтобы определить, работает ли он. Затем он будет искать MAC-адрес, имя хоста и т. Д. Его можно скачать с веб-сайта AngryIP, как показано здесь:

После загрузки файла откройте его с помощью программы «Установка программного обеспечения». AngryIp требует, чтобы в вашей системе была установлена ​​Java. Если java еще не установлена ​​в вашей системе, она будет автоматически установлена ​​в процессе установки программного обеспечения.

После завершения установки сканер AngryIP можно запустить из меню приложения как:

По умолчанию он автоматически получает диапазон IP-адресов вашей сети. Просто нажмите кнопку запуска, чтобы начать сканирование. Пример вывода после сканирования LAN показан здесь:

Да, AngryIP очень просто использовать для сканирования сети. Он покажет количество активных хостов и открытых портов.

Вывод

В этом руководстве мы рассмотрели различные способы сканирования сети. Если у вас большая сеть устройств, например ИТ-отдел организации, мы рекомендуем вам использовать брандмауэр от некоторых уважаемых поставщиков. Корпоративный брандмауэр имеет больше возможностей и больше контроля над сетью. С брандмауэром, помимо сканирования большой сети с несколькими подсетями, мы можем ограничивать использование полосы пропускания, блокировать пользователей и службы, предотвращать сетевые атаки и т. Д.

Команда ip в Linux (с примерами)

Команда ip — это мощный инструмент для настройки сетевых интерфейсов, который должен знать любой системный администратор Linux. Он используется для включения или выключения интерфейсов, назначения и удаления адресов и маршрутов, управления кешем ARP и многого другого.

В этой статье объясняется, как использовать команду ip, на практических примерах и подробных объяснениях наиболее распространенных параметров.

Как использовать команду ip

Утилита ip является частью пакета iproute2, который установлен во всех современных дистрибутивах Linux.

Синтаксис команды ip следующий:

OBJECT — это тип объекта, которым вы хотите управлять. Наиболее часто используемые объекты (или подкоманды):

  • link ( l ) — отображение и изменение сетевых интерфейсов.
  • address ( a ) — отображение и изменение IP-адресов.
  • route ( r ) — отображение и изменение таблицы маршрутизации.
  • neigh ( n ) — Отображение и управление соседними объектами (таблица ARP).

Объект может быть написан в полной или сокращенной (краткой) форме. Чтобы отобразить список команд и аргументов для каждого объекта, введите ip OBJECT help .

При настройке сетевых интерфейсов вы должны выполнять команды как root или пользователь с привилегиями sudo . В противном случае команда RTNETLINK answers: Operation not permitted .

Конфигурации, установленные с помощью команды ip , не являются постоянными. После перезапуска системы все изменения теряются. Чтобы сделать изменения постоянными, вам необходимо отредактировать файлы конфигурации конкретного дистрибутива или добавить команды в сценарий запуска.

Отображение и изменение IP-адресов

При работе с объектом addr команды принимают следующий вид:

Наиболее часто используемые КОМАНДЫ объекта addr : show , add и del .

Отображение информации обо всех IP-адресах

Чтобы отобразить список всех сетевых интерфейсов и связанный с ними IP-адрес, введите следующую команду:

Результат будет выглядеть примерно так:

Вы получите тот же результат, если наберете опустить команду show и наберете: ip addr .

Если вы хотите отображать только IP-адреса IPv4 или IPv6 , используйте ip -4 addr или ip -6 addr .

Отображение информации об одном сетевом интерфейсе

Чтобы получить информацию о конкретном сетевом интерфейсе, используйте ip addr show dev за которым следует имя устройства. Например, чтобы запросить eth0 , вы должны ввести:

Назначьте IP-адреса интерфейсу

Чтобы назначить IP-адрес интерфейсу, используйте следующий синтаксис:

Где IFNAME — это имя интерфейса, а ADDRESS — это IP-адрес, который вы хотите назначить интерфейсу.

Чтобы добавить адрес 192.168.121.45 с сетевой маской 24 к устройству eth0 , вы должны ввести:

В случае успеха команда не покажет никаких результатов. Если интерфейс не существует, вы получите сообщение « Cannot find device «eth0» .

Назначьте несколько IP-адресов одному интерфейсу

С помощью ip вы можете назначить несколько адресов одному интерфейсу. Например:

Чтобы подтвердить, что IP-адреса назначены, введите ip -4 addr show dev eth0 или ip -4 a show dev eth0 :

Удалить / удалить IP-адрес из интерфейса

Синтаксис для удаления IP-адреса из интерфейса следующий:

IFNAME — это имя интерфейса, а ADDRESS — это IP-адрес, который вы хотите удалить из интерфейса.

Чтобы удалить адрес 192.168.121.45/24 с устройства eth0, введите:

Отображение и изменение сетевых интерфейсов

Для управления и просмотра состояния сетевых интерфейсов используйте объект link .

При работе с объектами link наиболее часто используются следующие команды: show , set , add и del .

Отображение информации о сетевых интерфейсах

Чтобы отобразить список всех сетевых интерфейсов, введите следующую команду:

В отличие от ip addr show , ip link show не выводит информацию об IP-адресах, связанных с устройством.

Чтобы получить информацию о конкретном сетевом интерфейсе, используйте ip link show dev за которым следует имя устройства. Например, чтобы запросить eth0 вы должны ввести:

Измените статус интерфейса ВВЕРХ / ВНИЗ

Чтобы вывести интерфейсы вверх или вниз, используйте ip link set dev за которым следует имя устройства и желаемое состояние:

Например, чтобы подключить интерфейс eth0 сети, вы должны ввести:

И принести если оффлайн

Отображение и изменение таблицы маршрутизации

Для назначения, удаления и отображения таблицы маршрутизации ядра используйте объект route . Наиболее часто используемые команды при работе с объектами маршрутов: list , add и del .

Показать таблицу маршрутизации

Чтобы получить список записей маршрута ядра, используйте одну из следующих команд:

При использовании без SELECTOR команда выведет список всех записей маршрута в ядре:

Чтобы отобразить только маршрутизацию для определенной сети, например 172.17.0.0/16 , введите:

Добавить новый маршрут

Чтобы добавить новую запись в таблицу маршрутизации, используйте команду route add за которой следует имя сети или устройства.

Добавьте маршрут к 192.168.121.0/24 через шлюз 192.168.121.1

Добавьте маршрут к 192.168.121.0/24, который может быть достигнут на устройстве eth0.

Чтобы добавить маршрут по умолчанию, используйте ключевое слово default . Следующая команда добавит маршрут по умолчанию через локальный шлюз 192.168.121.1 который может быть достигнут на устройстве eth0 .

Удалить маршрут

Чтобы удалить запись из таблицы маршрутизации, используйте команду route add . Синтаксис удаления маршрута такой же, как и при добавлении.

Следующая команда удалит маршрут по умолчанию:

Удалите маршрут для 192.168.121.0/24 через шлюз 192.168.121.1

Выводы

К настоящему времени вы должны хорошо понимать, как использовать команду Linux ip . Для получения дополнительной информации о других параметрах ip посетите страницу руководства по команде ip или введите man ip в терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *