Поиск компьютеров в локальной сети Linux

Обновлено: 21.11.2024

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

Подключение к другим компьютерам с Linux через SSH

Вы можете подключаться к другим компьютерам Linux в вашей сети из командной строки через SSH. Для работы SSH на удаленном компьютере должна быть установлена ​​серверная программа OpenSSH.

Если вам нужна помощь в установке сервера OpenSSH на ваш компьютер, в зависимости от используемого вами дистрибутива Linux, прочитайте одну из следующих статей:

  • Debian 9: прочитайте статью Включение SSH-сервера в Debian.
  • Debian 10: прочитайте статью Включение SSH в Debian 10.
  • CentOS 8: прочтите статью Как включить SSH в CentOS 8.
  • Ubuntu 18.04 LTS: прочтите статью Как включить SSH-сервер в Ubuntu 18.04 LTS.
  • Ubuntu 20.04 LTS: прочтите статью Как установить и включить OpenSSH в Ubuntu 20.04.
  • Arch Linux: прочтите статью Настройка, настройка и оптимизация SSH-сервера Arch Linux.
  • Kali Linux 2020: прочтите статью Как включить SSH в Kali Linux 2020.

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

Как только ваш коллега узнает IP-адрес своего компьютера, он может отправить его вам. В моем случае IP-адрес 192.168.0.109. Так как каждый компьютер имеет свой уникальный IP-адрес, то он будет отличаться от вашего. Поэтому обязательно используйте свой IP-адрес.

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

Как только вы узнаете имя пользователя, пароль и IP-адрес удаленного компьютера, вы можете подключиться к нему через SSH следующим образом:

ПРИМЕЧАНИЕ. Замените на имя пользователя для входа и IP-адрес удаленного компьютера.

При первом подключении к удаленному компьютеру через SSH вы увидите следующее приглашение.

Введите yes и нажмите принять отпечаток пальца.

Введите пароль для входа на удаленный компьютер и нажмите .

Вы должны быть подключены к удаленному компьютеру через SSH.

Теперь вы можете запустить любую команду на удаленном компьютере.

Подключение к компьютерам Windows через RDP:

Самый распространенный способ подключения к удаленному компьютеру с Windows — через RDP (протокол удаленного рабочего стола). Протокол RDP встроен в операционную систему Windows. Таким образом, вам не нужно ничего устанавливать на удаленный компьютер с Windows для работы RDP. Все, что вам нужно сделать, это включить RDP на удаленном компьютере, и все готово.

Чтобы включить RDP в Windows 10, откройте приложение "Параметры Windows 10" и нажмите "Система", как показано на снимке экрана ниже.

Перейдите в раздел «Удаленный рабочий стол» и нажмите кнопку-переключатель «Включить удаленный рабочий стол», как показано на снимке экрана ниже.

Нажмите «Подтвердить», как показано на снимке экрана ниже.

RDP должен быть включен.

После включения RDP на удаленном компьютере с Windows вам необходимо узнать IP-адрес удаленного компьютера с Windows.

Чтобы найти IP-адрес удаленного компьютера с Windows, нажмите клавишу , а затем нажмите R. Должно появиться окно запроса «Выполнить». Теперь введите powershell или cmd и нажмите .


Должен быть открыт терминал (PowerShell или CMD, в зависимости от команды, которую вы использовали для запуска терминала).


Теперь выполните следующую команду:


Должен отображаться IP-адрес удаленного компьютера с Windows. В моем случае IP-адрес 192.168.0.107. Для вас это будет иначе. Поэтому обязательно используйте свой уникальный IP-адрес.


Как только вы узнаете IP-адрес компьютера с Windows, вы можете использовать RDP-клиент для подключения к удаленному компьютеру с Windows из Linux. В Linux доступно множество RDP-клиентов. В этой статье я буду использовать клиент удаленного рабочего стола Vinagre для подключения к компьютеру Windows через RDP.

