이더넷 케이블이 연결된 고정 IP를 찾았습니다.

이더넷 케이블이 연결된 고정 IP를 찾았습니다.

좋아요, 제 질문은 약간 기초에서 벗어났습니다. 비슷한 질문을 많이 읽었지만 실제로는 제가 달성하려는 작업을 수행하지 않았습니다.

따라서 이를 설명하는 가장 좋은 방법은 다음 시나리오를 사용하는 것입니다.

저는 컴퓨터 3대를 갖고 있는데 모두 이더넷 어댑터를 사용하고 있습니다.

  • 데스크톱 컴퓨터 - 제가 작업하는 컴퓨터인 Windows에는 Cygwin이 있습니다.
  • 휴대용 라즈베리파이 - 제가 다른 곳으로 갈 때 사용하는 것입니다.
  • Ubuntu가 설치된 노트북 - 백업 계획으로 거의 갖고 있습니다.

Raspberry Pi를 다른 설치 위치로 이동할 때 eth0을 통해 다른 컴퓨터에 직접 연결할 수 있어야 합니다. 문제는 내 노트북을 꺼내서 다른 사람의 컴퓨터가 내 파이와 함께 작동할 수 있도록 여러 전달 솔루션을 활성화하는 것을 싫어한다는 것입니다.

Pi에 연결하고 싶을 때마다 Pi의 고정 IP를 192.168.0.* 등으로 설정하고 업무 컴퓨터를 192.168.0.1로 설정해야 합니다. 이러한 옵션을 설정하기 위해 키보드와 기타 도구를 꺼내고 싶지 않습니다. 이제 Pi가 부팅되면 IP를 192.168.0.3으로 설정하고 DHCP를 통해 연결하지 않고 찾는 Python 스크립트를 만들었습니다.

이는 이더넷을 특정 IP에 유지하고 연결 인터페이스를 공유하기 위해 뒤에서 해킹을 수행하는 데스크탑에 연결하는 데 유용합니다. 다른 기계에서는 사용할 수 없습니다.


이는 실제 질문으로 이어집니다.가능하다면 Pi를 어떻게든 만들 수 있나요?이더넷 쿼리직접 연결된 컴퓨터에 이미 고정 IP 주소가 설정되어 있는지 확인한 다음 페어링할 일치하는 IP로 설정하시겠습니까?

그래서 제가 말하려는 것은 이 파이를 기계에 연결할 수 있어야 한다는 것입니다. 어댑터(호스트)의 IP는 이미 설정되어 있습니다. 실제로 192.168.172.1이고 pi가 인식한다고 가정합니다.192.168.172._그리고 SSH를 통해 주소를 3 또는 31과 같은 것으로 설정하세요.

"전문가"들은 이것이 불가능하다고 말하지만 나는 그것을 믿지 않습니다. 지금은 21세기이고 돌연변이 연결이 없습니다. 신성 모독. 하하, 나는 이것을 알아내고 싶었고 그것이 내 리눅스 무기고에 있으면 유용할 것이라고 생각했습니다. "동화 이더넷 데몬"


[편집:] 설명하자면 단일 케이블을 통해 연결됩니다. 허브나 스위치와 같은 네트워크에 있는 경우 DHCP가 있으며 PC는 자동으로 주소를 가져옵니다. 따라서 우리 솔루션은 다른 시스템에 대한 무작위 연결에만 관심이 필요합니다.

답변1

입에 발을 담그고 싶지는 않지만 이 Pi를 연결하는 임의의 기계로는 당신이 하려는 일이 가능하지 않을 것 같습니다.

생각해 보세요. 문제에는 두 가지 측면이 있습니다. 시작 시 R-Pi는 고정된 주소를 갖습니다. 옳은? 연결하려는 컴퓨터가 해당 IP 주소/서브넷 마스크로 구성되지 않은 경우 두 컴퓨터는 어떻게 통신하고 정보를 교환합니까? 자신의 노트북을 가지고 있으면 통제된 환경에 있게 됩니다. 임의의 머신에 연결하면 예상치 못한 결과를 예상해야 하며, 이를 어떻게 처리할 것입니까? 192.168.xy 또는 172.10.xy와 같은 일반적으로 의심스러운 IP 주소부터 시작하여 가능한 모든 IP 주소를 검색하는 프로그램을 실행할 수 있지만 이는 매우 길고 지루한 프로세스입니다.

두 번째는 R-Pi를 연결하는 시스템이 WiFi나 다른 네트워크 어댑터 등을 통해 다른 네트워크에 있는 경우 다시 완료된다는 것입니다.

