سؤال كيف تتحقق من حظر المنفذ على جهاز يعمل بنظام Windows؟


على النظام الأساسي لـ Windows ، ما هي الخيارات الأصلية المتاحة لي للتحقق من وجود منفذ (3306 ، على سبيل المثال) على الجهاز المحلي (كما في localhost) ، يتم حظره؟


92
2018-06-16 14:21


الأصل


فقط للتوضيح ، هل تقصد حظر ، كما هو الحال في حظر جدار الحماية أو العبارة ، أو تقصد بالفعل قيد الاستخدام من قبل شيء آخر؟ - squillman
ال التدقيق في جهاز الكمبيوتر الخاص بي اختبار جدار الحماية يسمح لك باختبار منفذ معين أو مجموعة من المنافذ من مصدر خارجي. - Peter Stuer


الأجوبة:


نظرًا لأنك تستخدم جهاز Windows ، يمكن القيام بهذه الأشياء ،

  • تنفيذ الأمر التالي وابحث عن الإصغاء ": 3306" (لم تذكر UDP / TCP). هذا سيؤكد وجود شيء يعمل على الميناء.

    netstat -a -n

  • بعد ذلك ، إذا كنت تتوقع اتصالات واردة على هذا المنفذ وتشعر أن جدار الحماية قد يقوم بحظرها ، يمكنك ذلك بدء تشغيل جدار حماية Windows تسجيل الدخول وتحقق من سجلات الاتصالات التي تم إسقاطها

    • انتقل إلى جدار حماية Windows ، الإعدادات المتقدمة
    • انقر على زر الإعدادات بجوار "Local Area Connection"
    • حدد "تسجيل الحزم التي تم إسقاطها"
    • انظر إلى موقع ملف السجل (إذا لم يكن موجودًا ، فحدد موقعه)
    • انقر فوق موافق
    • الآن ، عندما يتم إجراء محاولة الاتصال (بافتراض معرفتك بذلك) ، انظر إلى ملف السجل للحصول على إسقاط على المنفذ 3306.
    • إذا ظهر هذا ، فستحتاج إلى إضافة استثناء لهذا المنفذ.
  • هناك أمر واحد آخر للتحقق من حالة جدار الحماية
    (تحديث لمستخدمي Windows 7 - كما هو مشار إليه Nick أدناه - الاستخدام netsh advfirewall firewall)

    netsh تظهر جدار الحماية الدولة

    • هذا سوف يسرد المنافذ المحظورة وكذلك منافذ الاستماع النشطة مع اقترانات التطبيق
  • سيقوم هذا الأمر بتفريغ تفاصيل تكوين جدار الحماية لـ Windows

    netsh إظهار جدار الحماية التكوين


إذا كان لديك كتلة نشطة (يتم إسقاط الاتصالات الواردة بواسطة جدار الحماية) بعد بدء تسجيل الدخول ، يجب أن تشاهد ذلك في السجل.

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

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


100
2018-06-16 14:28



+1 للحصول على تفاصيل رائعة - Sage
بدءًا من نظام التشغيل Windows Vista ، تم إيقاف الأمر "netsh firewall". توصي باستخدام "جدار الحماية netsh advfirewall" بدلاً من ذلك ثم مراجع المقالة go.microsoft.com/fwlink/؟linkid=121488 - Nick DeVore
لتحليل الإخراج في سطر الأوامر ، أضف |find "3306" إلى الأمر ، على سبيل المثال C:\Windows\System32>netstat -an |find "3306" - Cees Timmerman
لا يمكنني العثور على زر الإعدادات المحدد في الخطوة 2 من التوصية الثانية ... - Bassie
@ باسي ، حاول docs.microsoft.com/en-us/windows/access-protection/... - nik


NETSTAT سوف اقول لكم ما إذا كان المنفذ استماع لكنه لن يخبرك ما إذا كان المنفذ افتح إلى العالم الخارجي. ما أعنيه بهذا هو ذلك NETSTAT قد تظهر أن 0.0.0.0 هي LISTENING على المنفذ 3306 ولكن ربما لا يزال جدار الحماية يحظر هذا المنفذ الذي يمنع الاتصالات الخارجية ؛ لذلك لا يكفي الاعتماد عليه NETSTAT وحده.

أفضل طريقة للتحقق من حظر المنفذ هي إجراء مسح منفذ من جهاز العميل. 

هناك العديد من الطرق للقيام بفحص منفذ ولكن بما أنك ذكرت على Windows ثم سأقترح الأداة المساعدة لسطر الأوامر في Microsoft PortQry والنسخة الرسومية PortQryUI

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

portqry.exe -n #.#.#.#   

لاختبار منفذ معين:

portqry.exe -n #.#.#.# -e #

على سبيل المثال ، لاختبار واجهة الويب الخاصة بالموجّه على 192.168.1.1:

portqry.exe -n 192.168.1.1 -e 80

الذي يعود:

TCP port 80 (http service): LISTENING

عندما يعود الاختبار على جهاز محلي بدون وجود HTTPD قيد التشغيل:

TCP port 80 (http service): NOT LISTENING

باستخدام الأداة المساعدة PortScan ستحصل على واحدة من 3 نتائج.

  • Listening يعني أن الخادم يستمع على المنفذ المحدد
  • Filtered تعني أنها استلمت حزمة إشعار TCP مع مجموعة علامة إعادة التعيين التي تشير على الأرجح إلى وجود جدار حماية أو مشكلة في البرامج
  • Not Listening يعني أنه لم يتلق أي رد على الإطلاق

telnet هو خيار آخر سطر الأوامر الذي عادة ما يتم تثبيته على نظام التشغيل بشكل افتراضي. يمكن استخدام أداة سطر الأوامر هذه بطريقة سريعة لمعرفة ما إذا كان المنفذ يستجيب لطلب شبكة.

ليستخدم telnet يمكنك ببساطة إصدار الأمر التالي من موجه الأوامر:

telnet localhost 3306

يجب أن يعطيك الأمر أعلاه إشارة سريعة إذا كان المنفذ 3306 على ال localhost يستجيب.


18
2018-04-04 00:47



أقوم بتنزيل PortQryUI وقمت بفحصه بعد حظره وتمكين منفذ 445 في كل من tcp و udp ، فإنه يتم عرض نفس الاستماع في tcp وعدم الاستماع في udp. - Liam neesan


نظرًا لأن PowerShell 4.0 يمكنك استخدام الأمر Test-NetConnection

إذا كنت تريد اختبار المنفذ 3306 كما هو في المثال الخاص بك هو الأمر

Test-NetConnection -ComputerName localhost -Port 3306

وثائق TechNet Test-NetConnection


9
2018-01-17 14:56



+1 لهذا. بديل لطيف لا يتطلب تركيب أي شيء على معظم آلات النوافذ الحديثة. - DCaugs


إذا تمكنت من الوصول إلى المنفذ من الجهاز المحلي (باستخدام عنوان IP الخارجي) ، ولكن ليس من جهاز آخر ، فسيتم حظره في مكان ما.

لاحظ أن جدار الحماية على جهازك المحلي استطاع منع حتى أول عمل.


5
2018-06-16 14:27



لاحظ أنه لم يتم تثبيت telnet بعد الآن على Win7 والأنظمة الأحدث. - Alexis Wilke
AlexisWilke هذا ليس صحيحًا. يمكن تثبيت Telnet - deepdive
لتثبيت telnet من سطر الأوامر: dism / عبر الإنترنت / Enable-Feature / FeatureName: TelnetClient - Jason Massey