Если на вашем компьютере не установлен клиент удаленного рабочего стола Vinagre и вам нужна помощь в установке клиента удаленного рабочего стола Vinagre в нужном вам дистрибутиве Linux, вы можете прочитать статью Как установить клиент удаленного рабочего стола Vinagre на Линукс.

Установив Vinagre, вы можете запустить его из меню приложений на своем компьютере.

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


Должен быть открыт клиент удаленного рабочего стола Vinagre.


Теперь нажмите Подключиться.


Выберите RDP в раскрывающемся меню «Протокол», введите IP-адрес вашего компьютера с Windows в разделе «Хост» и введите ширину и высоту дисплея в пикселях в разделе «Параметры RDP», как указано в снимок экрана ниже.


Затем нажмите Подключиться.


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

Введите имя пользователя и пароль для входа в систему и нажмите «Аутентификация».


Вы должны быть подключены к компьютеру Windows, как показано на снимке экрана ниже.

Подключение к удаленным компьютерам через VNC:

VNC (Virtual Network Computing) – это протокол для удаленного доступа и управления графической средой рабочего стола компьютера с другого компьютера.

Чтобы удаленно подключиться к компьютеру по протоколу VNC, на компьютере, к которому вы хотите получить удаленный доступ, должна быть установлена ​​и настроена программа сервера VNC.

Если вам нужна помощь в установке VNC-сервера на ваш компьютер, в зависимости от используемого вами дистрибутива Linux, прочитайте одну из следующих статей:

  • CentOS 8: прочитайте статью Настройка VNC-сервера в CentOS 8.
  • Ubuntu 20.04 LTS: прочтите статью Как установить VNC-сервер в Ubuntu 20.04 LTS.
  • Debian 10: прочтите статью Как установить VNC-сервер в Debian 10.
  • Linux Mint 20: прочитайте статью Установка VNC-сервера в Linux Mint 20.
  • Fedora 32: прочитайте статью Как настроить VNC-сервер в Fedora Linux?.

После того как на удаленном компьютере установлен сервер VNC, вам потребуется клиент VNC для подключения к удаленному компьютеру с другого компьютера.

В Linux доступно множество клиентов VNC. например, Vinagre, Remmina, RealVNC VNC Viewer и т. д.

Если вам нужна помощь в установке клиента VNC в нужном вам дистрибутиве Linux, вы можете прочитать одну из следующих статей в зависимости от клиента VNC, который вы хотите установить.

RealVNC VNC Viewer: прочтите статью Как установить RealVNC VNC Viewer в Linux.

В этой статье я буду использовать VNC-клиент RealVNC VNC Viewer, чтобы показать вам, как подключиться к удаленному компьютеру с помощью протокола VNC.

После установки RealVNC VNC Viewer вы можете запустить VNC Viewer из меню приложений нужного вам дистрибутива Linux.


Установите флажок Я прочитал и принимаю эти условия и положения и нажмите OK, как показано на снимке экрана ниже.


Нажмите ПОНЯЛ, как показано на скриншоте ниже.


VNC Viewer должен быть готов к подключению к удаленным компьютерам.


Чтобы подключиться к удаленному компьютеру через VNC, вам необходимо знать IP-адрес этого удаленного компьютера.

Выполните следующую команду на удаленном компьютере, чтобы узнать его IP-адрес.


IP-адрес удаленного компьютера должен быть напечатан на терминале.

Как видите, IP-адрес удаленного компьютера, к которому я хочу подключиться, — 192.168.0.106. Он будет отличаться от вашего. Поэтому обязательно замените его своим IP-адресом.


Нажмите «Продолжить».


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


Введите имя пользователя и пароль удаленного компьютера, к которому вы хотите подключиться, и нажмите OK, как показано на снимке экрана ниже.


Вы должны быть подключены к удаленному компьютеру.

Подключение к виртуальным машинам VMware через VMRC:

