내 데비안 컴퓨터에 NIC 카드가 있습니다. 컴퓨터는 꺼져 있지만 나중에 wake-on-LAN 매직 패킷을 보내 다른 데비안 컴퓨터에서 깨울 수 있도록 네트워크 카드가 켜져 있는지 알아야 합니다. 카드의 MAC 주소가 있습니다. MAC에서 이더넷 카드를 ping하여 카드가 열려 있는지 확인할 수 있는 방법이 있습니까?
ARP 항목을 생성하려고 합니다.
arp -s 192.168.2.2 00-0c-0d-ef-02-03
ping 192.168.2.2
하지만 네트워크 카드에 이 IP 주소가 없기 때문에 작동하지 않습니다. 따라서 네트워크 카드는 ping 요청을 수신하지만 응답하지 않습니다. 이 문제를 해결할 방법이 있나요?
Wake-on-LAN 메시지를 보내기 위해 etherwake 패키지를 사용하고 있습니다.
답변1
이 도구를 사용하면 더 나은 행운을 누릴 수 있습니다 arping
. 이 도구는 ping
레이어 3에서 작동합니다.개방형 시스템 상호 연결 모델, arping
레이어 2에서 작업하는 동안.
그러나 이 도구를 사용하려면 시스템의 IP를 알아야 합니다. 두 가지 버전으로 제공되며 대부분의 Unix(Alexey Kuznetsov)에 포함된 표준 버전은 IP 주소만 처리할 수 있는 버전입니다. 이것다른 버전(Thomas Habets) MAC 주소를 이용해서 조회가 가능하다고 합니다.
$ sudo arping 192.168.1.1 -c 1
ARPING 192.168.1.1 from 192.168.1.218 eth0
Unicast reply from 192.168.1.1 [00:90:7F:85:BE:9A] 1.216ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
arping
ping
ICMP 패킷을 보내는 대신 ARP 패킷을 보내는 점을 제외하면 유사하게 작동합니다 .
MAC만 사용하여 시스템 IP 가져오기
다음은 MAC에서 IP로의 역방향 조회를 수행하는 몇 가지 방법입니다.
지도
$ nmap -sP 192.168.1.0/24
그런 다음 arp 캐시에서 해당 머신을 찾으십시오
arp -an
.평평한
$ fping -a -g 192.168.1.0/24 -c 1
그런 다음 위와 동일하게 arp 캐시를 확인하세요.
평평한
$ ping -b -c1 192.168.1.255
그런 다음 위와 동일하게 arp 캐시를 확인하세요.
nbtscan(Windows 호스트에만 해당)
$ nbtscan 192.168.1.0/24 Doing NBT name scan for addresses from 192.168.1.0/24 IP address NetBIOS Name Server User MAC address ------------------------------------------------------------------------------ 192.168.1.0 Sendto failed: Permission denied 192.168.1.4 MACH1 <server> <unknown> 00-0b-12-60-21-dd 192.168.1.5 MACH2 <server> <unknown> 00-1b-a0-3d-e7-be 192.168.1.6 MACH3 <server> <unknown> 00-21-9b-12-b6-a7
답변2
NIC 자체는 응답을 보내지 않기 때문에 정상적인 NIC를 핑할 수 없습니다.
실행 중인 컴퓨터만 응답을 보낼 수 있습니다.
일반 네트워크 인터페이스 카드는 스스로 어떤 응답도 보내지 않습니다. 이를 위해서는 항상 컴퓨터에서 실행되는 소프트웨어가 필요합니다.
컴퓨터의 CPU 전원이 꺼지면 ping에 대한 응답을 보낼 실행 중인 소프트웨어가 없습니다.
Wake on LAN은 단방향입니다.
LAN에서 깨우기컴퓨터가 NIC에 부분적으로 전원을 공급하여 이더넷 프레임을 수신하고 그 안에서 매직 깨우기 시퀀스를 찾도록 허용하지만 NIC는 여전히 응답을 보내지 않습니다. Wake on LAN은 엄격히 단방향입니다. 답장이 전송되지 않았습니다.
예외
전체 NIC 구현과 같이 자체적으로 응답을 보낼 수 있는 특수 NIC가 있습니다.TCP 핸드셰이크 오프로드.
답변3
명령 은 ether-wake
MAC 주소를 통해 작동하므로 (a) IP 주소가 필요하지 않으며 (b) 명령을 무해하게 보낼 수 있습니다(이미 깨어 있는 경우 깨우면 아무런 영향을 미치지 않습니까?).
arp -an
MAC을 얻기 위해 grep을 사용하여 대상 호스트의 IP를 얻어 기존 arp 캐시 목록을 확인할 수 있습니다. 그러나 arp는 캐시이기 때문에 캐시가 "시간 초과"되었을 수 있습니다(그리고 여전히 "깨어난" 상태일 수 있습니다). 그런 다음 IP를 찾기 위해 무차별 대입 방법을 사용해야 할 수도 있습니다. 예를 들면 다음과 같습니다.
sudo nmap -sP 192.168.2.0/24 | less
(그런 다음 00:0c:0d:ef:02:03을 찾으십시오.) - 방화벽 및 기타 요소가 방해가 되지 않는다고 가정합니다!
답변4
이것은 Mac 주소를 통해 핑하는 간단한 스크립트입니다. 예를 들어 저장하고 실행하십시오.
macping aa:bb:cc:dd:ee:ff
결과를 데이지 체인 방식으로 연결하여 다음과 같은 다른 작업을 조건부로 수행할 수도 있습니다.
macping aa:bb:cc:dd:ee:ff && echo do something if online || echo do something if offline
-
#!/bin/bash
network=192.168.1.1/24
if [ "$#" -ne 1 ]; then echo Usage example: $0 aa:bb:cc:dd:ee:ff; exit 2; fi;
nmap -sP $network >& /dev/null
ip=$(arp -n | grep $1 | awk ' { print $1 }')
ping $ip -n -q -c 2 -i 0.2 -w 1 >& /dev/null
if [ $? -eq 0 ]; then
echo Device is online \($ip\)
else
echo Device is offline
exit 1
fi;