연결을 제어하는 ​​것은 R-Pi가 아니라는 점을 이해해야 합니다. 이것은 다른 쪽입니다. "다른 쪽"이 무작위일 때 어떻게 하시나요?

답변2

당신은 그것을 사용할 수 있습니다 arp-scan:

$ arp-scan --interface=eth0 192.168.0.0/24

또는 nmap:

$ nmap -sP 192.168.0.0/24

응답을 위해 네트워크의 모든 주소를 검색합니다.

문제는 Pi가 연결된 모든 컴퓨터가 (위의 예에서와 같이) 192.168.0.0/24 네트워크에 있다고 가정합니까?

이렇게 하면 검색 시간이 그리 오래 걸리지 않습니다. 내 WiFi 네트워크에서는 3.56초, nmap내 WiFi 네트워크에서는 2.28초가 걸렸습니다 arp-scan.

모든 것이 RFC 1918에 지정된 전체 192.168.0.0/16에 있다고 가정합니까? 이 작업에는 약 4.5분이 소요됩니까 arp-scan?

동일한 스캔 속도로 10.0.0.0/8을 스캔하는 데 거의 18시간이 걸립니다.

그러나 전체 4,294,967,296개의 가능한 IP 주소를 검색하면 반년 이상이 걸릴 수 있습니다!

물론 IPv4 주소가 있다고 가정합니다. 아마도 IPv6에 있을 것이고, 이는 2,420,352,024년까지 작동합니다!

192.168.0.0/24보다 큰 파일을 스캔하는 경우 키보드를 연결할 수도 있습니다 :-)

답변3

트래픽이 적당한 네트워크에 r-pi를 연결하면 인터페이스에서 ARP 트래픽을 모니터링할 수 있습니다.

이는 @garethTheRed의 답변과 유사하지만 능동 조사보다는 수동 모니터링에 의존합니다. ARP 패킷을 보는 데 시간이 오래 걸릴 수 있습니다. ping연결하려는 컴퓨터에서 실행하거나 다른 작업을 수행하면 도움이 될 수 있습니다.

tcpdump -l -n -i eth0 arpeth0을 사용하여 ARP 패킷을 수신 할 수 있습니다 . 스크립트가 ARP who-has또는 ARP 패킷을 찾으면 ReplyIP 주소를 추출하고 ARP 테이블에 없는 동일한 서브넷에서 임의의 IP를 선택하여 사용해 보십시오.

tcpdump또는 arp -n -i eth0 | awk 'NR>1 && !/incomplete/ {print $1}'일반 명령을 실행하여 대신 커널 ARP 테이블에 표시된 IP 주소 목록을 출력할 수 있습니다.

경고하다: 실제로 시청을 해보면 네트워크에서 사용되는 IP가 보이지 않습니다.다른 컴퓨터에서 사용되지 않거나 다른 컴퓨터에 할당되지 않는다는 의미는 아닙니다.. 이는 최근에 네트워크에서 활성화되지 않았거나 전환된 네트워크에 있고 브로드캐스트 패킷을 보내지 않음을 의미할 수 있습니다. 네트워크에 있는 다른 사람의 IP 주소를 가로채면 소리를 지르게 될 수도 있습니다. IP 하이재킹으로 인한 부작용에 따라 추가 결과가 발생할 수 있습니다. (예: 서버나 라우터에 속한 IP 주소 또는 상사의 노트북에 속한 IP 주소를 하이재킹하면 해고될 수 있습니다.)


훨씬 덜 번거로울 수 있는 또 다른 옵션은 다음과 같습니다.

  1. r-PI에 고정 IP 주소를 설정합니다. 개인 RFC-1918 IP 주소를 사용합니다. 자신의 LAN에 있는 모든 컴퓨터에 동일한 서브넷을 사용하십시오. 다른 사이트에서는 사용되지 않을 것 같은 옵션을 선택하세요(예:아니요192.168.0.x와 같이 일반적으로 사용되는 기본값 중 하나입니다.

  2. 다른 컴퓨터에서 r-PI와 통신해야 할 때마다 서브넷의 두 번째 IP 주소를 해당 컴퓨터의 이더넷 인터페이스에 추가하기만 하면 됩니다(아직 동일한 서브넷에 있지 않은 경우).

참고: 네트워크 스위치는 알 수 없는 서브넷에서 패킷을 삭제하도록 구성되는 경우가 있습니다. 이 경우 가장 좋은 옵션은 r-PI를 DHCP 클라이언트로 만드는 것입니다(아니요룬DHCP섬기는 사람r-PI에 연결한 다음 소유/제어하지 ​​않거나 다른 DHCP 서버가 실행 중인 네트워크에 연결합니다.

관련 정보