سؤال كيفية مراقبة النطاق الترددي للشبكة لكل مستخدم على خادم أوبونتو؟


لدي بعض مستخدمي shell على خادم به 300 غيغابايت من نقل البيانات شهريًا. كيف يمكنني مراقبة استخدام النطاق الترددي لكل مستخدم؟


12
2018-03-03 20:56


الأصل


هل هذا ممكن؟ يبدو أنه من الناحية النظرية ، سيكون الأمر أكثر إزعاجًا من قيمته ، نظرًا لأنك تحتاج من الناحية التقنية إلى تحديد كل عملية باستخدام الإنترنت من يقوم بتشغيلها ، ثم معرفة استخدام النطاق الترددي المشترك. أي أسباب محددة تتطلع إلى مراقبتها على أساس كل مستخدم بخلاف مستخدمي shell لديك؟ لأنه مع وجود 300 جيجابايت من البيانات داخل / خارج ، يبدو من المستبعد أن تتخطى هذا المبلغ: / - Thomas Ward♦
يجب أن يكون ذلك ممكنًا ، وإلا كيف يمكن لمزودي خدمة الإنترنت الحد من معدل نقل البيانات لكل مستخدم؟ - djeikyb
EvilPhoenix أرغب في مراقبة الاستخدام لكل مستخدم. 300 غيغابايت ليس بهذا القدر بالنسبة للخادم مع 20 مستخدمًا على الأقل ممن يستخدمون هذا الخادم كخادم وكيل. - Pedram
يبدو أن لديك إجابة عملية رائعة من Kees Cook ، ولكن إذا كنت لا تزال تبحث عن طرق ، فأنا أتساءل إن كانت صياغة السؤال بطريقة مختلفة يمكن أن تساعد. لقد وجدت هذا دليل غوغلينغ "كيفية الحد من عرض النطاق الترددي المستخدم على لينكس": faqs.org/docs/Linux-HOWTO/Bandwidth-Limiting-HOWTO.html - djeikyb
يبدو رائعًا. شكرًا. سأقدم لك تجربة. - Pedram


الأجوبة:


كجذر ، يمكنك على الأقل قياس حركة المرور الصادرة على أساس كل مستخدم باستخدام وحدة "المالك" في iptables. إذا كان جميع المستخدمين الذين تريد مراقبتهم موجودون /root/list-of-users.txt، يمكنك ان تفعل:

for login in $(cat /root/list-of-users.txt);
do
    iptables -N out_user_$login
    iptables -A OUTPUT -m owner --uid-owner $(id -u $login) -j out_user_$login
done

وبعد ذلك ، يتم عرض عدد الحزم والبايت لكل حركة المرور الصادرة لكل مستخدم:

iptables -L OUTPUT -n -v | grep out_

يمكن تمديد هذا مع CONNMARK لتتبع الجانب الوارد أيضًا.


13
2018-03-15 06:03



Thanks.It's great.I did this.But لماذا لا يمكنني استخدام نفس الأسلوب ل INPUT؟ - Pedram
مالك الحزمة غير معروف للحزم الواردة لأنه من منظور kernel ، فإنه يأتي من خارج الجهاز. يمكن استخدام CONNMARK لربط الحزم في تدفقات TCP إلى المنشئ ، إلخ ، ولكن ليس لدي مثال عملي على ذلك. - Kees Cook
نعم ، أنت على حق. شكرا للحصول على أفضل إجابة. - Pedram


لقد أتيت للتو NetHogs:

NetHogs هي أداة صغيرة "أعلى الشبكة".   بدلا من كسر حركة المرور   لكل بروتوكول أو لكل شبكة فرعية ، مثل معظم   أدوات تفعل ، فإنه يجمع النطاق الترددي من قبل   معالجة.

enter image description here

يجب أن يسمح لك هذا بتتبع النطاق الترددي عن طريق اسم المستخدم. قد لا تزال بحاجة إلى أدوات أخرى للقرصنة لتسجيل المعلومات وإضافتها جميعًا ، ولكنها بداية جيدة بدون استخدام iptables مباشرةً.


7
2018-03-21 12:32



يمكن أيضًا بدء تشغيله في الوضع لتلخيص حركة المرور: sudo nethogs -v 3 eth0 (أو اضغط m مرارا وتكرارا بعد البدء في دورة من خلال وسائط). تتحد مع tmux لتشغيل باستمرار (حتى لو كان لديك ssh تعطل الجلسة). - tanius


يمكنك استخدام الصبار

Cacti هو واجهة كاملة لـ RRDTool ، فإنه يخزن كل المعلومات الضرورية لإنشاء الرسوم البيانية وملئها بالبيانات في قاعدة بيانات MySQL. الواجهة الأمامية مدفوعة بالكامل بـ PHP. جنبا إلى جنب مع القدرة على الحفاظ على الرسوم البيانية ، ومصادر البيانات ، ودوران روبن مستديرة في قاعدة بيانات ، يعالج الصبار جمع البيانات. هناك أيضًا دعم SNMP لتلك المستخدمة لإنشاء رسوم بيانية لحركة المرور باستخدام MRTG.

أو vnStat

vnStat عبارة عن شاشة مراقبة حاسوبية تعتمد على وحدة التحكم لنظام Linux و BSD الذي يحتفظ بسجل لحركة مرور الشبكة للواجهة (الواجهات) المحددة. ويستخدم إحصائيات واجهة الشبكة التي تقدمها النواة كمصدر للمعلومات. هذا يعني أن vnStat لن يكون في الواقع يستنشق أي حركة مرور ويضمن أيضًا استخدامًا خفيفًا لموارد النظام.

كلاهما رائع.


6
2018-03-04 06:59



شكرًا ولكني رأيت كلاهما بالفعل ويبدو أنه غير متوفر لكل جهاز مراقبة للمستخدم. أريد مراقبة الاستخدام لكل مستخدم. - Pedram


نظرت قليلا ، وأنا لم أجد حزمة غوي شاملة تفعل ما تريد. نأمل أن يكون موجودا وشخص ما سوف ينشر عنه هنا في نهاية المطاف.

أنا لست حقا رجل التواصل ، ولكن من ما قرأت ، من بين أمور أخرى كثيرة netstat و iptables من المفترض أن تفعل للمحاسبة المستخدم القائم على الملكية الفكرية / المضيف ما acct الأدوات لمحاسبة عملية النظام. قد يضعك رابط cyberciti.biz هذا في طريقك لتطوير نظام باستخدام هذه الأدوات:

http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/


5
2018-03-14 04:50



شكرا ، ولكن كما قلت أنها تستخدم لمحاسبة المستخدم القائم على بروتوكول الإنترنت. لدي بعض مستخدم shell الذي قد يستخدم الخادم في مواقع مختلفة ، خاصة في قسم الجامعة مع نفس عنوان IP (خلف NAT). البحث عن حل محاسبة قائم على المستخدم ، إذا كان ذلك ممكنًا. - Pedram
netstat -e يعرض مستخدمي shell ، مما يتيح لك ربط ip / host باسم المستخدم. - djeikyb