ตรวจสอบปริมาณการใช้เครือข่ายผ่านอินเตอร์เฟส


17

มีวิธีตรวจสอบทราฟฟิก (เช่นรับมุมมองสดของการใช้ประโยชน์) ผ่านอินเทอร์เฟซเครือข่ายเฉพาะเจาะจงหรือไม่พูดว่า eth0?

สิ่งที่จับได้คือชุดเครื่องมือบนกล่องได้รับการแก้ไขและเป็นการปรับใช้ RHEL ในสต็อกค่อนข้างมากดังนั้นเครื่องมือเสริมไม่สามารถใช้งานได้

กำลังมองหาสิ่งพื้นฐานและมักจะนำเสนอเหมือน iostat ที่นี่


1
มีลักษณะที่stackoverflow.com/questions/596590/... ข้อเสนอแนะบางข้อที่ควรมีประโยชน์
Andy Smith

โอ๊ะการค้นหาล้มเหลว (และฉันลอง) เพื่อความเป็นธรรมฉันคิดว่ามันเป็นคำถามที่
ผิดพลาดของเซิร์ฟเวอร์

คำตอบ:


15

ข้อมูลที่คุณต้องการดูปรากฏใน ifconfig แบบเก่าที่ดี

watch ifconfig eth0

หรือทำให้สิ่งต่าง ๆ โดดเด่นกว่า:

watch -n 1 -d ifconfig eth0

ขอบคุณ - นอกจากความคิดเห็นโดย @ user239558 ถูกต้องแล้ว ifconfigฉันยอมรับคำตอบของคุณเพราะคุณเป็นคนแรกที่พูดถึง
BeeOnRope

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

ifconfig ไม่ได้อยู่ในเส้นทางเริ่มต้น / sbin / ifconfig อาจจำเป็น
kevinf

15

ฉันใช้คำสั่ง iftop มันแสดงสถิติแบบเรียลไทม์

iftop -i eth0

ชำระเงิน sceenshots ที่นี่:

http://www.thegeekstuff.com/2008/12/iftop-guide-display-network-interface-bandwidth-usage-on-linux/


ดูดีโชคไม่ดีที่ฉันไม่สามารถติดตั้งเครื่องมือใหม่ ๆ บนกล่องที่ล็อคเหล่านี้ได้
BeeOnRope



2

มีสาธารณูปโภคมากมาย:

  1. Nethogs
  2. iptraf
  3. Iptables อาจเป็นวิธีแก้ปัญหาที่ดี แต่ถ้าคุณใช้การตั้งค่าไฟร์วอลล์จะเป็นการยากที่จะย้ายกฎอย่างถูกต้อง

iptraf เป็นสิ่งที่ฉันกำลังมองหา แต่ดูเหมือนว่ารุ่นล่าสุดจะอยู่ใน IPTraf 3.0.0 - 19 กันยายน 2005 นี่อาจเป็นปัญหาได้หรือไม่?
Al-Alamin

2

คุณยังสามารถใช้ iptables เพื่อทำการคิดดังกล่าว:

iptables -A INPUT -p tcp --dport $port -i eth0

และ

iptables -A OUTPUT -p tcp --sport $port -i eth0

จากนั้น iptables -L -n -v จะพิมพ์จำนวนแพ็คเก็ตที่ได้ผ่านส่วนต่อประสาน iptables -Z ให้เป็นศูนย์จำนวนนี้


ห่วงโซ่เอาท์พุทควรมี -o เป็นส่วนต่อประสาน, -i ผิดกฎหมาย
drake7707

2
function humanValue()
{
    h=( '' K M G T P )
    i=1; v=$(( $1 * 8 ))
    while [ $v -gt $(( 1 << 10 * i )) ]; do let i++; done;
    echo -n "$(( $v >> 10 * --i )) ${h[i]}b/s";
}
ifaces=$(ip addr | grep -E "^[0-9]:" | cut -d" " -f2 | tr -d \:)
declare -A RX2 TX2;
while sleep 1; 
do
    date 
    for INTERFACE in $ifaces;
    do
        RX1=$(cat /sys/class/net/${INTERFACE}/statistics/rx_bytes)
        TX1=$(cat /sys/class/net/${INTERFACE}/statistics/tx_bytes)
        DOWN=$(( RX1 - RX2[$INTERFACE] ))
        UP=$(( TX1 - TX2[$INTERFACE] ))
        RX2[$INTERFACE]=$RX1; TX2[$INTERFACE]=$TX1
        echo -e "[ $INTERFACE:\tRX: $(humanValue $DOWN)\t|\tTX: $(humanValue $UP) ]"
    done;
done;

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