كيفية تحديد ما إذا كان المنفذ مفتوحًا على خادم Windows؟

StackOverflow https://stackoverflow.com/questions/273159

  •  07-07-2019
  •  | 
  •  

سؤال

أحاول تثبيت موقع تحت منفذ بديل على الخادم، ولكن قد يكون المنفذ مغلقًا بواسطة جدار الحماية.هل هناك طريقة لإجراء اختبار الاتصال بالخارج أو الدخول على منفذ معين لمعرفة ما إذا كان مفتوحًا؟

هل كانت مفيدة؟

المحلول

على افتراض أنه منفذ TCP (بدلاً من UDP) الذي تحاول استخدامه:

  1. على الخادم نفسه، استخدم netstat -an للتحقق لمعرفة المنافذ التي تستمع

  2. من الخارج فقط telnet host port (أو telnet host:port على أنظمة Unix) لمعرفة ما إذا تم رفض الاتصال أو قبوله أو انتهاء المهلة

في هذا الاختبار الأخير، بشكل عام:

  • رفض اتصال يعني أنه لا يوجد شيء يعمل على هذا المنفذ
  • قبلت يعني أن شيئا ما يعمل على هذا المنفذ
  • نفذ الوقت يعني أن جدار الحماية يمنع الوصول

في Win7 أو Vista، لا يتم التعرف على الخيار الافتراضي "telnet" كأمر داخلي أو خارجي أو برنامج قابل للتشغيل أو ملف دفعي.لحل هذه المشكلة، فقط قم بتمكينه:انقر فوق ابدأ، ثم لوحة التحكم، ثم البرامج، ثم قم بتشغيل ميزات Windows أو إيقاف تشغيلها.في القائمة، قم بالتمرير لأسفل وحدد عميل Telnet وانقر فوق "موافق".

نصائح أخرى

وأردت فقط أن أضيف أن على ويندوز يمكنك استخدام

netstat -na | find "your_port"

ولتضييق النتائج. يمكنك أيضا تصفية LISTENING، ESTABLISHED، TCP وكذا. مانع انها قضية حساسة بالرغم من ذلك.

إذا كنت تتحقق من الخارج، وليس من الخادم نفسه، ولا تريد أن تكلف نفسك عناء تثبيت telnet (لأنه لا يأتي مع الإصدارات الأخيرة من Windows) أو أي برنامج آخر، فإن لديك PowerShell الأصلي:

Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed

(لسوء الحظ، يعمل هذا فقط مع PowerShell 4.0 أو الأحدث.للتحقق من إصدار PS الخاص بك، اكتب $PSVersionTable.)


(إذا كان لديك إصدار PSVersion < 4.0، فلن يحالفك الحظ.تحقق من هذا الجدول:

enter image description here

على الرغم من أنه يمكنك ترقية إصدار بوويرشيل الخاص بك عن طريق تثبيت إطار إدارة ويندوز 4.0, ، ولم ينفع معي، اختبار-NetConnection cmdlet لا يزال غير متوفر).

في جهاز ويندوز يمكنك استخدام PortQry من مايكروسوفت للتحقق ما إذا كان التطبيق الإصغاء بالفعل على منفذ معين باستخدام الأمر التالي:

portqry -n 11.22.33.44 -p tcp -e 80

وفعلت مثل ما يلي:

netstat -an | find "8080" 

ومن تلنت

telnet 192.168.100.132 8080

وفقط للتأكد من أن جدار الحماية هو خارج على هذا الجهاز.

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

هل تريد أداة لفعل ذلك؟ وهناك موقع على شبكة الانترنت على http://www.canyouseeme.org/ . خلاف ذلك، كنت بحاجة الى بعض ملقم آخر إلى الاتصال بك لمعرفة ما اذا كان المنفذ مفتوح ...

استخدم هذا إذا كنت تريد أن ترى كل المستخدمة والاستماع المنافذ على ملقم Windows:

netstat -an |find /i "listening"

والاطلاع على كل، والاستماع، وفتح الموانئ التأسيس:

netstat -a

في يندوز سيرفر يمكنك استخدام

netstat -an | where{$_.Contains("Yourport")}

وpsping من Sysinternals هي أيضا جيدة جدا

وثمة خيار آخر هو tcping .

وعلى سبيل المثال:

وtcping host port

وأعتقد أن أفضل واحد حصلت على هذا حيث يمكنك التحقق من الموانئ الخاصة بك وكذلك الموانئ المجال الآخر أيضا.

www.yougetsignal.com/tools/open-ports

وهنا ما عملت بالنسبة لي،

  • فتح موجه الأوامر
  • اكتب التلنت
  • مايكروسوفت تيلنت> مفتوح

وسوف يؤكد ما إذا كان المنفذ مفتوحا.

والمرافق الأخرى التي وجدت وغير جيدة وصغيرة أيضا، ميناء خط الأوامر PortQry الإصدار 2.0 الماسح الضوئي https://www.microsoft.com/en-us/download /details.aspx؟id=17148

ويمكنك بينغ الخادم والمنفذ، وسوف اقول لكم دولة الميناء، هناك أداة سطر الأوامر واجهة المستخدم لذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top