Для удаленного подключения к виртуальным машинам VMware vSphere или VMware ESXi можно использовать официальную программу VMware VMware Remote Console (VMRC).

Чтобы узнать больше о VMware Remote Console (VMRC) и о том, как установить ее в вашем любимом дистрибутиве Linux, ознакомьтесь со статьей Как установить VMRC (VMware Remote Console) в Linux.

Чтобы показать вам, как подключиться к виртуальной машине VMware ESXi с помощью VMware Remote Console (VMRC), я подготовил виртуальную машину VMware ESXi s01, как показано на снимке экрана ниже.


Чтобы подключиться к виртуальной машине VMware ESXi s01 с помощью VMware Remote Console (VMRC), щелкните Консоль, как показано на снимке экрана ниже.


Затем нажмите Запустить удаленную консоль, как показано ниже.


Виртуальная машина VMware ESXi s01 должна быть открыта с помощью VMware Remote Console (VMRC), как показано на снимке экрана ниже.

Подключение к виртуальным машинам Proxmox через SPICE:

Для удаленного подключения к виртуальным машинам Proxmox VE вы можете использовать официальный KVM Virt Viewer. Virt Viewer использует протокол SPICE для удаленного подключения к виртуальным машинам KVM.

Чтобы узнать больше о KVM Virt Viewer и о том, как установить его в вашем любимом дистрибутиве Linux, ознакомьтесь со статьей Как установить Virt Viewer в Linux.

Чтобы показать вам, как подключиться к виртуальной машине Proxmox по протоколу SPICE с помощью Virt Viewer, я подготовил виртуальную машину Proxmox s02, как вы можете видеть на снимке экрана ниже.


Чтобы иметь возможность подключиться к виртуальной машине Proxmox с помощью Virt Viewer, вы должны установить для оборудования дисплея виртуальной машины значение SPICE (qxl), как показано на снимке экрана ниже.


После того как вы настроили оборудование дисплея виртуальной машины на SPICE (qxl), перейдите в раздел «Консоль» виртуальной машины и нажмите «Консоль» > «SPICE», как показано на снимке экрана ниже.


Ваш браузер должен предложить вам открыть или сохранить файл конфигурации подключения Virt Viewer.

Выберите «Открыть с помощью», выберите «Удаленный просмотр» в раскрывающемся меню и нажмите «ОК», как показано на снимке экрана ниже.


Вы должны быть подключены к виртуальной машине Proxmox, как показано на скриншоте ниже.

Вывод:

В этой статье я показал вам, как получить доступ к удаленному компьютеру в той же сети из Linux. Я показал вам различные методы, протоколы и инструменты для подключения к удаленным компьютерам с другого компьютера в той же сети. Кроме того, были рассмотрены текстовый протокол удаленного доступа SSH, графические протоколы удаленного доступа RDP и VNC, протокол удаленного доступа виртуальной машины Proxmox SPICE и инструмент удаленного доступа виртуальной машины VMware ESXi или VMware vSphere VMRC. Помимо этого, я показал вам, как использовать клиентские программы удаленного доступа Vinagre, RealVNC VNC Viewer, Virt Viewer и VMRC для подключения к удаленным компьютерам через поддерживаемые ими протоколы удаленного рабочего стола.

Я веб-разработчик, который пытается улучшить безопасность. Я пытаюсь найти способ (в дистрибутивах на основе Linux/Debian) вывести список всех компьютеров в той же локальной сети, в которой находится мой нетбук. Я попробовал «arp -n», но мне кажется, что это неполный список, так как мой iPhone подключен к тому же маршрутизатору Wi-Fi, что и мой нетбук, и это не подошло. Есть ли лучший способ получить полный список компьютеров, использующих один и тот же шлюз?

11 ответов 11

Получить nmap. Это программа, которую Тринити использовала в «Матрице», и вы можете выполнить сканирование, чтобы найти все устройства, подключенные к локальной сети, в которой вы находитесь, и многое другое.

Вот справочное руководство.

