อะไรคือความแตกต่างที่สำคัญระหว่าง tracepath และ traceroute


58

ฉันเพิ่งอ่านบทความเกี่ยวกับ HowToGeek เล็กน้อยที่ทำให้ฉันเกาหัวเล็กน้อย แม้ว่าฉันจะมีประสบการณ์กับ Linux ค่อนข้างน้อยดังนั้นโปรดยกโทษให้ฉันหากนี่เป็นระดับเริ่มต้น:

"คำสั่ง tracepath คล้ายกับ traceroute แต่ไม่ต้องการสิทธิ์พิเศษ"

http://www.howtogeek.com/108511/how-to-work-with-the-network-from-the-linux-terminal-11-commands-you-need-to-know/

traceroute และ tracepath ทำหน้าที่คล้ายกันอย่างไร

traceroute ทำอะไรซึ่งต้องใช้สิทธิ์รูท tracepath นั้นไม่ได้?

มีสถานการณ์ที่หนึ่งควรชอบการติดตามมากกว่า traceroute หรือในทางกลับกัน?

คำตอบ:


57

traceroute และ tracepath ทำหน้าที่คล้ายกันอย่างไร

ทั้งสองโปรแกรมทำสิ่งเดียว: ส่งและรับแพ็กเก็ต IP บางอย่าง

คุณสามารถใช้ sockets API ปกติเพื่อทำสิ่งนี้หรือคุณสามารถจัดการแพ็คเก็ตข้อมูลดิบได้จากอินเทอร์เฟซ API ของซ็อกเก็ตไม่ต้องใช้สิทธิ์รูทเพราะมันค่อนข้างปลอดภัย มีกลไกในตัวเพื่อป้องกันไม่ให้โปรแกรมหนึ่งเข้าถึงแพ็กเก็ต IP ที่โปรแกรมอื่นทำ

Tracepath ใช้ sockets API สำหรับฟังก์ชันการทำงานทั้งหมด Traceroute จัดการกับแพ็กเกจดิบสำหรับฟังก์ชันบางอย่าง

traceroute ทำอะไรซึ่งต้องใช้สิทธิ์รูท tracepath นั้นไม่ได้?

มันจัดการกับแพคเกจดิบ

ในการจัดการแพ็คเก็ตข้อมูลดิบคุณต้องมีสิทธิ์ใช้งานรูทเพราะการทำเช่นนี้คุณจะต้องผ่านกลไกความปลอดภัยของ sockets API คุณสามารถเข้าถึงการสื่อสารของกระบวนการและผู้ใช้ทั้งหมดโดยใช้อินเทอร์เฟซนั้น แค่คิดเกี่ยวกับสิ่งที่ไวรัสสามารถทำได้ถ้าเขาสามารถจัดการกับแพคเกจดิบ

มีสถานการณ์ที่หนึ่งควรชอบการติดตามมากกว่า traceroute หรือในทางกลับกัน?

หนึ่งคำสั่งขั้นสูงที่มีอยู่ใน Traceroute คือความสามารถในการเรียกใช้การติดตามเครือข่ายโดยใช้โปรโตคอล IPv4 หรือ IPv6 นอกจากนี้ยังเป็นไปได้ที่จะเลือกระหว่างรูปแบบข้อมูล ICMP, TCP หรือ UDP สำหรับโพรบ Traceroute สามารถเลือกการกำหนดเส้นทางต้นทางสำหรับโพรบและเลือกพอร์ตที่จะส่งจาก สามารถกำหนดขีด จำกัด ของ TTL ขั้นต่ำและสูงสุดที่จะยอมรับจากโพรบขาออก นอกจากนี้ Traceroute ยังสามารถแสดงเวลารอการตอบสนองต่อการปิงรวมถึงกำหนดจำนวนแพ็กเก็ตที่ส่งในแต่ละโพรบและจำนวนโพรบที่จะส่ง คำสั่งเหล่านี้บางคำสั่งอาจไม่ได้รับการรองรับโดยฮาร์ดแวร์ระบบเครือข่ายตามเส้นทางซึ่งสามารถยกเลิกการสอบสวนก่อนที่จะถึงปลายทางเป้าหมาย

แหล่งที่มา: 1 2 3


1
ในที่สุดคำตอบด้วยความกังวลด้านความปลอดภัยที่ถูกกฎหมายที่มีผลต่อระบบท้องถิ่น ขอบคุณ!
Iszi

10

คุณสามารถใช้tracerouteสำหรับการติดตามเครือข่ายขั้นสูงคุณสามารถเลือกระหว่างโปรโตคอล IPv4 และ Ipv6 คุณยังสามารถเลือกระหว่างรูปแบบข้อมูล ICMP, TCP หรือ UDP สำหรับโพรบ

ดังนั้นจึงtracerouteมีตัวเลือกขั้นสูงมากกว่าtracepathที่ใช้แพ็คเก็ต UDP สำหรับการติดตาม

ตอนนี้เกี่ยวกับสิทธิ์ superuser :

คุณสามารถใช้tracerouteกับทั้งผู้ใช้ปกติและ superuser ที่ขึ้นอยู่กับตัวเลือกที่คุณต้องการใช้นี่คือตัวอย่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ที่นี่เราใช้แพ็กเก็ตUDPซึ่งไม่ต้องการสิทธิ์พิเศษของผู้ใช้ขั้นสูง

ป้อนคำอธิบายรูปภาพที่นี่

