سؤال العثور على العملية التي تستخدم منفذًا معينًا في Linux


أود أن أكون قادرًا على معرفة العملية التي تستخدم حاليًا منفذًا معينًا في Linux. هل هناك أي طريقة للقيام بذلك؟


130
2017-09-17 18:52


الأصل


على نظام Windows ، يكون الأمر: netstat -anb - djangofan


الأجوبة:


لديك عدة خيارات:

lsof -i tcp:80

سوف يعطيك قائمة العمليات باستخدام منفذ TCP 80.

بدلا من ذلك،

sudo netstat -nlp

سيمنحك جميع اتصالات الشبكة المفتوحة.


132
2017-09-17 19:03



lsof -i | grep {username} مفيد أيضًا ، أي lsof -i | grep apache - LawrenceC
لأي شخص يتساءل ، -n : لا تحل الأسماء ، -l : عرض مآخذ خادم الاستماع ، -p : عرض اسم PID / Program من أجل مآخذ التوصيل. - yellavon
أقوم عادة بإضافة -P إلى lsof -i tcp:$PORTNUMBER بحيث تتم طباعة المنفذ إليّ كرقم. - js.


netstat -lp

9
2017-09-17 18:54



على ماك لديك لإضافة خيار بروتوكول ل -P. شيء من هذا القبيل: netstat -lp tcp. - vrish88
على linux ، -p يسرد العملية التي تملك مأخذ التوصيل. - Jürgen Strobel


أنا أستخدم "CentOS 7 الحد الأدنى" الذي لديه ولا netstat لا هذا ولا ذاك lsof. ولكن الكثير من توزيعات linux لديها أمر إحصاء مأخذ التوصيل (بمعنى ، ss).

هذا مثال على التنفيذ:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))

7
2017-10-29 20:54





في Linux ، للبحث عن عملية تعمل على منفذ ، قم بما يلي:

lsof -i :<port_number>

مثال:

lsof -i :8080

2
2018-01-05 19:06



شكرا على محاولة تقديم المساعدة. تم ذكر هذا الأمر في الإجابة المقبولة. إذا كان لديك شيء جديد ، فيرجى تعديل مشاركتك. - Ben N