traceroute가 작동하지 않습니다. 출력은 * * *이지만 네트워크는 정상입니다


15

내 Linux 상자에서 traceroute가 작동하지 않습니다. 출력은 다음과 같습니다

$ traceroute google.com

traceroute to google.com (209.85.231.104), 30 hops max, 52 byte packets
1  * * *
2  * * *
3  * * *
4  * * *

아무도 왜 작동하지 않는지 말해 줄 수 있습니까? 그 뒤에 가능한 이유가 있습니까?

답변:


10

기본적으로 traceroute는 호스트 추적에 높은 UDP 포트를 사용합니다. 그러나 때때로 방화벽은 이러한 UDP 포트를 차단합니다.

"-I"(대문자 i) 매개 변수를 명령 행에 추가하십시오. 예 :

traceroute -I www.google.it

호스트 추적에 UDP 대신 ICMP를 사용합니다.


2

방화벽을 우회하려면 -T (tcp) 또는 -U (udp)를 사용하십시오.
일부 라우터 / 방화벽은 icmp echo를 통과시키지 못하므로 2를 사용하여 통과시킵니다.
어쨌든 위키 백과에 설명 된 것처럼 데비안 상자에서 traceroute는 여전히 udp가 아닌 icmp 패킷을 사용합니다.

편집하다

나는 틀렸다 ... 그것은 udp를 사용하고 ... ICMP는 다시 연결할 수없는 포트입니다 ... 죄송합니다


1
macOS의 경우 -P TCP 또는 -P UDP이고 -P ICMP는 shodanshok의 답변에서 -I와 같습니다.
MrG

1

그것은 당신이 UDP 패킷을 차단 상류 방화벽 일 수 있었다 추적 경로를

최신 유닉스 계열 운영 체제에서 기본적으로 traceroute 유틸리티는 대상 포트 번호가 33434에서 33534 인 UDP 데이터 그램을 사용합니다.


$는 windows one보다는 unix prompt 일 가능성이 높으며 windows traceroute 명령은 tracert입니다. 그리고 질문은 리눅스에 대해 알려줍니다 ...
반경

나는 이것을 깨달았으므로 대답을 편집했다.
lalalalalalala

추적 경로에 ICMP 패킷이 사용되었다고 생각했습니다. 유닉스 기반 시스템이 UDP를 사용한다는 것을 몰랐습니다. 매일 새로운 것을 배우십시오.
dbasnett

1

icmp TIME_EXCEEDED 응답이 기본 게이트웨이로 사용하는 라우터 / 방화벽 또는 Linux 시스템 자체에 의해 필터링되기 때문일 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.