ที่นี่เราจะใช้ICMPแพ็กเก็ตก้องซึ่งต้องมีสิทธิ์

ด้วยแพ็คเก็ตICMPคุณสามารถโจมตี DDOS ได้

เพื่อเรียนรู้เกี่ยวกับตัวเลือก ICMP Traceroute Man Page

วิธีดูtracerouteตัวเลือกพิมพ์ในเทอร์มินัลman traceroute

ICMP ต้องการสิทธิ์ผู้ใช้ขั้นสูงเพื่อให้มั่นใจว่าผู้ดูแลระบบสามารถใช้ตัวเลือกบางตัวได้เนื่องจากสามารถใช้ในการ ping of Death และรวบรวมข้อมูลเกี่ยวกับเครือข่ายเฉพาะสิทธิพิเศษที่นี่จะทำให้ผู้ใช้ขั้นสูงสามารถเปลี่ยนตัวเลือกโดยใช้ ICMP แพ็คเก็ต

ที่คุณสามารถเห็นได้เมื่อคุณพยายาม ping ดังนั้นเว็บไซต์เช่นwww.microsoft.comนั้น ping ของคุณจะล้มเหลวแม้จะออนไลน์และนั่นเป็นเพราะเราเตอร์ของ Microsoft บล็อก ICMP_requests

ดังนั้น linux จึงปกป้องระบบจากผู้ใช้ที่ไม่มีสิทธิพิเศษดังนั้นพวกเขาจึงไม่สามารถใช้คำสั่งนี้เพื่อโจมตีได้


3
โดยทั่วไปแล้วข้อ จำกัด ต่อผู้ใช้ที่ไม่มีสิทธิพิเศษถูกใช้เพื่อปกป้องระบบจากการถูกโจมตีไม่ใช่จากการใช้เป็นเวกเตอร์สำหรับการโจมตีระบบอื่น สิ่งนี้ไม่สมเหตุสมผลสำหรับฉัน - คุณรู้จักเอกสารประกอบใด ๆ ที่สนับสนุนสิ่งนี้หรือไม่?
Iszi

3

ฉันคิดว่าคุณต้องอ่านhttp://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.htmlนี้

จากลิงค์ด้านบน:

tracepath

Tracepath ติดตามเส้นทางไปยังที่อยู่เครือข่ายที่กำหนดรายงานเกี่ยวกับ "time to live" หรือ TTL lag และหน่วยการส่งสูงสุด (MTU) ไปพร้อมกัน คำสั่งนี้สามารถเรียกใช้โดยผู้ใช้คนอื่น ๆ ด้วยการเข้าถึงพรอมต์บรรทัดคำสั่ง


Traceroute Basics

Traceroute นั้นเหมือนกับ Tracepath ยกเว้นว่าโดยค่าเริ่มต้นจะให้ค่า TTL เท่านั้น หากคุณต้องการข้อมูลเพิ่มเติมคุณต้องขอตัวแปรเหล่านั้นในบรรทัดคำสั่ง นอกจากนี้ traceroute ต้องการการเข้าถึง superuser เพื่อเรียกใช้คำสั่งบนกล่อง Linux และเราเตอร์บางตัวอาจไม่สนับสนุนการร้องขอข้อมูลขั้นสูงบางอย่างตามเส้นทาง ในระบบ Windows ผู้ใช้ที่มีสิทธิ์เข้าถึงบรรทัดคำสั่งสามารถเรียกใช้ Traceroute ได้


ขอบคุณสำหรับลิงค์ แต่คุณสามารถใส่เนื้อหาจริงลงในคำตอบได้ไหม?
Iszi

สวัสดี bodhi.zazen ขอบคุณสำหรับการปรับปรุงโพสต์ของฉัน :)
rɑːdʒɑ

5
ขอขอบคุณสำหรับการชี้แจง. แต่คำตอบที่นี่ (ยังไม่ได้อากาศเพื่อตรวจสอบการเชื่อมโยงไปยัง) ยังขาดหายไปสองส่วนของคำถาม: ทำไมไม่tracerouteจำเป็นต้องเข้าถึง superuser (โดยเฉพาะอย่างยิ่งตั้งแต่มันจริงดูเหมือนว่ามันจะน้อยกว่าtracepathค่าเริ่มต้น)? และนอกเหนือจากสถานการณ์ที่คุณไม่ได้เป็น superuser ทำไมคุณควรเลือกหนึ่งในอีกสถานการณ์หนึ่ง
Iszi

1

pingและtracerouteใช้โปรโตคอล ICMP เช่นเดียวกับ UDP และ TCP สามารถเข้าถึงได้ผ่าน sockets API ปกติ เฉพาะหมายเลขพอร์ต UDP และ TCP ที่น้อยกว่า 1024 เท่านั้นที่ได้รับการปกป้องจากการใช้งานนอกเหนือจากโดยรูท ผู้ใช้ทุกคนสามารถใช้ ICMP ได้อย่างอิสระ

ถ้าคุณอยากจะดูว่าปิงและการทำงาน traceroute คุณสามารถดาวน์โหลดการใช้ตัวอย่างรหัส C สำหรับพวกเขาจากCodeProject

ในระยะสั้นพวกเขาเปิดซ็อกเก็ต ICMP อย่างง่ายและ traceroute จะแก้ไขการเพิ่มขึ้นของ TTL โดยใช้ setsockopt จนกระทั่งถึงเป้าหมาย

ที่มา: ลิงค์


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