Хорошо. Похоже, я ищу "sudo nmap -sL 123.123.123.*" или, может быть, -sP вместо -sL. Спасибо!

Это то, что я использую, nmap и адрес, использующий блочную нотацию CIDR для сети, которую вы хотите сканировать. Сначала вам нужно установить nmap, так как он может не быть предустановлен в вашем дистрибутиве. В Ubuntu:

Затем определите свой сетевой адрес с помощью ifconfig:

вывод ifconfig для интерфейса, который я хочу сканировать:

Используйте inet addr и Mask, чтобы определить сетевой адрес в нотации CIDR. Подробнее о CIDR здесь. Адрес:

Запустите nmap с параметром -sP, который не будет сканировать дальше, чем проверять, находится ли хост в сети:

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

Вот и все, если вам нужна дополнительная помощь по nmap, см. официальную документацию по nmap или запустите:

nmap -sA 192.168.1.0/24 Опция nmap -sA показывает похожие описательные результаты с лучшей читабельностью, включая имя устройства, IP-адрес, Mac и т. д., что и с опцией -sP. Лично я предпочитаю -sA, а не -sP для ради удобочитаемости.

@Jayzcode На моей машине -sA никогда не возвращается, в то время как -sP заняло всего 3,73 секунды (обнаружил маршрутизатор, мой компьютер и еще один компьютер). Есть идеи, почему?

@Rodrigo параметр -sA также сканирует 1000 портов на хостах, что может занять некоторое время. Это удвоило время выполнения для меня. Если вы просто хотите узнать список подключенных устройств, оставьте параметр -sP.

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

Широковещательный адрес "все единицы" (в двоичном формате). Обратите внимание, что большинство стеков IP преобразуют это в широковещательные адреса подсети для всех подсетей, к которым вы подключены:

Широковещательный адрес вашей текущей подсети. Предположим, вы находитесь на 192.168.1.0/24:

Групповой адрес "всех хостов". Мне очень нравится этот вариант, потому что он с большей вероятностью найдет хосты, настроенные для других IP-подсетей, которые подключены к той же локальной сети Ethernet, что и вы:

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

Я нахожусь в локальной сети, и у меня есть 3 Ubuntu, 2 Kubuntu, 2 Windows XP и 2 Windows 7. Какие команды или инструменты доступны для просмотра того, какие ПК подключены к локальной сети, что он показывает имя ПК и ИП. Подобно таким инструментам, как Angry IP, которые показывают все ПК в локальной сети.

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

9 ответов 9

У меня тоже отлично работает Arp-scan.

-или при использовании Ethernet:

(последнее практически идентично тому, что опубликовал Раджеш Раджендран; -l означает --localnet)

Если у вас нет arp-scan (по умолчанию его нет в Ubuntu), просто откройте терминал и введите:

Если это не работает, используйте ifconfig, чтобы получить список интерфейсов, и попробуйте переключить eth0 на что-то другое.

У меня не отображаются IP-адреса. sudo arp-scan -l --interface=wlp4s0 Интерфейс: wlp4s0, тип канала передачи данных: EN10MB (Ethernet) Запуск arp-scan 1.9.5 с 256 хостами 14 пакетов, полученных фильтром, 0 пакетов, отброшенных ядром Завершение arp-scan 1.9.5 : 256 узлов просканировано за 1,975 секунды (129,62 узла в секунду). 0 ответили

Но для отличного инструмента, Nmap. Отлично подходит для картографирования сетей.

Самое простое

Я всегда использую nmap. Чтобы найти все устройства в вашей сети, используйте:

nmap -sP 192.168.0.1/24

Это отличный инструмент, о котором нужно знать. Вы можете установить nmap, используя:

sudo apt-get install nmap, если вы используете Debian или

sudo pacman -S nmap, если вы используете Arch.

Просто загрузите последний пакет DEB и установите его. Затем запустите ipscan из Dash. Вот скриншот:

