แพ็คเก็ต Sniff UDP บนพอร์ตท้องถิ่น


13

ฉันต้องการทราบว่าเนื้อหาของแพ็กเก็ตหนึ่งแอปพลิเคชัน "APM Planner" ส่งไปยัง "MAVProxy" อีกอันคืออะไร ฉันรู้ว่าพวกเขากำลังสื่อสารผ่านพอร์ต UDP 14550 ฉันลองใช้tcpdumpโดยใช้คำสั่งต่อไปนี้

tcpdump -u port 14550

และ

tcpdump udp

และ

netstat -uanpc | grep 14550

แต่ไม่มีใครแสดงให้ฉันเห็นว่าทั้งสองแอปพลิเคชันนั้นแลกเปลี่ยนกันอย่างไร ฉันต้องการบางอย่างเช่นcutecomเพื่อตรวจสอบการเชื่อมต่อ UDP มีอะไรแบบนี้เหรอ? เมื่อฉันเรียกใช้คำสั่ง

netstat -lnpuc

มันจะแสดงสิ่งต่อไปนี้ระหว่างเอาท์พุท

udp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2 

คุณพิจารณาโปรแกรม GUI ที่เรียกว่าwireshark? มันจะแยกแพ็คเก็ตและแสดงข้อมูลที่ถูกส่งโดยแต่ละคนและจากนั้นคุณสามารถใช้udp.port == 14550หรือคล้ายกันเป็นคำสั่งการกรองเพื่อแสดงปริมาณการใช้งานนั้นเท่านั้น ปัญหาคือคุณต้องแยกส่วนของสิ่งที่ไปข้างหน้าและหลังตามเนื้อหาของแพ็คเก็ต แต่ดูเหมือนว่านี่คือสิ่งที่คุณต้องการจะทำด้วยตัวเองในที่สุด ... (เพียงแค่สูดดมloอินเทอร์เฟซถ้าคุณทำเช่นนี้ - นั่นคือ 'ท้องถิ่น' 127. *. *. * ช่วงและ IPv6 ท้องถิ่นภายในระบบของคุณ)
Thomas Ward

ขอบคุณสำหรับความคิดเห็นของคุณ ฉันติดตั้ง Wireshark และพิมพ์ลงudp.port == 14550ในApply a display filterยื่น แต่ไม่มีอะไรปรากฏขึ้น ฉันยังลองudp port 14550ในEnter a capture filterสนาม นอกจากนี้เมื่อฉันเรียกใช้คำสั่งnetstat -lnpucก็แสดงให้เห็นดังต่อไปนี้ในการส่งออกudp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2
Salahuddin Ahmed

ฟังดูเหมือนว่ามันไม่จำเป็นต้องฟังในท้องถิ่น คุณได้ลองติดตามอินเทอร์เฟซอื่น ๆ เพื่อดูว่ามันกำลังสื่อสารขาออกหรือไม่?
Thomas Ward

1
ตอนนี้มันใช้งานได้ ผมต้องวิ่งด้วยwireshark sudoขอบคุณมาก
Salahuddin Ahmed

คำตอบ:


18

tcpdumpสนับสนุนUDP จับ ตัวอย่างการใช้งาน:

tcpdump -n udp port 14550

แก้ไข

เนื่องจากแอปพลิเคชันของคุณกำลังสื่อสารกับอินเทอร์เฟซแท้จริงคุณต้องระบุอินเทอร์เฟซเช่นนี้:

tcpdump -i lo -n udp port 14550

คำสั่งนี้พิมพ์ส่วนหัวเท่านั้น ถ้าคุณต้องการพิมพ์ข้อมูลส่วนหนึ่งของแพ็คเก็ตในฐานสิบหกและ ASCII ให้ใช้สิ่งนี้:

tcpdump -i lo -n udp port 14550 -X

หรือถ้าคุณต้องการบันทึกแพ็กเก็ตลงในไฟล์และดูเนื้อหาในWireshark ให้ใช้สิ่งนี้:

tcpdump -i lo -n udp port 14550 -w packets.pcap

ฉันลองคำสั่งนี้ แต่ไม่จับแพ็คเก็ต มันส่งผลต่อไปนี้listening on wlo1, link-type EN10MB (Ethernet), capture size 262144 bytesและไม่มีอะไรอื่น!
Salahuddin Ahmed

@SalahuddinAshraf ฉันคงมัน :)
Ghasem Pahlavan

ขอบคุณมันใช้งานได้แล้ว จะแสดงแหล่งที่มาปลายทางและความยาวของข้อมูลที่ถ่ายโอน เป็นไปได้ไหมที่จะแสดงข้อมูลที่ถูกถ่ายโอนเอง?
Salahuddin Ahmed

@SalahuddinAshraf ใช่ คุณต้องผนวกตัวเลือก-A เพื่อ tcpdump เพื่อดูข้อมูล นอกจากนี้คุณสามารถส่งแพ็คเก็ตไปยังไฟล์และดูแพ็คเก็ตในWiresharkโดย-w packets.pcap
Ghasem Pahlavan

Pahlvan, เยี่ยมมาก ตอนนี้ฉันเห็นข้อมูลแล้ว เป็นไปได้ไหมที่จะทำให้ข้อมูลแสดงเป็นเลขฐานสิบหก? ขอบคุณมาก
Salahuddin Ahmed

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