이것이 네트워크 문제라고 하더라도 경험이 풍부한 Unix/Linux 사용자 문제라고 말하고 싶습니다.
노력하고있어수동으로 네트워크 보내기마법의 가방을 사용하여에코와 리디렉터(파일 설명자).
이것은 하나입니다예컴퓨터를 깨우려면 네트워크 브로드캐스트(255.255.255.255)를 통해 데이터를 전송해야 합니다.맥 00:17:31:3F:D3:A9(FFFFFFFFFFFF 다음에 콜론 없이 16번의 MAC이 옵니다):
ffffffffffff0017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a9
평소 프로그램에서 Wake on LAN 매직 패킷을 보냈습니다(IH월또는 wakeonlan
Linux용 도구)가 나에게 잘 작동합니다.캡처됩니다WireShark의 네트워크 트래픽:
강조 표시된 녹색 부분을 참고하세요. 마법 가방은바르게16진수로 전송됩니다.
지금이 절호의 기회 다리디렉터 에코방법.
IP 주소, UDP 프로토콜, 포트 번호 4000을 브로드캐스트하기 위해 매직 패킷을 에코합니다.
exec 6<>/dev/udp/255.255.255.255/4000
echo "ffffffffffff0017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a90017313fd3a9" >&6
결과가 없다(원격 컴퓨터를 깨울 수 없습니다.) WireShark의 패킷 캡처입니다.다른:
binary area
보시다시피 이제 매직 패킷이 메시지 오른쪽(!)에 위치합니다. 왼쪽 영역에는 각각이 (ASCII 코드로 가정) F
로 표시되고 , 각각은 ...등 으로 표시됩니다 . 그런데 WireShark는 데이터를 "MagicPacket"으로 감지하지 않습니다.66
0
30
무엇인가요올바른 보내는 방법내 데이터를 쉘을 통해 네트워크 카드로 직접 전송할 수 있습니까?
추신: 이 문제를 ServerFault로 옮겨야 할까요? 나는 이것이 ASCII 또는 바이너리 변환 문제에 대한 일종의 16진수와 같다고 생각합니다.
답변1
정말 간단합니다.
- 다음에 추가16진수 사양 "\x"두 문자마다.
echo -e
16진수 의 경우설명했다. 다른 쉘에서 다른 작업이 수행되므로printf
사용할 수도 있습니다 .echo
동일한 샘플 데이터 사용:
echo -e "\xff\xff\xff\xff\xff\xff\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9\x00\x17\x31\x3f\xd3\xa9" >&6
이번에는 컴퓨터가 깨어나야 합니다.
- 노트: 모든 껍질이 이렇지는 않습니다이 기능을 지원하세요. 실제로 소수만이 그렇게 합니다. 인용하다이 스레드누가 그랬는지 알아보세요. 나를 위한,시빈최신 버전의 Windows(2015년 6월)는
Bash 4.3.39(2)-release (i686-pc-cygwin)
완벽하게 실행됩니다. - 노트 2: 안타깝게도 Ubuntu(v14.04)와 Kali(v1.1.0)는지원하지 않음오늘은 설명드린 대로이 스레드. 네트워크 호환성 문제로 인해 Bash에서 비활성화되었을 수 있습니다.
- 노트 3
/dev/protocol/host/port
:글쎄요, 이것이 올바른 접근 방식이 아니라고 보고한 사람들(위 스레드 참조)이 절대적으로 옳다는 점을 인정해야 합니다 . 예를 들어, 16진수 코드는\x0a
네트워크 데이터그램에 대한 일부 제어 코드 역할을 하여 패킷을 분할합니다. 따라서0a:11:22:33:44:55
이 방법으로는 MAC 주소를 사용할 수 없습니다 . 이제 전환할 시간입니다netcat
.socat
.