Uzyskiwanie adresu IP komputera podłączonego bezpośrednio

22

Podłączyłem mój działający komputer do innego za pomocą bezpośredniego kabla Ethernet. Druga maszyna to komputer stacjonarny bez podłączonych urządzeń peryferyjnych (w tym klawiatury, myszy i monitora), a ja chcę uzyskać do niej dostęp za pomocą RDP i SMB. Adresy IP są konfigurowane automatycznie, więc dostaje coś z zakresu 169.254.x.x.

Mogę poczekać, aż system Windows rozpozna drugi komputer lub zeskanować adresy IP, ale oba zajmą dużo czasu i będą nieprzewidywalne. Czy istnieje szybszy sposób na rozpoznanie urządzenia na drugim końcu bezpośredniego kabla Ethernet? Zastanawiałem się nad stworzeniem rozgłaszanego „Ethernet ping” i odwrotnego ARP, ale nie mogę znaleźć instrukcji dla tej techniki.

Melebius
źródło

Odpowiedzi:

8

W momencie połączenia obu komputerów będą one próbowały znaleźć serwer DHCP. Po kilku sekundach żądanie upłynie, a komputer przypisze do siebie automatycznie skonfigurowany adres. Następnie host losowo przypisuje sobie adres IP lokalnego łącza i rozgłasza żądanie arp przez sieć, aby sprawdzić, czy jest w użyciu

Powyższe jest przepisanym streszczeniem https://en.wikipedia.org/wiki/Link-local_address

Możemy użyć <dowolnego> narzędzia do przechwytywania pakietów, aby przechwycić te pakiety i wydrukować adresy IP żądań ARP.

Przechwytywanie pakietów ARP za pomocą GUI Wireshark (wszystkie platformy)

  1. Przechwyć na wszystkich interfejsach: tak (alternatywnie wybierz odpowiedni interfejs, jeśli go rozumiesz)
  2. Filtr przechwytywania: arp
  3. Rozpocznij przechwytywanie i poszukaj w prawej kolumnie adresów IP twojego komputera i innego komputera

Przechwytywanie pakietów arp za pomocą cli tcpdump (testowane w systemie Linux)

  1. Uruchom / zaloguj się do interfejsu terminala
  2. Uruchom program „sudo tcpdump arp”
  3. Adresy IP Twojego komputera i INNEGO komputera pojawią się na ekranie
Ferrybig
źródło
18

Ping IP emisji może działać - nie wszystkie systemy odpowiadają na to, ale niektóre robią to w trybie 169.254. Spróbuj ping 169.254.255.255(potrzeby -bw systemie Linux) lub ping ff02::1(potrzeby ping6w systemie Linux i ewentualnie zakres taki jak ff02::1%eth0).

Bezpośrednie wysłanie wyszukiwania nazwy NetBIOS (za pomocą nbtstat -a) może działać, jeśli działa system Windows i znasz nazwę komputera. Nie znam odpowiednika LLMNR.

Automatyczna konfiguracja 169.254 polega na wysyłaniu niektórych sond ARP z własnym adresem hosta - możesz je zobaczyć w Wireshark, tshark, tcpdump.


„Ethernet ping” istnieje , ale działa tylko na poziomie Ethernet, nie powie nic o IP. (Czasami jest on zaimplementowany w samej karcie sieciowej, ale w większości nie jest w ogóle zaimplementowany).

„Odwrotny ARP” również istnieje, ale prawie nigdy tak naprawdę nie został zaimplementowany - jego pierwotne użycie zostało zastąpione przez BOOTP, a później DHCP.

użytkownik1686
źródło
2
Ping IP nie działał, ale nbtstat -a <computer_name> -czapewnia pożądany adres IP! Dzięki!
Melebius
2
Istnieje oczywiście również „ekstremalna” metoda wysyłania żądań ARP dla wszystkich adresów IP 65024 i sprawdzania, na które otrzymujesz odpowiedź.
kasperd
OP mówi już: „Mogę… skanować adresy IP, ale [to] zajmuje dużo… czasu”.
Scott
Nie dzieje się tak, jeśli masz dobre narzędzia. Zmap może na przykład zeskanować cały Internet IPv4 w ciągu kilku godzin. Wykonanie skanowania ARP na 64k adresach może być bardzo szybkie.
user1686,
6

