ใช้ Raspberry Pi เป็นเราเตอร์หรือไม่?


50

มีใครใช้ Raspberry Pi เป็นอุปกรณ์กำหนดเส้นทางหรือไม่?

ส่วนใหญ่ฉันต้องการใช้มันเพื่อตรวจสอบเครือข่ายของฉันและมันจะดีมากถ้ามันมีอินพุตและเอาต์พุตสำหรับอีเธอร์เน็ต แต่มันก็ไม่ได้ดังนั้นฉันจึงสงสัยว่ามันจะมีประสิทธิภาพมากในการตรวจสอบเครือข่ายโดยมีอินพุตอีเธอร์เน็ต จากนั้นใช้ดองเกิล USB เป็นเราเตอร์ Wi-Fi มีใครทำอะไรแบบนี้บ้าง? มันทำให้อินเทอร์เน็ตช้าลงหรือไม่?


3
ขึ้นอยู่กับความเร็วของการเชื่อมต่ออินเทอร์เน็ตของคุณ เหมืองแร่เป็น 100Mb ดังนั้นผมค่อนข้างมั่นใจว่ามันจะช้าลง;)
จอห์นลา Rooy

3
ฉันมีการเชื่อมต่ออินเทอร์เน็ต 30Mbps และในเวลานี้ด้วยปริมาณการใช้ข้อมูล 5Mbps, inline raspberry pi พร้อม snort ของฉันใช้ CPU ประมาณ 50-95% และหน่วยความจำ 85% การตั้งค่าของฉันยังไม่ได้รับการปรับแต่ง แต่ฉันต้องการแสดงตัวเลขจริงบางอย่างให้คุณเห็น
ท่อ

ทุกคนไม่มีวิธีการจัดสรรแบนด์วิธกับเราเตอร์ที่กำหนดเองโดยใช้ raspberry pi หรือไม่? เช่นฉันมีความเร็วการเชื่อมต่ออินเทอร์เน็ต 3Mbps ฉันมีผู้ใช้ 10 คน คุณช่วยอธิบายได้อย่างไรว่ามันจะถูกแบ่งออก? ความเร็ว 3Mbps ขอบคุณ หวังว่าคุณจะเข้าใจ. :)
kirbs

2
สวัสดี kirbs โปรดงดเว้นจากการถามคำถามเกี่ยวกับคำถามอื่น แทนที่จะเปิดคำถามใหม่ด้วยลิงก์ถามคำถามที่ด้านบนของหน้า ขอขอบคุณ.

บางทีนี่อาจ? learn.adafruit.com/…
zengr

คำตอบ:


30

ฉันใช้โมเดล B ของฉันเป็นเราเตอร์ที่มีการสร้างปริมาณข้อมูลโดยใช้เพียงพอร์ตอีเธอร์เน็ตหนึ่งพอร์ตที่มาพร้อมกับ นี่คือวิธีที่รวดเร็วและสกปรกในวิธี:

  1. เปิดใช้งานการส่งต่อ IPv4ดังนั้น Pi ของคุณทำหน้าที่เป็นเราเตอร์โดยส่งต่อการรับส่งข้อมูลใด ๆ ที่ได้รับ
  2. กำหนดค่า Pi ของคุณด้วยการกำหนดค่าเครือข่ายแบบคงที่ดังนั้นจะไม่ได้รับผลกระทบจากการเปลี่ยนแปลง DHCP ที่แนะนำด้านล่าง นี่คือเนื้อหาของ/etc/network/interfacesการอ้างอิงของฉัน:

    # pi@flux:/home/pi/projects/adsl/rrdlogger (master *)
    # cat /etc/network/interfaces 
    auto lo
    
    iface lo inet loopback
    #iface eth0 inet dhcp
    iface eth0 inet static
            address 192.168.1.1
            netemask 255.255.255.0
            gateway 192.168.1.254    # IP of my ADSL router box
    
    allow-hotplug wlan0
    iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    iface default inet dhcp
    
  3. ตอนนี้เปลี่ยนการตั้งค่า DHCP ของเครือข่ายของคุณเพื่อให้เกตเวย์ / เราเตอร์เริ่มต้นเป็น Pi ของคุณ นี่น่าจะหมายถึงการเปลี่ยนการตั้งค่าในกล่องเราเตอร์ ADSL ที่คุณมีอยู่ ในตัวอย่างของฉันข้างต้นที่อยู่ IP Pi 192.168.1.1ของฉันคือ

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

