سؤال احصل على قائمة مفتوحة للمنافذ في لينكس


أحتاج إلى أمر Linux لإدراج جميع المنافذ المفتوحة المجانية للاستخدام في التطبيق

lsof -i TCP| fgrep LISTEN

لا يُنظر إليه على أنه مساعد لأن المنافذ التي يدرجها ليست مجانية للاستخدام. كيف أقوم بإدراج منافذ مفتوحة مجانية غير مستخدمة؟


157
2018-01-08 07:34


الأصل


// ، ماذا لو لم يكن netstat متاحًا على المضيف؟ - Nathan Basanese


الأجوبة:


netstat -lntu

كما أجاب من قبلaskmish سيعطيك قائمة الخدمات التي تعمل على نظامك على منافذ tcp و udp حيث

  • -l = فقط الخدمات التي تستمع على بعض المنافذ
  • -n = عرض رقم المنفذ ، لا تحاول حل اسم الخدمة
  • -t = منافذ tcp
  • -u = منافذ udp
  • -p = اسم البرنامج

لا تحتاج إلى المعلمة 'p' حيث أنك مهتم فقط بالحصول على المنافذ المجانية وليس البرنامج الذي يعمل عليها.

هذا يبين فقط المنافذ الموجودة على النظام الخاص بك يتم استخدامها ، رغم ذلك. لا يخبرك هذا بحالة شبكتك ، مثل إذا كنت وراء NAT وتريد الحصول على بعض الخدمات من الخارج. أو إذا كان جدار الحماية يمنع المنفذ للزوار الخارجيين. في هذه الحالة ، يأتي nmap إلى الإنقاذ. تحذير: استخدم nmap فقط على الشبكات التي تكون تحت سيطرتك. أيضا ، هناك قواعد جدار الحماية التي يمكن أن تمنع nmap الأصوات ، سيكون لديك لعابث مع خيارات للحصول على النتائج الصحيحة.


227
2018-01-08 11:51



لاحظ أن netstat هو موقوف على العديد من النظم و ss يجب أن تستخدم بدلا من ذلك. - Johu


منذ net-tools موقوف، يمكنك استعمال ال ss أمر بدلا من netstat إذا netstat غير موجود على جهازك:

ss -lntu

يجب أن تعمل بالمثل

netstat -lntu

وفقا للمساعدة المضمنة:

-n, --numeric       don't resolve service names
-l, --listening     display listening sockets
-t, --tcp           display only TCP sockets
-u, --udp           display only UDP sockets

59
2018-06-08 20:19





يقوم هذا الأمر بإدراج منافذ الشبكة المفتوحة والعمليات التي تملكها:

netstat -lnptu

يمكنك بعد ذلك تصفية النتائج حسب المواصفات الدقيقة الخاصة بك.

يمكنك أيضا استخدام nmap لمزيد من النتائج الدقيقة حول المنافذ.


19
2018-01-08 07:45



تتطلب العلامة -p امتيازات الجذر لبعض العمليات ، لذا قد تكون sudo netstat -lnptu - klaus se


جميع المنافذ المفتوحة بما في ذلك حركة الاستجابة:

netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l

4
2017-11-03 04:33



قائمة من مجرد أرقام منافذ فريدة وفقط IPv4: netstat -tuwanp4 | awk '{print $4}' | grep ':' | cut -d ":" -f 2 | sort | uniq - Aaron C. de Bruyn
+1 لعرض كيفية تصفية واستخراج الأرقام من النتيجة. تم تعديله لإزالة إخراج stderr من netstat (الذي يضيف رأسًا إلى النتيجة في Ubuntu). - datashaman
هم ، على الأفكار الثانية. -1 لعدم الرد على السؤال. - datashaman


سيعمل الأمر التالي على أي Unix الذي يخرج بنفس تنسيق Ubuntu / Debian - حيث يوجد العنوان المحلي في العمود 4 ويشتمل الإخراج على رأس خطين في الأعلى. إذا كان أحد هذين الرقمين مختلفًا ، فقم بضبط الأمر awk أدناه.

إذا كنت تريد IPv4 فقط:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq

إذا كنت تريد IPv6 فقط:

netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq

إذا كنت تريد الاثنين معا:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq

يخرج الأمر قائمة بأرقام المنافذ التي تستمع على كل الواجهات. إذا كنت تريد سرد كافة المنافذ التي تستمع على واجهة localhost ، فاستخدم شيئًا كالتالي:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq

0
2018-04-04 06:29