สามารถสั่ง tcpdump ไม่ให้รายงานแพ็กเก็ตไปยังแหล่งที่มาที่เฉพาะเจาะจงได้หรือไม่?


1

ฉันต้องการตรวจสอบแพ็คเก็ตโดยใช้ TCPdump น่าเศร้าที่ฉันต้องทำสิ่งนี้จากระยะไกล - ในกรณีนี้ฉันใช้เดสก์ท็อประยะไกลจาก VNC แต่ที่ดีที่สุดฉันสามารถทำได้ผ่าน SSH

สิ่งที่ฉันหมายถึงโดย "ดีที่สุด" คือ: ฉันเห็นแพ็คเก็ตจำนวนมากที่กำกับที่เครื่องของฉันเอง ฉันกำลังพยายามตรวจสอบเซิร์ฟเวอร์ไม่ใช่เครื่องในเครื่องของฉันดังนั้นฉันจึงไม่สนใจแพ็กเก็ตใด ๆ ที่ไปยังเครื่องของฉันเอง

มีวิธีใดที่จะทำให้ tcpdump รายงานทุกอย่างยกเว้นแพ็กเก็ตที่ส่งไปยัง I.P ที่แน่นอนหรือไม่?

โซลูชันแฮ็คของฉันคือ: sleep 5;tcpdump [options] และฆ่าการเชื่อมต่อ VNC ขณะที่ฉันรอ

คำตอบ:


1

ใช่คุณสามารถเพิ่มตัวกรองในตัวเลือก tcpdump ของคุณ สมมติว่า IP ของคุณคือ 1.2.3.4 นี่จะเป็นดังนี้:

tcpdump -f "not host 1.2.3.4" ...other options...

1

คุณสามารถทำได้โดยใช้คำสั่งต่อไปนี้:

  tcpdump -i eth0 ! host Your.own.Ip.Address. 

อย่างไรก็ตามนี่เป็นเรื่องที่เกินความจำเป็นเล็กน้อย: บางครั้งคุณอาจสนใจแพ็คเก็ตที่ส่งไปยังเครื่องของคุณ แต่ไม่ใช่สำหรับผู้ที่เกี่ยวข้องกับการสื่อสาร คุณสามารถใช้ได้

  tcpdump -i eth0 ! port 22

(หากคุณเชื่อมต่อผ่าน ssh) ซึ่งจะกำจัดแพ็กเก็ตทั้งหมดที่ไป / จากเครื่องระยะไกลบนพอร์ต 22 อย่างไรก็ตามสิ่งนี้จะส่งแพ็กเก็ต ssh ทั้งหมดไปยัง / จากเครื่องระยะไกลจาก / ไปยังเครื่องอื่น ๆ

หากคุณต้องการที่จะสมบูรณ์จริง ๆ ยกเว้นการรับส่งข้อมูลระหว่างเครื่องท้องถิ่นและระยะไกลผ่าน ssh คุณต้องออก:

  tcpdump -i etho ! '((host remote.machine.ip.address and port 22) and local.machine.ip.address)'

จำ apices พวกเขามีความสำคัญ


ควร! จะรอดในทุบตี?
Basilevs

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