ตอนนี้คุณสามารถสร้างหรือติดตั้งเครื่องมือที่จะทำการตรวจสอบของคุณสำหรับคุณเช่นvnstat

การปรับการจราจร

สำหรับการปรับการจราจรที่นี่เป็นอีกคู่มือสกปรกรวดเร็วและซึ่งจะทำให้การใช้งานที่แตกต่างส่วนบุคคลของตัวเองwondershaper

เพื่อให้มีประโยชน์คุณต้องทราบว่าการเชื่อมต่ออินเทอร์เน็ตของคุณรวดเร็วแค่ไหน คุณจะสามารถหานี้จาก (เดิม) อินเตอร์เฟซเว็บของคุณเราเตอร์ แต่ความล้มเหลวที่คุณจะได้รับการประเมินโดยใช้ความเร็วในการทดสอบ

  1. sudo apt-get install iptables
  2. wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
  3. sudo ./wondershaper eth0จะพิมพ์สถานะปัจจุบันของการปรับปริมาณการใช้งาน เห็นได้ชัดว่าสถานะที่คาดว่าจะไม่มีการจัดรูปแบบซึ่งหมายความว่ามีผลบังคับใช้กฎเดียวเรียกว่าpfifo_fast:

    • ( eth0เป็นชื่อของอะแดปเตอร์เครือข่ายต่อสายในรุ่น B ดูifconfigชื่อของอินเทอร์เฟซในระบบของคุณ)
    # pi@flux:/home/pi/projects/adsl/wondershaper (master *)
    # sudo ./wondershaper eth0
    qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
     Sent 1908 bytes 15 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0
    
  4. sudo ./wondershaper eth0 3000 370ที่ไหน:

    • 3000คือความเร็ว downlink การเชื่อมต่ออินเทอร์เน็ตของฉันในkbit ดังนั้น 3Mbit == 3000kbit
    • 370 คือความเร็วอัปลิงค์ของการเชื่อมต่ออินเทอร์เน็ตเป็น kbit อีกครั้ง
  5. sudo ./wondershaper eth0 ตอนนี้ควรแสดงผลลัพธ์มากขึ้น:

    # pi@flux:/home/pi/projects/adsl/wondershaper (master *)
    # sudo ./wondershaper eth0
    qdisc htb 1: root refcnt 2 r2q 10 default 0 direct_packets_stat 0
     Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0 
    qdisc sfq 40: parent 1:40 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec 
     Sent 1858 bytes 9 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0 
    qdisc sfq 10: parent 1:10 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0 
    qdisc sfq 20: parent 1:20 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0 
    qdisc sfq 30: parent 1:30 limit 127p quantum 1526b depth 127 divisor 1024 perturb 10sec 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0 
    qdisc ingress ffff: parent ffff:fff1 ---------------- 
     Sent 768 bytes 12 pkt (dropped 0, overlimits 0 requeues 0) 
     backlog 0b 0p requeues 0 
    class htb 1:1 root rate 370000bit ceil 370000bit burst 10Kb cburst 1599b 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 0bit 0pps backlog 0b 0p requeues 0 
     lended: 0 borrowed: 0 giants: 0
     tokens: 3459453 ctokens: 540531
    
    class htb 1:10 parent 1:1 leaf 10: prio 1 rate 370000bit ceil 370000bit burst 1599b cburst 1599b 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 0bit 0pps backlog 0b 0p requeues 0 
     lended: 0 borrowed: 0 giants: 0
     tokens: 540531 ctokens: 540531
    
    class htb 1:20 parent 1:1 leaf 20: prio 2 rate 246000bit ceil 246000bit burst 1599b cburst 1599b 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 0bit 0pps backlog 0b 0p requeues 0 
     lended: 0 borrowed: 0 giants: 0
     tokens: 813000 ctokens: 813000
    
    class htb 1:30 parent 1:1 leaf 30: prio 3 rate 74000bit ceil 74000bit burst 1599b cburst 1599b 
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 0bit 0pps backlog 0b 0p requeues 0 
     lended: 0 borrowed: 0 giants: 0
     tokens: 2702687 ctokens: 2702687
    
    class htb 1:40 root leaf 40: prio 0 rate 100000Kbit ceil 100000Kbit burst 512Kb cburst 1600b 
     Sent 3486 bytes 15 pkt (dropped 0, overlimits 0 requeues 0) 
     rate 0bit 0pps backlog 0b 0p requeues 0 
     lended: 15 borrowed: 0 giants: 0
     tokens: 654609 ctokens: 1250
    

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

