Обычно я использую SSH для этой машины:

ssh user1@123.45.67.8

Этот сервер в моей сети вынужден использовать DHCP в подсети (134.96.90.0). И каждый раз, когда он выключается, я должен найти возможный IP, используя:

nmap -sP 123.45.67.0/24

Какие выводы:

Starting Nmap 6.40 ( http://nmap.org ) at 2015-10-08 11:13 CEST
Nmap scan report for turning.some-name.de (123.45.67.2)
Host is up (0.00033s latency).
Nmap scan report for drucker-sek.some-name.de(123.45.67.19)
Host is up (0.0010s latency).
Nmap scan report for dhcp90-20.some-name.de (123.45.67.22)
Host is up (0.00036s latency).
Nmap scan report for dhcp90-21.some-name.de (123.45.67.27)

Тогда я должен пойти и набрать это вручную:

ssh user1@123.45.67.2
ssh user1@123.45.67.19
ssh user1@123.45.67.22
ssh user1@123.45.67.27

Тогда, наконец, я знаю, что это назначено 123.45.67.22 .

Если я не могу дать статический IP серверу, есть ли способ автоматизировать это сумасшедшее сканирование сети + множественный SSH? (Представьте, что у меня в сети> 100 машин)


Я мог бы сделать это, чтобы получить IP:

$ nmap -sP 123.45.67.0/24 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' 

Но как мне написать цикл for или что-то в ssh и остановить, когда я успешно ssh-ed на сервер?


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

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:    14.04
Codename:   trusty

Я также попытался SSH имя машины с другой машины в подсети:

$ ssh machine-name.some-name.de
ssh: Could not resolve hostname machine-name.some-name.de: Name or service not known

Но на самом сервере, когда я делаю ssh + tab, я вижу

::1                         
ff02::1                     
ff02::2                     
ip6-allnodes                
ip6-allrouters
ip6-localhost
ip6-loopback
machine-name
machine-name.some-name.de

Кроме того, у меня уже avahi-daemon но кажется, что вещание контролируется на стороне сети, только несколько других машин могут транслировать свои имена, например drucker-sek.some-name.de и turning.some-name.de:

$ sudo avahi-daemon
Daemon already running on PID 824

1 ответ1

1

Как насчет чего-то вроде:

#! /bin/bash
for each in `nmap -sP 123.45.67.0/24 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' `
do

    echo  $each
    nc -w 2 $each 22

    if [ $? -eq 0 ]
    then
        break;
    fi

done
ssh $each

Этот скрипт даст 2 секунды, чтобы увидеть, отвечает ли SSH по указанному IP-адресу по очереди, и когда он доберется до первого успешного соединения, он автоматически выйдет из цикла и попытается войти в ssh.

Если вы находитесь в той же подсети, что и ПК, который ищете, есть более простой способ найти IP-адрес - используйте таблицу ARP, чтобы соответствовать MAC-адресу вашей карты!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .