Traceroute는 Linux에서는 작동하지 않지만 Windows에서는 작동합니다.

Traceroute는 Linux에서는 작동하지 않지만 Windows에서는 작동합니다.

저는 리눅스 민트 사용자입니다. Linux에서는 Traceroute를 실행하고 Windows에서는 Tracert를 실행합니다. Linux에서는 별표만 표시됩니다. Windows에서는 모든 것이 잘 작동하는 것 같습니다. 이것이 출력이다

윈도우:

윈도우

리눅스 민트:

리눅스 민트

왜 이런 일이 발생합니까? 이 문제를 해결하기 위해 제가 할 수 있는 일이 있나요?

답변1

이러한 차이가 발생하는 한 가지 이유는 Windows가 tracert기본적으로 ICMP를 사용하는 반면 Linux는 traceroute기본적으로 UDP를 사용하기 때문입니다. -ITraceroute 옵션을 사용하면 다음과 같은 결과가 생성됩니다 tracert.

traceroute -w 10 -I google.it

traceroute문서 에서 :

현대 네트워크 환경에서는 방화벽의 광범위한 사용으로 인해 전통적인 경로 추적 방법이 항상 적용 가능한 것은 아닙니다. 이러한 방화벽은 "가능성이 없는" UDP 포트는 물론 ICMP 에코까지 필터링합니다. 이 문제를 해결하기 위해 일부 추가 경로 추적 메서드(tcp 포함)가 구현됩니다. 아래에서 사용 가능한 메서드 목록을 참조하세요. 이러한 방법은 방화벽을 우회하기 위해 특정 프로토콜과 소스/대상 포트를 사용하려고 시도합니다(이를 허용된 네트워크 세션 유형의 시작으로 간주함).

사용 가능한 방법 목록

일반적으로 특정 추적 경로 메소드는 -M 이름을 통해 선택해야 할 수 있지만 대부분의 메소드에는 간단한 명령줄 스위치가 있습니다(있는 경우 메소드 이름 뒤에서 볼 수 있습니다).

기본

전통적인, 오래된 추적 경로 방법. 기본적으로 사용됩니다.

프로브 패킷은 소위 "불가능한" 대상 포트가 있는 UDP 데이터그램입니다. 첫 번째 프로브의 "가능성이 없는" 포트는 33434이고, 다음 프로브마다 1씩 증가합니다. 이러한 포트는 사용될 것으로 예상되지 않으므로 대상 호스트는 일반적으로 최종 응답으로 "icmp unreach port"를 반환합니다. (그러나 일부 애플리케이션이 그러한 포트를 수신할 때 어떤 일이 발생하는지 아무도 모릅니다.)

답변2

이 시도:

traceroute -M icmp google.it

관련 정보