sudo ./wondershaper eth0 clearการปิดใช้งานการสร้างเพียงรัน คุณสามารถเปลี่ยนอัตราอัปลิงค์และดาวน์ลิงค์ได้โดยไม่ต้องเคลียร์ก่อน แต่ก็ไม่เจ็บ

อัปเดต:คุณต้องปิดการใช้งานการส่งการเปลี่ยนเส้นทาง ICMPเนื่องจากเราต้องการปริมาณการใช้งานทั้งหมดเพื่อให้สามารถผ่าน Pi เพื่อให้เกิดการเปลี่ยนแปลง ปรากฎว่าเคอร์เนล Linux ฉลาดพอที่จะเข้าใจได้ว่าลูกค้าในเครือข่ายภายในบ้านของคุณสามารถพูดคุยโดยตรงกับกล่อง ADSL ได้มากกว่าจะตีกลับทราฟฟิกผ่าน Pi และจะบอกพวกเขาในทุกโอกาส จากนั้นลูกค้าจะส่งปริมาณข้อมูลของพวกเขาไปยังกล่อง ADSL ของคุณโดยตรงและ Pi ไม่ได้มีโอกาสสร้างมัน ปิดการใช้งานได้ทันทีเช่นนั้น (หายไปเมื่อคุณรีบูตครั้งถัดไป):

