Windows 호스트에서 Linux 게스트 가상 머신의 IP 주소(192.168.1.19)로의 ping 실패를 해결하는 동안 다음을 수행했습니다 traceroute
.
$ traceroute 192.168.1.19
traceroute to 192.168.1.19 (192.168.1.19), 30 hops max, 60 byte packets
1 Samsung.station (192.168.1.17) 3132.517 ms !H 3132.491 ms !H 3132.489 ms !H
$ ping 192.168.1.19
PING 192.168.1.19 (192.168.1.19) 56(84) bytes of data.
From 192.168.1.17 icmp_seq=1 Destination Host Unreachable
From 192.168.1.17 icmp_seq=2 Destination Host Unreachable
$ ping hostname
PING hostname (192.168.1.19) 56(84) bytes of data.
From Samsung.station (192.168.1.17) icmp_seq=1 Destination Host Unreachable
From Samsung.station (192.168.1.17) icmp_seq=2 Destination Host Unreachable
게스트로부터 호스트 IP(192.168.1.15)를 ping할 수 있습니다. 문제는 내 네트워크에 무엇이 있는지 알지만 Samsung.station
이 컴퓨터가 어떤 역할을 해야 할지 모른다는 것입니다 . Wi-Fi 라우터에 로그인했지만 IP 주소가 "192.168.1.17"인 장치를 인식하지 못합니다. 네트워크에 있는 여러 삼성 장치에서 Wi-Fi를 끄거나 연결을 끊었지만 여전히 동일한 결과가 나타납니다.
나의 궁극적인 목표는 핑이 양방향으로 작동하도록 하는 것입니다. 하지만 이제는 이 신비한 장치를 식별하기 위해 할 수 있는 일이 있는지 궁금합니다! 나는 하나를 본 적이있다관련 질문하지만 아직 장치 차단을 시도하지 않았습니다. 먼저 라우터를 다시 시작하기 전에 가장 좋은 다음 단계가 무엇인지 알고 싶습니다. 누군가가 이 문제를 해결하거나 더 많은 정보를 얻는 데 도움이 되는 Linux 도구가 없다고 자신있게 말할 수 있다면 그것도 유효한 대답이 될 것입니다. 감사해요.
고쳐 쓰다
호스트 컴퓨터는 Windows 10을 실행하며 내장된 Wi-Fi 인터페이스를 통해 네트워크에 연결됩니다.
가상 머신은 VirtualBox에 있습니다. 저는 로컬 네트워크 서버에 쉽고 편리하게 액세스할 수 있도록 전용 DHCP IP 주소를 얻기 위해 특별히 "브리지 어댑터"를 선택했습니다. 이 설정은 이전 Ubuntu VM에서는 제대로 작동했지만 여기에 관련된 VM은 새로운 Debian 11 최소(데스크톱 없음) 설치입니다.
또한 Wi-Fi 라우터를 다시 시작하여 몇 가지 사항이 변경되었습니다.
- Windows 호스트는 이제 192.168.1.16에 있지만 Wi-Fi 라우터에는 가상 머신의 "호스트 이름"으로 표시됩니다! 이는 재부팅 전과 같을 수 있으며, Windows 호스트의 호스트 이름이 장치 목록에 없다는 사실을 간과하고 있을 수도 있습니다.
- VM은 여전히 IP 192.168.1.19를 보고합니다. 그러나 이제 호스트 IP(.16)에 대해 ping을 수행할 수 없으며 30개 홉 모두에 대해 192.168.1.16
traceroute
만 표시됩니다 .* * *
- 호스트 에서
traceroute
보고된 게스트 IP는 여전히 IP 17에 대한 신비한 홉을 표시하지만Samsung.station
더 이상 옆에 호스트 이름이 없으며 이전에 어디서 왔는지 알 수 없습니다. 여기있어:
$ traceroute 192.168.1.19
traceroute to 192.168.1.19 (192.168.1.19), 30 hops max, 60 byte packets
1 192.168.1.17 (192.168.1.17) 3121.263 ms !H 3121.242 ms !H 3121.239 ms !H
vm의 출력을 붙여넣으려는데 ip address
클립보드 통합이 작동하지 않고 이전 vm에서 쉬웠던 공유 폴더도 이 vm에서는 표시되지 않아 출력을 파일로 리디렉션할 수 없습니다. 어느 하나.
이제 연결 문제의 원인은 브리지 어댑터가 라우터의 DHCP 서버에서 자체 DHCP IP를 얻을 수 없다는 점인 것으로 보이며, VM 호스트 이름이 Wi-Fi 목록에 나타나므로 해당 IP를 놓쳤을 수도 있습니다. 라우터에서 장치를 재부팅하기 전에.
이는 VirtualBox 문제 해결 문제에 더 가깝다는 것이 밝혀졌습니다. 죄송합니다. 아마도 VM에 고정 IP를 할당할 것입니다. 예상치 못한 점프의 미스터리에 대한 힌트는 여전히 흥미로울 것입니다.
두 번째 업데이트
더 많은 정보를 얻는 데 사용할 수 있다는 점만 기억하세요 tcpdump
. 수년 동안 제가 가장 좋아하는 네트워크 문제 해결 도구 중 하나였습니다! 내 결과를 바탕으로 업데이트나 답변을 게시할 예정입니다. 또한 아직 Windows를 다시 시작하지 않았습니다. 다른 제안도 환영합니다.
답변1
192.168.1.19가 존재하지 않습니다. 192.168.1.17은 존재하지 않는다고 알려줍니다. 동일한 서브넷에 있고 첫 번째 홉이므로 이는 192.168.1.17, samsung.station이 Traceroute 및 ping을 실행하는 시스템임을 나타냅니다. 또는 192.168.1.17이 프록시 역할을 하며 알 수 없는 호스트 이름이 이를 참조합니다. 즉, 여기서는 볼 것이 없습니다.
답변2
간단히 말해서:네트워크 문제는 dockerd
WSL에서 수동으로 실행하여 발생했습니다. ip address
동일한 터미널에서 사용하고 tcpdump
더 높은 해상도를 제공하십시오.
세부 사항
문제 해결 단계를 공유할 만큼 상황이 명확해졌으므로 그럴만한 가치가 있습니다. 허용된 답변은 절대적으로 정확합니다. 핑은 192.168.1.17에서 발생합니다. Ubuntu WSL 탭에서 ping을 실행하고 있었음에도 불구하고 Windows 터미널을 열고 Powershell 탭에서 소스 IP를 고려하고 있었기 때문에 이것이 실수였습니다. ip a
WSL 터미널에서 이 작업을 수행 하면 흥미로운 항목을 볼 수 있습니다.
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:0b:14:ce:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.17/8 brd 192.255.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:bff:fe14:ce50/64 scope link
valid_lft forever preferred_lft forever
미스터리에 주목하라192.168.1.17. 이전에 본 적이 있지만 인터페이스가 다운되고 다른 모든 인터페이스에서 소음이 발생했기 때문에 무시했습니다. 실제로 WSL에 docker를 설치했는데(Windows 버전이 아닌 apt를 사용하여) 네트워크와 어떻게 상호 작용하는지 잘 모르겠지만 눈에 띄는 점프를 주는 것 같습니다. dot17 옆에 표시된 호스트 이름의 경우 이제 다른 이름이 표시되므로 오해의 소지가 있으므로 무시해야 할 캐시 이름임이 분명합니다.
다음을 사용하여 캡처한 Wireshark의 PCAP 파일에서 작업을 확인하는 것이 더 쉽습니다.
sudo tcpdump -i any icmp -w traceroute.pcap
첫 번째 패킷:
1 0.000000 192.168.1.17 192.168.1.17 ICMP 104 Destination unreachable (Host unreachable)
ICMP에서:
Internet Control Message Protocol
Type: 3 (Destination unreachable)
Code: 1 (Host unreachable)
Checksum: 0x7313 [correct]
[Checksum Status: Good]
Unused: 00000000
Internet Protocol Version 4, Src: 192.168.1.17, Dst: 192.168.1.18
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
Total Length: 60
Identification: 0xa55a (42330)
Flags: 0x00
Fragment Offset: 0
Time to Live: 1
Protocol: UDP (17)
Header Checksum: 0x90e3 [validation disabled]
[Header checksum status: Unverified]
Source Address: 192.168.1.17
Destination Address: 192.168.1.18
User Datagram Protocol, Src Port: 36470, Dst Port: 33434
그래서 추가 점프는 없습니다. 또한 Powershell 탭에서 대상을 ping할 수 있다는 것도 알았지만아니요WSL 탭에서. 그래서 WSL을 다시 시작했습니다.
> wsl --list -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
Debian Stopped 2
> wsl --shutdown Ubuntu-20.04
> wsl -d Ubuntu-20.04
ip a
이제 새로 시작된 WSL 셸에서 이 작업을 수행 하면 마지막 항목은 다음과 같습니다.
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
도커 인터페이스가 사라집니다. WSL 셸에서 다시 ping을 수행할 수 있습니다. 그러다 문득 깨달았습니다. 제가 수동으로 도커 데몬을 시작했는데 sudo dockerd &
그 순간 연결이 끊어졌습니다! 또 다른 흥미로운 점은 가상 머신이 브리지 인터페이스를 사용하고 자체 IP 주소가 있고 네트워크의 다른 모든 장치를 ping할 수 있지만 호스트의 IP는 ping할 수 없다는 것입니다.
좋은 소식은 이제 가상 머신에서 docker가 실행되고 있고 WSL에서 또는 PowerShell에서 직접 SSH로 연결할 수 있으며 모든 것이 잘 작동한다는 것입니다.