это действительно хорошо, я добавил все сборщики в столбцы списка, что больше всего помогло, так это имя хоста и macvendor, теперь все, что связано с моим Wi-Fi, более понятно, спасибо!

Меню @JeffWard: инструменты/выборщики//доступныеFetchers//"lastItemOnTheList", затем сортировка по macvendor, это короткое имя оборудования, например D-Link

ip ржет

ip-neigh и hosts . НЕТ nmap / sudo требуется.

Основываясь на этом, вы можете создать скрипт Python:

Если на вашем маршрутизаторе не отключена трансляция.

Вы можете пропинговать широковещательный адрес.

Команда ping будет транслироваться на каждый хост в подсети 192.168.0/24.

Примечание. Вероятно, стоит оставить вещание выключенным, поскольку именно так хакеры могут использовать сеть с помощью DDOS-атаки Smurf. По сути, пропингуйте широковещательный адрес пакетом, который имеет поддельный адрес назначения (т. е. IP-адрес жертвы). Это еще не все, но для этого и существует Google.

Примечание. То же самое работает и в Windows, но вы пингуете фактический широковещательный адрес (а не подсеть).

В моем локальном Wi-Fi я могу узнать IP и MAC другого компьютера, на котором также работает Lubuntu и чье имя хоста мне известно.

В той же локальной сети Wi-Fi есть другие компьютеры, которые, скорее всего, работают под управлением Windows и имена хостов которых мне неизвестны.

Могу ли я узнать их имена хостов с моего компьютера? arp-scan -l не показывает эту информацию.

Это неплохой вопрос, нет причин для минуса. Часто полезно знать, кто использует сеть.

2 ответа 2

Установите nmap для любой версии Linux, на которой вы работаете.

Где xxx.xxx.xxx.xxx/nn — ваш IP-адрес и биты маски подсети. Например, если вы находитесь в сети 192.168.1.0 с маской подсети 255.255.255.0, вы должны сделать следующее:

Nmap просканирует все IP-адреса и попытается разрешить их имена хостов для вас.

Например, в моей локальной сети я вижу:

Хосты без имен являются dhcp и не получают имен хостов. Остальные находятся в DNS, поэтому у них есть имена хостов.

Аналогично, arp-scan должен предоставить вам MAC-адрес. Снова установите arp-scan для своего дистрибутива, затем выполните:

Снова предположим, что вы находитесь в той же локальной сети, что и в приведенном выше примере. Если у вас нестандартный интерфейс, вы можете указать его с помощью ключа -I:

Обратите внимание, что в большинстве дистрибутивов для этого вам потребуются права root, поэтому (опять же, пример в моей локальной сети):

Это обнаружило все мои узлы:

Обратный поиск каждого работающего хоста на вашем маршрутизаторе; вы узнаете их dhcp-имена хостов (обычно это их имена хостов) - сначала создайте live_hosts.txt:

sudo arp-сканирование 192.168.169.0/24 | ^192 | awk ‘> live_hosts.txt

для хоста в $(cat live_hosts.txt); выполнить эхо $host ; хост $host $router_ip ; спать 0,1 ; готово

Обратите внимание, что ваш маршрутизатор будет запрашивать свой файл dhcp-leases, и даже отключенные узлы будут разрешаться, пока их аренда не будет очищена. Но все в настоящее время подключенные узлы будут перечислены, если служба имен вашего маршрутизатора (обычно какой-то крошечный dnsmasq) не сломана.

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

Вы можете узнать больше о linux-боксах, если у них есть работающие сервисы (в настоящее время sshd кажется популярным), и все варианты обычно имеют какую-то активную bonjour/zeroconf hooey (google mDNS), часто что-то вроде avahi-daemon. (Назовите это пугалом, дневником Джима, магой, кошкой, это просто mDNS. Кто эти люди, которые решили рандеву, бонжур, авахи. Сделайте это хотя бы смешным, пожалуйста. Раргхх.)

Читайте также: