วิธีดู IP ที่เข้ามาใน Linux


21

ฉันสงสัยว่าอะไรคือคำสั่ง / ยูทิลิตี้ที่มีมุมมองตามเวลาจริงของ IP ที่เข้ามาไปยังเซิร์ฟเวอร์ของฉันพร้อมด้วยพอร์ตและเชื่อมต่อ

คำตอบ:


25

ใช้ pktstat -n

interface: eth0
bps

   bps    % desc
 162.3   0% arp
 286.5   0% llc 802.1d -> 802.1d
 544.3   1% tcp 172.16.1.5:22 <-> 172.16.1.95:8074
 34.0k  87% udp 172.16.1.1:514 <-> 172.16.1.5:514
 350.1   0% udp 172.16.1.5:24330 <-> 209.18.47.62:53
 329.4   0% udp 172.16.1.5:34870 <-> 209.18.47.62:53
 388.3   0% udp 172.16.1.5:4470 <-> 209.18.47.62:53
 407.4   1% udp 172.16.1.5:47008 <-> 209.18.47.62:53
 741.6   1% udp 172.16.1.5:53 <-> 172.16.1.74:43289
 663.6   1% udp 172.16.1.5:53 <-> 172.16.1.74:44589
 647.7   1% udp 172.16.1.5:53 <-> 172.16.1.74:58223
 128.9   0% udp 172.16.1.74:5353 <-> 224.0.0.251:5353
 160.7   0% udp6 fe80::21c:bfff:fecf:a798,5353 <-> ff02::fb,5353

รหัสที่มา pktstatถูกโฮสต์ไว้ในเว็บไซต์ของ Debian หรือคุณจะได้รับจากSourceArchive.com


1
น่าอัศจรรย์ สิ่งที่ฉันกำลังมองหา ค่อนข้างชัดเจน แต่หากต้องการคำตอบที่สมบูรณ์คุณอาจต้องการเพิ่มว่าสามารถติดตั้งได้ง่ายๆโดย 'apt-get install pkstat'
alfish

นอกจากนี้หากคุณได้รับpktstat: pcap_lookupdev: no suitable device foundเมื่อใช้งานนี้คุณอาจต้องรูท
ทิมมาโลน

10

สำหรับการแสดงผล 'purdy' ฉันเป็นส่วนหนึ่งของเครื่องมือที่เรียกว่า 'iptraf' ที่จะทำสิ่งที่คุณพูดถึงเช่นเดียวกับต่ออินเตอร์เฟสและต่อพอร์ตรวม

สำหรับเครื่องมือลินุกซ์หลักเน็ตสแตทที่ไว้ใจได้จะทำอุบาย ...


1
IPtraf เป็นเครื่องมือที่ดีที่สุดที่ผมเคยเห็นในแง่ของการใช้งานและการทำงาน - เห็นได้ชัดว่าคุณยังสามารถสคริปต์สิ่งบางอย่างโดยใช้เครื่องมือมาตรฐานเช่น netstat และ ngrep และ tcpdump แต่ทำไมคุณต้องการที่จะบูรณาการล้อ :)
วงกลม

เพื่อความสมบูรณ์ iftop นั้นคล้ายกับ iptraf ซึ่งเป็นแอพที่ใช้ ncurses ซึ่งใช้กราฟแท่งแทนตัวเลขเพื่อแสดงการใช้แบนด์วิดท์ต่อที่อยู่ IP ด้วยตัวเลือก -P คุณสามารถรับมันต่อพอร์ตเช่นกัน
gsreynolds

7

tcpdumpจะแสดงให้คุณเห็นว่า; หากคุณต้องการรายการของ IP คุณสามารถกรองแพ็กเก็ต SYN และส่งออกเฉพาะที่อยู่ IP ต้นทาง สิ่งที่ต้องการ:

tcpdump -i eth0 -n 'tcp[tcpflags] & tcp-syn != 0 and not src and dst net localnet' | sed 's/^.*IP \([^ ]*) >.*$/\1/'

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


3

นี่คือวิธีดูการรับส่งข้อมูลทั้งหมดที่มายังพอร์ต 2222:

tcpdump -ni any port 2222

0

เมื่อคุณได้ผลลัพธ์จากคำสั่งใดคำสั่งหนึ่งที่กล่าวถึงในคำตอบอื่น ๆ คุณสามารถใช้เครื่องมือ "เฝ้าดู" เพื่อให้มี "เรียลไทม์" ตัวอย่างเช่น "watch -n 5 ps" จะทำคำสั่ง "ps" ทุกๆ 5 วินาที (อาร์กิวเมนต์ "-n") แทนที่ "ps" ด้วยคำสั่งที่สนใจและคุณจะได้รับ "การตรวจสอบ" หรือเพียงแค่ "ทีออฟ" ในไฟล์เช่นเดียวกับข้อเสนอแนะอื่น

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