Jeśli skonfigurujesz urządzenie tak, aby uzyskiwało adres IP z serwera DHCP, to oczywiście musi istnieć serwer DHCP w sieci. Biorąc pod uwagę, że używasz bezpośredniego kabla (krzyżowego) do połączenia obu komputerów ze sobą, nie ma serwera DHCP, więc system Windows tworzy fałszywy losowy adres IP. Z tego powodu znalezienie siebie zajmuje dużo czasu, ponieważ nie ma serwera, który zarządzałby dla Ciebie połączeniem.

Najlepszą metodą byłoby dodanie routera z DHCP do miksu, ponieważ znacznie przyspieszy to. Ale jeśli nie chcesz wydawać na to żadnych pieniędzy, drugą najlepszą opcją jest ręczna konfiguracja adresów IP na obu komputerach do 192.168.0.1i 192.168.0.2z maską podsieci255.255.255.0

LPChip
źródło
4

Jeśli druga maszyna jest całkowicie bezgłowa, będziesz chciał użyć jakiegoś DHCP. Umieść router między dwoma systemami, których ekran stanu można przeglądać, lub zainstaluj aplikację serwera DHCP na działającym komputerze, aby podać adresowi systemu bezgłowego.

Zel
źródło
1

Możesz skonfigurować komputer, aby działał jak serwer DHCP.

http://www.dhcpserver.de/cms/ - To jest to, czego używam. Konfiguracja zajmuje tylko minutę i działa świetnie.

Po prostu podaj Ethernet NIC statyczny adres IP (jak 169.254.1.1:) i podsieć (jak:) 255.255.0.0i nic więcej.

Wybierz Ethernet NIC jako adapter serwera DHCP we wspomnianej wcześniej aplikacji.

Uruchom aplikację serwera DHCP, zrestartuj serwer lub urządzenie, którego adresu IP szukasz, a gdy zostanie uruchomiony, otrzyma adres IP ze zdefiniowanego zakresu serwerów DHCP. Następnie możesz użyć interfejsu internetowego dołączonego do serwera DHCP, aby zobaczyć, jaki adres IP został wydany nowy serwer, lub po prostu pingować skanować wszystkie adresy IP w zakresie DHCP.

Szybko, łatwo i intuicyjnie. Tak mi się przynajmniej wydaje.

Jack_Hu
źródło
0

Przed rozwiązywaniem problemów sprawdź, czy na tylnej stronie kart sieciowych znajdują się statyczne zielone lampki łącza. Jeśli nie świecą na zielono, musisz upewnić się, że masz je połączone za pomocą kabla krzyżowego. Sprawdź także, czy ustawienia dupleksu kart są takie same (pełny / półdupleks), w przeciwnym razie możesz doświadczyć żarowego światła.

Kiedy staniesz się zielony, będziesz musiał statycznie przypisać im adresy. Nie polecam uruchamiania serwera DHCP w celu przypisania, jeśli jest on w sieci służbowej (może to zepsuć dużo czasu, jeśli serwer DHCP zacznie odpowiadać na żądania z innych komputerów rozgłaszających wykrywanie DHCP w sieci)

NotAdmin Dave
źródło
-1

Co powiesz na przejście do maszyny nr 2 i uruchomienie pingowania! Zakładam, że masz fizyczny dostęp do komputera i uprawnienia do logowania.

W zależności od celu tego przedsięwzięcia (i systemu operacyjnego) możesz również: - Mapować na inny komputer (zakładając, że masz nazwę komputera) i uzyskać potrzebne pliki - RDP / SSH poprzez nazwę komputera.

Paul Douglas
źródło
1
OP mówi: „Druga maszyna nie ma podłączonych urządzeń peryferyjnych i chcę uzyskać do niej dostęp za pomocą RDP…” w pytaniu. Pierwszą część tego interpretuję jako interpretujący, że nie ma on klawiatury ani monitora i, oczywiście, PO wie o RDP. A nazwa komputera nie jest magiczną kulą - działa tylko wtedy, gdy pierwszy komputer „wie”, jak zamapować nazwę na adres IP. A sedno pytania brzmi: „Adresy IP są konfigurowane automatycznie”, więc maszyny nie znają się nawzajem.
Scott,
-1

Nie jestem ekspertem, ale możesz po prostu spojrzeć ipconfigw oknie cmd, aby znaleźć adres IP na drugim komputerze, który jest automatycznym adresem IP, jeśli nie ma DHCP, lub po prostu ręcznie skonfigurować adres IP, aby był w tej samej sieci i podsieć jako pierwszy komputer.

Chris
źródło
2
OP mówi „druga maszyna nie ma podłączonych urządzeń peryferyjnych…” w pytaniu. Rozumiem, że oznacza to, że nie ma klawiatury ani monitora.
Scott