คำถามติดแท็ก tcpdump

tcpdump เป็นเครื่องมือ CLI สำหรับบันทึกและแสดงแพ็กเก็ตที่ส่งและรับโดยอุปกรณ์เครือข่าย

6
ฉันจะอ่านไฟล์ pcap ในรูปแบบที่เป็นมิตรได้อย่างไร
แมวที่เรียบง่ายในไฟล์ pcap ดูน่ากลัว: $cat tcp_dump.pcap ?ò????YVJ? JJ ?@@.?E<??@@ ?CA??qe?U????иh? .Ceh?YVJ?? JJ ?@@.?E<??@@ CA??qe?U????еz? .ChV?YVJ$?JJ ?@@.?E<-/@@A?CAͼ?9????F???A&? .Ck??YVJgeJJ@@.?Ӣ#3E<@3{nͼ?9CA??P?ɝ?F???<K? ?ԛ`.Ck??YVJgeBB ?@@.?E4-0@@AFCAͼ?9????F?P?ʀ??? .Ck??ԛ`?YVJ?""@@.?Ӣ#3E?L@3?Iͼ?9CA??P?ʝ?F????? ?ԛ?.Ck?220-rly-da03.mx เป็นต้น ฉันพยายามทำให้ดีขึ้นด้วย: sudo tcpdump -ttttnnr tcp_dump.pcap reading from file tcp_dump.pcap, link-type EN10MB (Ethernet) 2009-07-09 20:57:40.819734 IP 67.23.28.65.49237 > 216.239.113.101.25: S 2535121895:2535121895(0) win 5840 <mss 1460,sackOK,timestamp 776168808 0,nop,wscale 5> 2009-07-09 20:57:43.819905 …
139 log-files  tcpdump  pcap 

3
รูปแบบที่มนุษย์อ่านได้สำหรับส่วนหัว http ด้วย tcpdump
ฉันต้องการดูส่วนหัว HTTP ที่ส่งจาก Apache (ฟังพอร์ต 80) ไปยัง Tomcat (บนพอร์ต 4080) ในเครื่อง Linux ตามที่วิกิพีเดีย , ฟิลด์ส่วนหัวเป็นคู่ค่าชื่อที่คั่นด้วยโคลอนในรูปแบบสตริงข้อความที่ชัดเจน ฉันได้ลองtcpdumpคำสั่งต่อไปนี้แล้วหลายรูปแบบ: $ sudo tcpdump -lnX dst port 4080 -c 10 11:29:28.605894 IP SOME_IP.33273 > SOME_IP.4080: P 0:49(49) ack 1 win 23 <nop,nop,timestamp 1191760962 509391143> 0x0000: 4500 0065 3a9f 4000 3f06 0084 628a 9ec4 E..e:.@.?...b... 0x0010: …


5
วิธีแบ่งไฟล์ pcap ออกเป็นชุดเล็ก ๆ
ฉันมีไฟล์ pcap ขนาดใหญ่ (สร้างโดย tcpdump) เมื่อฉันพยายามที่จะเปิดมันใน wireshark โปรแกรมก็ไม่ตอบสนอง มีวิธีแบ่งไฟล์เป็นชุดเล็ก ๆ เพื่อเปิดทีละไฟล์หรือไม่ ทราฟฟิกที่บันทึกในไฟล์นั้นถูกสร้างขึ้นโดยสองโปรแกรมบนเซิร์ฟเวอร์สองเครื่องดังนั้นฉันไม่สามารถแยกไฟล์โดยใช้ตัวกรอง 'โฮสต์' หรือ 'พอร์ต' ของ tcpdump ฉันยังลองใช้คำสั่ง 'แยก' ของ linux :-) แต่ก็ไม่มีโชค Wireshark จะไม่รู้จักรูปแบบ
47 tcpdump  pcap 

6
การมอนิเตอร์ทราฟฟิก HTTP โดยใช้ tcpdump
ในการตรวจสอบปริมาณข้อมูล HTTP ระหว่างเซิร์ฟเวอร์และเว็บเซิร์ฟเวอร์ฉันกำลังใช้งานtcpdumpอยู่ ใช้งานได้ดี แต่ฉันต้องการกำจัดข้อมูลที่ไม่จำเป็นบางอย่างในผลลัพธ์ (ฉันรู้tcpflowและwiresharkแต่พวกเขาไม่พร้อมใช้งานในสภาพแวดล้อมของฉัน) จากtcpdumpหน้าคน: หากต้องการพิมพ์แพ็กเก็ต IPv4 HTTP ทั้งหมดไปยังและจากพอร์ต 80 เช่นพิมพ์เฉพาะแพ็กเก็ตที่มีข้อมูลไม่ใช่ตัวอย่างเช่นแพ็คเก็ต SYN และ FIN และแพ็คเก็ต ACK เท่านั้น tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' คำสั่งนี้ sudo tcpdump -A 'src example.com และ tcp พอร์ต 80 และ (((ip [2: 2] - ((ip [0] & 0xf) …
42 tcpdump  tshark 


1
tcpdump filter บนเครือข่ายและ subnet mask
ฉันใช้คำสั่ง tcpdump ต่อไปนี้: tcpdump -w net75.out -s 0 host 65.207.95.222 ฉันต้องการเปลี่ยนตัวกรองในโฮสต์เดียวให้เป็นที่อยู่ทั้งหมดในซับเน็ตต่อไปนี้: 65.192.0.0/10 ฉันไม่สามารถหาวิธีระบุตัวกรอง tcpdump เพื่อทำสิ่งนี้ กรุณาแนะนำ
26 subnet  tcpdump  filter 

1
มีการตรวจสอบข้อผิดพลาดที่ไม่ถูกต้องมากเกินไปใน TCPDUMP
ฉันพบข้อผิดพลาดในการตรวจสอบที่ไม่ถูกต้องมากเกินไปจากTCPDUMPบนเซิร์ฟเวอร์ GNU Linux 64 บิต มีการส่งออก chekcsums ที่ไม่ถูกต้องเกือบ 50% หรือไม่ cksum 0xe61f (ไม่ถูกต้อง (-> 0x8c37) เราจะตีความข้อมูลนี้ได้อย่างไร มันส่งผลกระทบต่อประสิทธิภาพเป็นอย่างมากหรือไม่?

8
วิธีการแสดงส่วนติดต่อในการไหลของเอาท์พุท tcpdump?
นี่ดูเหมือนจะเป็นปัญหาเล็กน้อย แต่หลังจากการค้นหาบางอย่างฉันไม่สามารถหาคำตอบได้ หนึ่งสามารถรัน tcpdump โดยใช้ "any" เป็นคำอธิบายส่วนต่อประสานเช่น: # tcpdump -i any -n host 192.168.0.1 มีวิธีใดที่จะบังคับให้ tcpdump แสดงบนอินเทอร์เฟซที่แสดงแพ็คเก็ตที่ถูกจับ? ปรับปรุง: เมื่อมีคนยืนยันว่านี่เป็นไปไม่ได้กับ vanilla tcpdump ใครบางคนสามารถเสนอวิธีแก้ไขปัญหาที่กล่าวถึงได้หรือไม่? บางทีดมกลิ่นที่แตกต่างกัน? ปัญหาทั่วไปมีดังนี้: บนระบบที่มี 50 อินเตอร์เฟสกำหนดอินเทอร์เฟซขาเข้าสำหรับแพ็คเก็ตที่มาจากที่อยู่ IP เฉพาะ

4
มอนิเตอร์จำนวนไบต์ที่ถ่ายโอนไปยัง / จากที่อยู่ IP บนพอร์ต
ใครสามารถแนะนำเครื่องมือบรรทัดคำสั่ง linux เพื่อตรวจสอบจำนวนไบต์ที่ถ่ายโอนระหว่างเซิร์ฟเวอร์ท้องถิ่นและที่อยู่ IP ที่ระบุ / พอร์ต คำสั่ง tcpdump ที่เทียบเท่าจะเป็น: tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com ผลลัพธ์ใด: 46 packets captured 131 packets received by filter 0 packets dropped by kernel ฉันต้องการสิ่งที่คล้ายกันที่เอาท์พุท: 54 bytes out, 176 bytes in ฉันต้องการให้ RHEL ทำงานและเป็นอิสระ / โอเพนซอร์ส มันจะดีถ้ามีเครื่องมือที่มีอยู่ซึ่งฉันเพิ่งหายไปด้วย!

3
Tcpdump บนหลายอินเตอร์เฟส
ฉันต้องจับภาพปริมาณการใช้งานบนเซิร์ฟเวอร์ CentOS 5 ซึ่งทำหน้าที่เป็นเว็บพร็อกซี่ที่มี 2 อินเตอร์เฟส wan และ 1 LAN เพื่อแก้ไขปัญหาพร็อกซีแปลก ๆ ฉันต้องการจับภาพการสนทนาเต็มรูปแบบ เนื่องจากการเชื่อมต่อภายนอกนั้นมีความสมดุลระหว่างอินเทอร์เฟซ WAN สองตัวฉันจึงสงสัยว่าเป็นไปได้หรือไม่ที่จะจับภาพพร้อม ๆ กันบนอินเทอร์เฟซทั้งหมด ฉันเคยใช้ tcpdump มาก่อน แต่ก็ยอมรับได้เพียงครั้งละหนึ่งอินเตอร์เฟสเท่านั้น ฉันสามารถเรียกใช้กระบวนการแบบขนาน 3 กระบวนการเพื่อจับภาพบนอินเทอร์เฟซทั้งหมด แต่แล้วฉันก็จบลงด้วยไฟล์การจับภาพ 3 แบบที่แตกต่างกัน วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?

1
tcpdump จะเห็นแพ็คเก็ตที่ถูกทิ้งโดย iptables หรือไม่
ฉันมีไฟร์วอลล์พร้อมกฎง่าย ๆ เหล่านี้: iptables -A INPUT -p tcp -s 127.0.0.1/32 --dport 6000 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.16.20/32 --dport 6000 -j ACCEPT iptables -A INPUT -p tcp --dport 6000 -j REJECT ตอนนี้สมมติว่าฉันใช้TCPDUMPเช่นนี้ tcpdump port 6000 และฉันมีโฮสต์พยายามที่จะเชื่อมต่อกับพอร์ต192.168.16.216000 จะ / ควรtcpdumpส่งออกแพ็กเก็ตบางส่วนที่มาจาก192.168.16.21ไหน

7
tcpdump: out.pcap: การอนุญาตถูกปฏิเสธ
[root@localhost ~]# cat /etc/issue Fedora release 17 (Beefy Miracle) Kernel \r on an \m (\l) [root@localhost ~]# uname -a Linux localhost.localdomain 3.6.10-2.fc17.i686 #1 SMP Tue Dec 11 18:33:15 UTC 2012 i686 i686 i386 GNU/Linux [root@localhost ~]# tcpdump -i p3p1 -n -w out.pcap -C 16 tcpdump: out.pcap: Permission denied ทำไมฉันถึงได้รับข้อผิดพลาด? ฉันควรทำอย่างไรดี?
15 linux  tcpdump  fedora 

2
CoreOS: tcpdump แก้ไขปัญหาเครือข่ายอย่างลึกลับ (ใช้ซ็อกเก็ตจำนวนมากเกินไป)
วันนี้ฉันมีเรื่องลึกลับสำหรับคุณ เราเรียกใช้คลัสเตอร์ Elasticsearch ขนาดเล็กสามโหนดที่ใช้ CoreOS (2023.5.0 / Linux 4.19.25-coreos) บน Azure Elasticsearch ทำงานภายในคอนเทนเนอร์นักเทียบท่าในโหมดโฮสต์เครือข่าย หลังจากใช้งานการบำรุงรักษาเกือบทั้งหมดฟรีเป็นเวลานานกว่าหนึ่งปีเราได้เห็นเครื่องเข้าสู่สถานะที่น่าสนใจมาก ปรับปรุง ปัญหานี้ถูกแก้ไขได้โดยการแก้ไขที่จะขับรถในลินุกซ์เคอร์เนล ดูคำตอบด้านล่าง อาการ โดยพื้นฐานแล้วการเชื่อมต่อระหว่างเครื่องที่ได้รับผลกระทบและอีกสองโหนดจะตาย ทั้งหมดอยู่ในเครือข่ายเสมือนเดียวกันและเครือข่ายย่อยเดียวกันและสามารถสื่อสารกับ eath อื่น ๆ ได้ โหนดที่ได้รับผลกระทบยังสามารถเข้าถึงได้จากเครือข่ายย่อยอื่น ๆ (ฉันสามารถ ssh เข้าไปได้) และจากเครือข่ายเสมือนที่แตกต่างกัน เครื่องยังมีการเชื่อมต่อกับอินเทอร์เน็ต (ขาด ๆ หาย ๆ ) แต่การร้องขอส่วนใหญ่จะหมดเวลา เราสังเกตว่าบนโหนดที่ได้รับผลกระทบจำนวน "ซ็อกเก็ตที่ใช้" ที่รายงานโดย/proc/net/sockstatมีค่าสูงมาก (~ 4.5k แทน ~ 300 บนโหนดที่มีสุขภาพดี) การตรวจสอบแสดงให้เห็นว่าจำนวนนี้เพิ่มขึ้นอย่างรวดเร็วจากช่วงเวลาที่โหนดจะไม่พร้อมใช้งาน สิ่งที่สนุกคือเราไม่สามารถระบุแหล่งที่มาของซ็อกเก็ตที่ใช้แล้ว: # cat …

4
tcpdump เพิ่มประสิทธิภาพ udp
ฉันใช้ชุดทดสอบโหลดเพื่อตรวจสอบประสิทธิภาพของการตั้งค่าต่อไปนี้: Node.js test suite (client) --> StatsD (server) --> Graphite (server) กล่าวโดยย่อชุดทดสอบ node.js จะส่งจำนวนเมตริกที่กำหนดทุก ๆ วินาทีไปยังอินสแตนซ์ StatsD ซึ่งอยู่บนเซิร์ฟเวอร์อื่น จากนั้น StatsD จะล้างข้อมูลเมตริกทุกวินาทีไปยังอินสแตนซ์ Graphite ที่อยู่บนเซิร์ฟเวอร์เดียวกัน จากนั้นฉันดูจำนวนของเมทริกที่ถูกส่งโดยชุดทดสอบจริงและจำนวนของกราไฟต์ที่ได้รับเพื่อตรวจสอบการสูญหายของแพ็คเก็ตระหว่างชุดทดสอบและกราไฟท์ อย่างไรก็ตามฉันสังเกตเห็นว่าบางครั้งฉันก็มีอัตราการส่งแพ็คเก็ตขนาดใหญ่มาก (โปรดทราบว่ามันถูกส่งด้วยโปรโตคอล UDP) ตั้งแต่ 20-50% ดังนั้นเมื่อฉันเริ่มดูว่าแพ็กเก็ตเหล่านี้ถูกทิ้งไปอย่างไรเนื่องจากเป็นปัญหาด้านประสิทธิภาพของ StatsD ดังนั้นฉันจึงเริ่มบันทึกการวัดในทุกส่วนของระบบเพื่อติดตามว่าการลดลงนี้เกิดขึ้นที่ไหน และนี่คือสิ่งที่แปลก ฉันใช้tcpdumpเพื่อสร้างไฟล์จับภาพซึ่งฉันตรวจสอบหลังจากการทดสอบเสร็จสิ้นแล้ว แต่เมื่อใดก็ตามที่ฉันทำการทดสอบด้วยการรัน tcpdump การสูญเสียแพ็กเก็ตนั้นแทบจะไม่มีเลย! ดูเหมือนว่า tcpdump กำลังเพิ่มประสิทธิภาพการทดสอบของฉันและฉันไม่สามารถหาสาเหตุและวิธีการนี้ได้ ฉันใช้คำสั่งต่อไปนี้เพื่อบันทึกข้อความ tcpdump บนทั้งเซิร์ฟเวอร์และไคลเอนต์: tcpdump -i any -n port 8125 -w …

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