echo 0 | sudo tee /proc/sys/net/ipv4/conf/*/send_redirects

อัพเดตต่อไปนี้เพื่อตั้งค่านี้ระหว่างการบู๊ต: /etc/sysctl.conf

net/ipv4/conf/eth0/send_redirects = 0

(ขอบคุณhttps://unix.stackexchange.com/a/58081/22537สำหรับเคล็ดลับนี้)

คุณอาจสนใจบันทึกส่วนตัวของฉันเกี่ยวกับการกำหนดค่าเกตเวย์ Linux: http://www.robmeerman.co.uk/unix/gateway


คุณจะตั้งชื่อเครือข่าย wifi และรหัสผ่านที่อุปกรณ์อื่นสามารถเชื่อมต่อได้อย่างไร
fommil

คำแนะนำที่ดี ฉันมีคำถามเกี่ยวกับwondershaperข้อเสนอแนะของคุณแม้ว่า: จำกัด ต่อลูกค้าหรือโดยรวมหรือไม่?
บ๊อบ

@fommil: คำแนะนำของฉันข้างต้นถือว่าคุณยังคงใช้จุดเชื่อมต่อโมเด็ม / เราเตอร์ / WiFi ที่ ISP ของคุณมอบให้ แต่คุณกำหนดค่าดังกล่าวเพื่อให้ลูกค้าทั้งหมดที่เชื่อมต่อได้รับการบอกว่า "ส่งปริมาณข้อมูลไปยัง Pi" โดยปกติแล้วจะทำโดยป้อนที่อยู่ IP ของ Pi (คงที่!) ลงในการตั้งค่า DHCP ของกล่อง ISP ของคุณ โดยทั่วไปในเขตข้อมูลที่เรียกว่า "เกตเวย์", "เกตเวย์เริ่มต้น" หรืออาจเป็น "เส้นทางเริ่มต้น"
RobM

@Bob: ตัวเลขที่คุณป้อนนั้นเป็นยอดรวมสำหรับลิงก์อินเทอร์เน็ตของคุณ สคริปต์ wondershaper กว่าความพยายามที่จะเป็นธรรมร่วมกันนี้ให้กับลูกค้าของคุณทั้งหมดขึ้นอยู่กับความต้องการ ดังนั้นหากลูกค้าเพียงคนเดียวที่ใช้อินเทอร์เน็ตก็ควรได้รับ 100% ของมัน หากลูกค้าอื่นเริ่มต้นขึ้นพวกเขาจะทำหลังจาก "ใช้เวลาเล็กน้อย" (~ 10 วินาที) จบลงด้วยการใช้ 50% ในแต่ละครั้งและต่อไปเรื่อย ๆ
RobM

สมบูรณ์ เพียงแค่ทราบถึง @fommil เราเตอร์ของฉัน (และฉันคิดว่ามีอีกมากมายเหมือนกัน) ให้วิธีที่ง่ายในการตั้งค่าเกตเวย์ที่กำหนดผ่าน DHCP ฉันสิ้นสุดการปิด DHCP บนเราเตอร์และตั้งค่าเซิร์ฟเวอร์ DHCP ใน Pi - เป็นกระบวนการที่ค่อนข้างง่าย (ค้นหาคำแนะนำหากคุณต้องการ)
Bob

10

สิ่งแรกที่ควรคำนึงถึงคือใช้เป็นกล่อง Snort จากนั้นคุณไม่ต้องกังวลว่าจะมีเพียงอินเตอร์เฟสเดียว คุณจะตั้งค่าสวิตช์ / เราเตอร์ของคุณเพื่อส่งต่อปริมาณข้อมูลทั้งหมดไปยัง Pi แต่ยังส่งต่อไปยังอุปกรณ์ปลายทาง สิ่งนี้เรียกว่าจอภาพ switchport แต่อุปกรณ์ของคุณอาจไม่รองรับ คุณอาจต้องใช้สวิตช์ที่มีการจัดการเพื่อทำสิ่งนี้ Snort จะวิเคราะห์ปริมาณการใช้งานและรายงาน ข้อมูลเพิ่มเติมเกี่ยวกับ Snort http://www.snort.org/

สิ่งที่ดีเกี่ยวกับการตั้งค่าประเภทนี้คือ Pi ของคุณกำลังนั่งอยู่ด้านข้างคอยดูทุกอย่างที่กำลังวิ่งผ่านสวิตช์แทนที่จะนั่งตามข้อมูล หากคุณมีความผิดพลาดของซอฟต์แวร์ด้วยวิธีนี้การจราจรก็ยังคงสามารถไหลได้ ด้วยสิ่งที่คุณอธิบายด้วยสองอินเตอร์เฟสโปรแกรมของคุณขัดข้องเครือข่ายขัดข้อง

สิ่งนี้ไม่ได้ใช้ pi เป็นเราเตอร์ แต่ให้คุณตรวจสอบและรายงานปริมาณการใช้งานที่เคลื่อนผ่านเครือข่ายของคุณ


7

ฉันใช้ Raspberry Pi สำหรับการจัดเส้นทางและใช้งานได้ดี อย่างที่คุณพูดคุณต้องมีเครือข่ายอย่างน้อยหนึ่งอินเตอร์เฟสเนื่องจาก Raspberry Pi มีพอร์ต Ethernet เพียงพอร์ตเดียว คุณสามารถเพิ่มอินเตอร์เฟสอื่นที่เชื่อมต่อกับพอร์ต USB ฉันใช้โมเด็ม GSM และอุปกรณ์ Wi-Fi แล้ว

สิ่งที่ควรทราบ:

  • ใช้ฮับ USB ที่จ่ายไฟ อุปกรณ์ Wi-Fi และ GSM ต้องการพลังงานมากกว่าพอร์ต USB ของ Raspberry Pi ที่สามารถจ่ายได้
  • หากคุณซื้ออุปกรณ์ Wi-Fi ให้ซื้อด้วยการสนับสนุน Linux ที่ดี คุณต้องการที่ใช้งานได้ในโหมดจุดเข้าใช้งานและไม่สามารถใช้งานได้ทั้งหมด ตรวจสอบที่linuxwireless.org

นี่คือฉันโพสต์บล็อกเกี่ยวกับเส้นทางและอื่น ๆ เกี่ยวกับการตั้งค่าจุดเชื่อมต่อ Wi-Fi คู่มือนี้ช่วยฉันในการตั้งค่าการกำหนดเส้นทาง สิ่งที่กำหนดเส้นทางไม่ได้เฉพาะเจาะจงมากกับ Raspberry Pi; ทุกสิ่งที่ทำงานบน Linux โดยทั่วไปควรเป็นไปได้ รายละเอียดขึ้นอยู่กับการกระจายที่คุณใช้


4

ฉันใช้ Raspberry Pi เป็นเราเตอร์มาประมาณหนึ่งเดือนแล้วโดยไม่มีปัญหาใด ๆ ฉันมีพอร์ตการเข้าถึง Wi-Fi เชิงพาณิชย์จริงๆไม่ใช่เราเตอร์ Wi-Fi ในบ้านดังนั้นฉันจึงใช้มัน ฉันยังมีตัวแปลง USB เป็น Ethernet ที่ "ยืม" จาก Wii สิ่งนั้นจะไปที่ LAN ภายในบ้านและอีเธอร์เน็ตในตัวของ Raspberry Pi จะไปที่ WAN / อินเทอร์เน็ต

รับสำเนาIPFireสำหรับ Raspberry Pi คุณต้องการรุ่น ARM โดยไม่มีคอนโซลอนุกรมและรุ่นเสถียรล่าสุด คลิกที่แท็บ ARM ดาวน์โหลด "Image for the armv5tel architecture"

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

มันไม่ยากเกินไปและทำงานเหมือนแชมป์! นี่คือคำแนะนำอย่างเป็นทางการ: http://wiki.ipfire.org/en/hardware/arm/rpi

สิ่งสุดท้าย. หากคุณกำลังจะใช้ดองเกิล Wi-Fi ที่ขับเคลื่อนด้วย USB ให้ตรวจสอบแหล่งจ่ายไฟของ Raspberry Pi ของคุณ แหล่งจ่ายไฟ USB ขนาด 700 mA อาจเพียงพอที่จะจ่ายกระแสไฟให้กับ Raspberry Pi แต่ก็ไม่ได้ทิ้งพลังงานให้กับ Wi-Fi มากนัก ใช้ฮับ USB ที่ได้รับพลังงานหรือใช้ Raspberry Pi กับแหล่งจ่ายไฟ USB 1 ถึง 2 A
โชคดี!


1

(ภาคผนวกนี้ตามหลังคำตอบก่อนหน้าของฉันซึ่งเป็นแนวทางในการกำหนดค่า Pi ของคุณเป็นเกตเวย์อินเทอร์เน็ตของ LAN)

ไม่ใช่เนื้อหาที่มีการตรวจสอบการใช้งานอินเทอร์เน็ตโดยรวมของฉันฉันได้เขียนเครื่องมือที่ตรวจสอบการใช้งานอินเทอร์เน็ตของแต่ละอุปกรณ์บน LAN ของฉัน สิ่งนี้ทำให้ฉันเห็นการใช้งานได้ทันทีในหน้าต่างคอนโซลและสร้างแผนภูมิการใช้งานในอดีตเพื่อให้ฉันเห็นสิ่งที่เกิดขึ้นในชั่วข้ามคืน


Rhodesเครื่องมือสำหรับตรวจสอบการใช้เครือข่าย LAN แบบเรียลไทม์และตามประวัติศาสตร์ (ตามที่อยู่ MAC): https://github.com/meermanr/adsl/tree/master/rhodes

ตัวอย่างของเอาต์พุตคอนโซล:

193 kiB/s TX     17 kiB/s RX   0004edbf98c0   home.gateway (Billion Electric Co.)
  0 kiB/s TX      0 kiB/s RX   2002af18dc15   Samsung Galaxy Tab 10.1, Vicky
  0 kiB/s TX      0 kiB/s RX   34af2c01197b   Nintendo 3DS:XL, Robert
  0 kiB/s TX      0 kiB/s RX   34af2c3af204   Nintendo 3DS:XL, Vicky
  0 kiB/s TX      0 kiB/s RX   34af2c9cfffd   Nintendo WiiU
  0 kiB/s TX      0 kiB/s RX   6045bd9c9dbc   Xbox360 Slim
  0 kiB/s TX      0 kiB/s RX   745e1c56c297   Pioneer SX-LX57
 13 kiB/s TX    109 kiB/s RX   7831c1be0c34   Az Pro (Macbook Pro)
  0 kiB/s TX      0 kiB/s RX   80ea96e6214e   Roberts-AirPort-Time-Capsule
  0 kiB/s TX      0 kiB/s RX   88308a770370   Samsung Galaxy S3, Vicky
189 kiB/s TX    211 kiB/s RX   b827eb8fc0f3   Flux (Raspberry Pi)
  2 kiB/s TX     39 kiB/s RX   b8e8563acb34   Macbook Pro, Vicky
  0 kiB/s TX      0 kiB/s RX   d022be2c26ef   Samsung Galaxy Note 3, Rob
  0 kiB/s TX      0 kiB/s RX   f82fa89368ea

คอลัมน์แรกแสดงจำนวนอุปกรณ์ที่ส่งซึ่งโดยปกติจะหมายถึงการอัปโหลดไปยังอินเทอร์เน็ต ข้อยกเว้นนี้เราเตอร์ ADSL เอง (home.gateway ในตัวอย่างด้านบน) ซึ่งส่งข้อมูลที่ได้รับจาก ISP อุปกรณ์ที่ร้องขอ (เช่นดาวน์โหลด) แน่นอนว่ามันยังส่งการอัปโหลดไปยังอินเทอร์เน็ต แต่ก็ใช้โมเด็ม ADSL ซึ่งไม่ได้อยู่ใน LAN และเครื่องมือนี้ไม่สามารถมองเห็นได้

ข้อยกเว้นอื่น ๆ คือ Raspberry Pi ("Flux" ด้านบน) ซึ่งแน่นอนว่าจะส่งข้อมูลทั้งหมดที่จัดการทั้งสองทิศทาง

แต่นอกเหนือจากข้อยกเว้นเหล่านั้นหมายเลข TX (ส่ง) หมายถึงการอัปโหลดและหมายเลข RX (รับ) เพื่อดาวน์โหลด คอลัมน์ที่สามคือที่อยู่ MAC ของอุปกรณ์ (ไม่มีตัวคั่น ":" หรือ "-" ปกติ) คอลัมน์ที่สี่แสดงชื่ออุปกรณ์ที่มนุษย์สามารถอ่านได้หากรู้จัก

ชาร์ตจะถูกสร้างโดยการทำงาน./index.pyซึ่งมีวัตถุประสงค์ที่จะเรียกจากเว็บเซิร์ฟเวอร์เหมือนlighttpd(มีindex.pyเพิ่มให้กับindex-file.namesการกำหนดค่าการตั้งค่าใน/etc/lighttpd/lighttpd.conf) คุณสามารถเรียกใช้ได้ด้วยตนเองและจะสร้างรูปภาพและพิมพ์ HTML ไปยัง STDOUT ดังนั้นคุณต้องการเปลี่ยนเส้นทางไปยังไฟล์ที่คุณสามารถเปิดในเบราว์เซอร์:

./index.py > index.html

จากนั้นเปิด index.html ในเบราว์เซอร์ที่คุณต้องการ

ข้อกำหนดการติดตั้ง (สามารถติดตั้งได้ทั้งหมดapt-get install):

  • tcpdump - เครื่องมือบรรทัดคำสั่งสำหรับการจับภาพและอธิบายการรับส่งข้อมูลเครือข่าย
  • rrdtool - เครื่องมือฐานข้อมูล Round Robin บันทึกและจัดทำแผนภูมิข้อมูลอนุกรมเวลา
  • rrdcached - Round Robin Database Caching Daemon บริการที่ช่วยลดโอเวอร์เฮดเมื่อทำงานพร้อมกันกับไฟล์ RRD หลายไฟล์
  • pypy-upstream (การนำไปใช้อย่างรวดเร็วของภาษาการเขียนโปรแกรม Python)

    • คุณสามารถใช้สต็อค Python ได้ตามต้องการ: python rhodes.py( pypyเป็นการนำภาษา Python มาใช้ซึ่งเป็นทางเลือกในการคอมไพล์ Just-In-Time (JIT) ดังนั้นสคริปต์ที่รันเป็นเวลานานจะใช้รอบ CPU น้อยลงในราคาหน่วยความจำเพิ่มเติม)

หมายเหตุการใช้งาน : เครื่องมือ 'tcpdump' ที่ใช้โดยสคริปต์นี้ต้องการสิทธิ์รูทเพื่อเข้าถึงทราฟฟิกเครือข่าย สิ่งนี้สามารถทำได้โดยการเรียกใช้sudo tcpdumpเมื่อสคริปต์เริ่มทำงานดังนั้นคุณอาจได้รับแจ้งให้ป้อนรหัสผ่านของคุณ โดยส่วนตัวแล้วฉันได้เพิ่มกฎ NOPASSWD ไปแล้ว/etc/sudoersดังนั้นฉันจึงไม่เคยได้รับแจ้ง

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