ในการใช้ Nmap สำหรับ traceroute ให้รัน คำสั่ง ` nmap -sn --traceroute scanme.nmap.orgnmap -g` ตัว-snเลือก `-g` จะข้ามการสแกนพอร์ตในขณะที่ Nmap ตรวจสอบว่าโฮสต์ทำงานอยู่หรือไม่ และ--tracerouteจะขอให้แสดงเส้นทางไปยังโฮสต์ที่ตอบสนอง แทนที่โฮสต์ตัวอย่างด้วยระบบที่คุณเป็นเจ้าของ บริหารจัดการ หรือมีสิทธิ์ในการสแกน คำสั่งที่ระบุเฉพาะเส้นทางนี้จะทำให้การทดสอบแคบกว่าการสแกนพอร์ตเริ่มต้นของ Nmap
คำสั่ง traceroute จะแสดงเราเตอร์ที่ตอบสนองระหว่างคอมพิวเตอร์ที่กำลังสแกนและปลายทาง
สิ่งที่ Nmap traceroute แสดง
โปรแกรม traceroute จะประเมินเส้นทางเครือข่ายโดยการส่งแพ็กเก็ตที่มีค่า IP time-to-live (TTL) หรือ hop-limit ที่แตกต่างกัน เราเตอร์แต่ละตัวจะลดค่านี้ลง เมื่อค่าถึงศูนย์ เราเตอร์อาจส่งข้อความ ICMP “Time Exceeded” กลับมา เครื่องมือสแกนจะใช้ข้อความตอบกลับเหล่านั้นเพื่อระบุจำนวนฮอปและวัดเวลาไป-กลับ (RTT) ค่า TTL นับจำนวนฮอป ไม่ใช่วินาที
วิธีการทำงานของ Nmap แตกต่างจาก traceroute แบบคลาสสิกtracerouteหรือแบบ Windows tracertNmap จะทำการ traceroute หลังจากการสแกน และใช้ผลการสแกนเพื่อเลือกพอร์ตและโปรโตคอลที่น่าจะเข้าถึงเป้าหมายได้ โดยจะเริ่มต้นด้วยค่า TTL สูงและนับถอยหลัง ในขณะที่เครื่องมือ traceroute แบบดั้งเดิมหลายๆ ตัวจะเริ่มต้นที่หนึ่งและนับขึ้น ดังนั้น ผลลัพธ์เส้นทางของ Nmap จึงผูกติดอยู่กับการสแกนและการตรวจสอบที่ทำ มันไม่ใช่แผนที่ที่สมบูรณ์ของทุกเส้นทางที่เป็นไปได้หรือเส้นทางย้อนกลับ
เรียกใช้คำสั่ง Nmap traceroute ในสี่ขั้นตอน
1. ติดตั้ง Nmap และตรวจสอบว่าใช้งานได้หรือไม่
ดาวน์โหลด Nmap จากหน้าดาวน์โหลดอย่างเป็นทางการของ Nmapเลือกตัวติดตั้งสำหรับ Windows หรือ macOS หรือทำตามคำแนะนำการติดตั้งอย่างเป็นทางการสำหรับระบบปฏิบัติการ Linux ของคุณ เปิด Command Prompt, PowerShell, Terminal หรือเชลล์ Linux แล้วป้อนnmap --versionคำสั่ง `nmap` หากไม่พบคำสั่ง ให้ทำการติดตั้งให้เสร็จสมบูรณ์ หรือเพิ่ม Nmap ลงใน command path ของคุณ
ฟังก์ชันการสแกนและ traceroute บางฟังก์ชันต้องการสิทธิ์ในการจับแพ็กเก็ตหรือสิทธิ์ raw-socket ระดับสูง บน macOS หรือ Linux ให้ลองใส่คำนำหน้าคำสั่งsudoหาก Nmap รายงานปัญหาเรื่องสิทธิ์ บน Windows ให้เปิดเทอร์มินัลด้วยสิทธิ์ผู้ดูแลระบบเมื่อจำเป็น ใช้เฉพาะระดับสิทธิ์ที่จำเป็นสำหรับการทดสอบที่ได้รับอนุญาตของคุณเท่านั้น
2. เลือกโฮสต์ที่คุณได้รับอนุญาตให้ทดสอบ
เพื่อความปลอดภัยในการทดสอบ โครงการ Nmap อนุญาตให้สแกน Nmap บนโฮสต์ที่กำหนดไว้อย่างชัดเจน อย่างไรก็ตามscanme.nmap.orgการอนุญาตนั้นมีข้อจำกัด: ห้ามทดสอบช่องโหว่หรือทำการทดสอบแบบปฏิเสธการให้บริการ (Denial-of-Service) และจำกัดการสแกนไม่เกินสิบกว่าครั้งต่อวัน สำหรับโฮสต์อื่นๆ ต้องขออนุมัติจากเจ้าของเครือข่ายก่อน เอกสารคำแนะนำด้านกฎหมายและการใช้งานของ Nmapอธิบายขอบเขตของโฮสต์ทดสอบและเหตุผลที่การอนุญาตการสแกนมีความสำคัญ
3. เริ่มต้นด้วยคำสั่งที่ระบุเฉพาะพาธ
เรียกใช้คำสั่งนี้บน macOS หรือ Linux:
sudo nmap -sn --traceroute scanme.nmap.org
บนระบบ Windows ให้ละเว้นส่วนนี้sudoและใช้เทอร์มินัลที่มีสิทธิ์ผู้ดูแลระบบหากจำเป็น:
nmap -sn --traceroute scanme.nmap.org
ใช้-snร่วมกับ--tracerouteเพื่อขอค้นหาโฮสต์และติดตามเส้นทางโดยไม่ต้องสแกนพอร์ต
เอกสาร อ้างอิงการค้นหาโฮสต์ของ Nmap อธิบายทั้งสองตัวเลือก Nmap ยังคงส่งการตรวจสอบเครือข่ายอยู่-snซึ่งหมายความว่า "ไม่มีการสแกนพอร์ต" ไม่ใช่ "ไม่มีการรับส่งข้อมูล" หากคุณต้องการตรวจสอบบริการเฉพาะเจาะจง ให้ใช้การสแกนพอร์ตแบบจำกัดขอบเขตกับโฮสต์ที่ได้รับอนุญาต เช่น ซึ่งnmap -p 443 --traceroute your-authorized-host.exampleจะตรวจสอบพอร์ต TCP 443 ก่อนการติดตาม และสามารถส่งการรับส่งข้อมูลได้มากกว่าคำสั่ง path-only
4. อ่านรายชื่อฮอปและบันทึกไว้หากเป็นประโยชน์
มองหาTRACEROUTEส่วนและคอลัมน์ต่างๆหมายเลขHOPฮอปจะระบุตำแหน่งที่สังเกตได้ตามเส้นทาง RTT คือเวลาที่โพรบใช้ในการเดินทางไปยังฮอปนั้นและใช้เวลาในการตอบกลับ ไม่ใช่การวัดแบบทางเดียวหรือการวัดโดยตรงของลิงก์เพียงอย่างเดียว ที่อยู่สามารถแสดงเป็นหมายเลข IP หรือชื่อโฮสต์ได้เมื่อการแก้ไขชื่อสำเร็จRTTADDRESS
ตัวอย่างโครงสร้างเท่านั้น: ที่อยู่ของฮอปและเวลาตอบสนองอาจแตกต่างกันไปตามเครือข่ายและช่วงเวลาของวัน
หากต้องการเก็บสำเนาข้อความปกติไว้สำหรับการเปรียบเทียบ ให้เพิ่มตัวเลือกเอาต์พุตของ Nmap:
sudo nmap -sn --traceroute -oN nmap-trace.txt scanme.nmap.org
เมื่อเปรียบเทียบผลลัพธ์ ให้รันคำสั่งเดียวกันจากเครือข่ายต้นทางเดียวกัน การเปลี่ยนแปลงเส้นทางอาจสะท้อนถึงการเปลี่ยนแปลงการกำหนดเส้นทาง การปรับสมดุลโหลด หรือการกรองชั่วคราว มากกว่าที่จะเป็นข้อผิดพลาดโดยตัวมันเอง
แก้ไขปัญหาฮอปส์ที่หายไปหรือสับสน
- เครื่องหมายดอกจันปรากฏขึ้น
* * *หมายความว่า Nmap ไม่ได้รับการตอบกลับที่ใช้งานได้สำหรับการตรวจสอบนั้นก่อนหมดเวลา เราเตอร์อาจกรองหรือจำกัดอัตราการตอบกลับและยังคงส่งต่อทราฟฟิกได้ ดังนั้นการส่งต่อแบบเงียบๆ เพียงครั้งเดียวจึงไม่ได้พิสูจน์ว่าเส้นทางนั้นขาด
- การติดตามไม่เริ่มต้น:ตรวจสอบว่าชื่อโฮสต์ถูกต้อง ปลายทางตอบสนองต่อการตรวจสอบการค้นหา และคุณมีสิทธิ์ที่จำเป็น หากคุณควบคุมเป้าหมาย โปรดตรวจสอบไฟร์วอลล์และกฎเครือข่ายระหว่างเป้าหมายกับเครื่องสแกนของคุณ
- ชื่อไฟล์อาจทำให้การแสดงผลช้าลง:ตัวอย่าง เช่น ให้เพิ่มตัวเลือก
-nเพื่อข้ามการค้นหา DNS ย้อนกลับsudo nmap -n -sn --traceroute scanme.nmap.org
- ความหน่วงที่เพิ่มขึ้นอย่างฉับพลันในจุดเชื่อมต่อเดียว:ให้ถือว่าเป็นเพียงเบาะแส ไม่ใช่หลักฐานยืนยันว่าเกิดความแออัดที่เราเตอร์นั้น การตอบกลับ ICMP อาจล่าช้าหรือถูกลดลำดับความสำคัญ และเส้นทางขาออกและขาเข้าอาจแตกต่างกัน
โหนดกลางที่เงียบๆ ยังคงสามารถส่งต่อข้อมูลได้ ส่วนโหนดถัดไปอาจตอบกลับตามปกติ
Nmap --tracerouteมีประโยชน์เมื่อคุณต้องการข้อมูลเส้นทางควบคู่ไปกับผลลัพธ์การค้นหาโฮสต์หรือการสแกนพอร์ต อ่านรายการฮอปเป็นหลักฐานจากแหล่งข้อมูลเดียว ในเวลาเดียว โดยใช้โพรบเฉพาะ ไฟร์วอลล์ การกระจายโหลด และการกำหนดเส้นทางแบบไม่สมมาตร ล้วนสามารถซ่อนหรือเปลี่ยนแปลงบางส่วนของภาพได้