Вопрос или проблема
Какую команду я могу использовать, чтобы найти адрес link-local устройства, к которому я подключен? Я подключен к другому устройству только по link-local, поэтому ввод его обычного адреса IPv4 больше не работает. Команда ip list
тоже не помогает, потому что она показывает только мой IP-адрес. Я использую Ubuntu 22.04 LTS.
Если этот адрес известен вашему компьютеру (нет никаких оснований считать, что ваш компьютер должен знать его до того, как другое устройство отправит пакет, и даже после этого оно могло поменять адрес по любой причине), команда ip neigh
будет знать о записях в таблице ARP.
Существует стандартизированный способ заставить все подключенные компьютеры с адресом link-local отправить пакет: широковещательный ping. Однако иногда межсетевые экраны операционных систем безжалостно блокируют такие запросы даже на адресах link-local.
Существуют также более хитрые способы обнаружить, кто в незнакомой сети предлагает определенную услугу (например, базу данных, общий файл или медиасервер), но это зависит от того, к каким услугам вы надеетесь получить доступ на этом другом компьютере.
Ответ или решение
Чтобы найти link-local адрес другого устройства, к которому вы подключены, используйте команду ip neigh
. Эта команда позволяет просматривать ARP-таблицу и может показать IP-адреса устройств в вашей локальной сети, с которыми у вас установлен прямой контакт.
Вот пошаговое руководство:
-
Откройте терминал в Ubuntu 22.04 LTS.
-
Введите следующую команду:
ip neigh
Эта команда выдаст список соседних устройств с их IP-адресами и состоянием. Если другое устройство активно и отправляет пакеты, оно должно отображаться в этом списке с соответствующим link-local адресом.
-
Если устройство не отображается в ARP-таблице, возможно, вы можете инициировать его обнаружение с помощью широковещательной рассылки пинга. Используйте следующую команду:
ping6 -I <имя_интерфейса> ff02::1
Замените
<имя_интерфейса>
на имя вашего сетевого интерфейса (например,eth0
,wlan0
и т.д.). Эта команда отправит ICMPv6 пакеты всем устройствам в вашей локальной сети на link-local адрес. Однако учтите, что некоторые системы могут иметь активированные брандмауэры, которые блокируют такие пакеты. -
Проверка серверов и служб: Если вы знаете, какие службы запущены на удаленном устройстве (например, SSH, HTTP и т.д.), вы можете попробовать использовать инструменты сканирования портов, такие как
nmap
, чтобы узнать доступные IP-адреса и открытые порты:nmap -sn fe80::/64
Эта команда просканирует диапазон link-local адресов.
Обратите внимание, что link-local адреса обычно имеют формат fe80::/64
и предназначены для связи между устройствами в одной локальной сети без необходимости использовать маршрутизатор.
Если указанные шаги не помогают, возможно, необходимо выполнить дополнительные настройки сети или проверить конфигурации брандмауэра на вашем устройстве и на удаленном.