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

สิ่งนี้จะใช้ ICMP แทน UDP สำหรับการติดตามโฮสต์


2

ลองใช้ -T (tcp) หรือ -U (udp) เพื่อข้ามไฟร์วอลล์
เราเตอร์ / ไฟร์วอลล์บางตัวไม่อนุญาตให้ผ่านช่องทาง icmp echo นั่นคือเหตุผลที่คุณจะต้องใช้ 2 ผ่านเพื่อส่งผ่าน
อย่างไรก็ตามตรงกันข้ามตามที่ระบุไว้ในวิกิพีเดียในกล่องติดตาม debian ของฉันยังคงใช้แพ็คเก็ต icmp และไม่ udp

แก้ไข

ฉันผิด ... ใช้ udp ... icmp ที่กลับมาเป็นพอร์ตที่เข้าถึงไม่ได้ ... ขอโทษ


1
สำหรับ macOS จะเป็น -P TCP หรือ -P UDP และ -P ICMP จะเหมือนกับ -I ในคำตอบของ shodanshok
MrG

1

อาจเป็นได้ว่าไฟร์วอลล์ต้นน้ำจากคุณกำลังปิดกั้นแพ็คเก็ต UDP Traceroute

บนระบบปฏิบัติการแบบ Unix ที่ทันสมัยยูทิลิตี้ traceroute โดยค่าเริ่มต้นจะใช้ดาตาแกรม UDP พร้อมพอร์ตปลายทางที่มีหมายเลขจาก 33434 ถึง 33534


$ น่าจะเป็นระบบยูนิกซ์มากกว่า windows one และ windows traceroute คือ tracert และคำถามบอกเกี่ยวกับลินุกซ์ ...
รัศมี

ฉันรู้สิ่งนี้ดังนั้นฉันจึงแก้ไขคำตอบ
lalalalalalala

ฉันคิดว่าเส้นทางการติดตามใช้แพ็คเก็ต ICMP ฉันไม่ทราบว่าระบบที่ใช้ Unix นั้นใช้ UDP เรียนรู้สิ่งใหม่ทุกวัน
dbasnett

1

อาจเป็นเพราะคำตอบ icmp TIME_EXCEEDED ถูกกรองโดยเราเตอร์ / ไฟร์วอลล์ที่คุณใช้เป็นเกตเวย์เริ่มต้นหรือโดยระบบ Linux ของคุณเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.