سؤال بينغ ميناء معين


مجرد التحقق من سلامة العقل هنا.

يمكنك تنفيذ الأمر ping على منفذ معين من الجهاز ، وإذا كان الأمر كذلك ، يمكنك تقديم مثال؟

أنا أبحث عن شيء من هذا القبيل ping ip address portNum.


583
2017-10-08 09:57


الأصل


للنوافذ هذا السؤال يمكن التحقق - npocmaka


الأجوبة:


لا يمكنك اختبار ping للمنافذ ، نظرًا لاستخدام Ping ICMP التي ليس لديها مفهوم المنافذ. الموانئ تنتمي إلى بروتوكولات طبقة النقل مثل TCP و UDP. ومع ذلك ، يمكنك استخدامها NMAP لمعرفة ما إذا كانت المنافذ مفتوحة أم لا

nmap -p 80 example.com

تصحيح: كما ذكر flokra ، nmap هو أكثر من مجرد ping-for-ports-thingy. إنه أفضل مدققي أجهزة الأمن والمتسللين ويأتي مع الكثير من الخيارات الرائعة. تحقق من المستند لجميع الإشارات المحتملة.


630
2017-10-08 10:00



قد ترغب في إضافة -PN لتخطي nmap اكتشاف المضيف عادةً قبل اختبار المنفذ المعطى. - flokra
لإنقاذ بعض الناس بعض المشاكل: يمكن تثبيت / nmap / على النوافذ من حلقة الوصل (أو جوجل nmap windows) ، ولكن لا يعمل عبر شبكات ظاهرية خاصة. لم يبدو أن PaPing قادراً على مسح مجموعة من العناوين. لقد قمت بنشر برنامج Python النصي أدناه والذي يعمل عبر VPN لفحص نطاق من المنافذ على مجموعة من العناوين.
للآخرين: nmap غير موجود على نظام التشغيل Mac OS X ، يمكنك تثبيت nmap عبر homebrew brew install nmap أو MacPorts. - Highway of Life
nping هو أفضل ملاءمة لهذه المهمة من nmap. nping هو جزء من توزيع nmap. - CMCDragonkai
يحتوي Mac OSX على "Network Utility" (الأداة المساعدة للشبكة) التي تحتوي على علامة تبويب ماسح منفذ - Shanimal


افتح جلسة telnet إلى منفذ معين ، على سبيل المثال:

# telnet google.com 80
Trying 74.125.226.48...
Connected to google.com.
Escape character is '^]'.

لإغلاق الجلسة ، اضغط السيطرة+].


170
2017-10-08 10:01



netcatيعمل أيضا عظيم وأقل مطول. - petrus
يعمل Telnet بشكل جيد لهذا iff المنفذ منفذ TCP. - Falcon Momot
يعمل netcat مع UDP أيضًا (nc -u) - Tsvetomir Dimitrov
لمستخدمي Mac - netcat الآن بنيت في MacOS HighSierra ، حيث يمكن تثبيت telnet من HomeBrew brew install telnet - sandiejat


يمكنك استخدام PaPing:

http://code.google.com/p/paping

C:\>paping.exe www.google.com -p 80 -c 4
paping v1.5.1 - Copyright (c) 2010 Mike Lovell

Connecting to www.l.google.com [209.85.225.147] on TCP 80:

Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=25.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80
Connected to 209.85.225.147: time=24.00ms protocol=TCP port=80

Connection statistics:
        Attempted = 4, Connected = 4, Failed = 0 (0.00%)
Approximate connection times:
        Minimum = 24.00ms, Maximum = 25.00ms, Average = 24.25ms

79
2017-09-03 04:23



أو بدلاً من استخدام paping ، يمكنك استخدام cryping الذي كان موجودًا لفترة أطول ويدعم الأزيز لبعض الخدمات وكذلك المنافذ.
هل يمكن استخدام ذلك مع ping أي منفذ أو 80 فقط؟ - Luke Puplett
LukePuplett فقط قم بتغيير الرقم 80 في المثال. تشغيله بكتابة paping.exe <hostname / IP> -p <portnumber> - c <عدد المحاولات> - David Costa
رائع! لا أحد يعرف ما إذا كان يمكن عرض الإحصاءات في منتصف الطريق مثل ping يمكن مع Ctrl+Break؟ - Allon Guralnek
جري >C:\paping_1.5.5_windows\paping.exe www.google.com -p 80 -c 4 من سطر الأوامر يعطي الخطأ the program can't start because MSVCP100D.dll is missing from your computer - Timo Huovinen


$ nc -vz google.com 80
Connection to google.com 80 port [tcp/http] succeeded!

75
2018-04-10 01:55



يستخدم مع time كما هو الحال في time nc -vz www.example.com 80 وسيكون لديك نوع من RTT أيضًا. - xebeche
الحل الوحيد الذي يعمل على حالات الأمازون EC2 دون أي تثبيت. - Masadow
يعمل هذا الأمر على Raspberry Pi (Linux distro raspian) - John M
ما هو -z؟ يعطي ncat 6.40 على rhel7 أنه خيار غير معروف - Tagar
Tagar وفقًا للمساعدة في إصدار Ubuntu ، -z هو وضع Zero-I / O ، والذي يُستخدم للمسح الضوئي. - Ben Mordecai


إذا كنت تعمل على تثبيت Windows باستخدام powershell v4 أو أحدث ، فيمكنك استخدام الوحدة النمطية test-netconnection:

Test-NetConnection <host> -port <port>

مثال:      Test-NetConnection example.com -port 80

يحتوي هذا الأمر cmdlet أيضًا على الاسم المستعار tnc. على سبيل المثال tnc example.com -port 80


61
2017-10-26 21:09



هذا حقا يجب أن يكون الجواب المقبول ، لأنه أسهل بكثير وليس هناك حاجة لتثبيت شيء ما - Hakaishin
tnc إلهي قد أتذكر ذلك بالفعل - Chris Marisic


لا ، لا يمكنك ذلك ، لأن ping يستخدم بروتوكول ICMP، والتي ليس لديها حتى مفهوم المنافذ.


22
2017-10-08 10:00



أنا متأكد من أن استخدام "ping" كان مجازيًا. - Luke Puplett


محاولة curl الأمر ، مثل:

$ curl host:port

فمثلا:

$ curl -s localhost:80 >/dev/null && echo Success. || echo Fail.
Success.

سيعود الأمر أعلاه فشل على رموز حالة الخروج غير الصفر. في بعض الحالات الخاصة ، مثل الاستجابة الفارغة أو غير الصحيحة (انظر man curl) ، قد تحتاج إلى التعامل مع رموز الخروج المحددة كنجاح ، لذا يرجى التحقق من ذلك بريد لمزيد من الشرح التفصيلي.


16
2017-11-01 00:11



أنا أحب هذا ل curl موجود بشكل افتراضي على CentOS ، لذلك ليس من الضروري تثبيت أي شيء. - bdemarest
عملت حليقة على Raspberry Pi (distro Raspian) - John M
هذا هو الحل الأكثر أناقة وعالمية. لقد قمت بإعداده قليلاً لأجعله أخصائيًا أنيقًا: IP="<ip>" ; PORT="<port>" ; curl -s "$IP:$PORT" > /dev/null && echo "Success connecting to $IP on port $PORT." || echo "Failed to connect to $IP on port $PORT." - Lefty G Balogh


لقد وجدت حلًا أبسط باستخدام PsPing:

psping 192.168.2.2:5000

انها جزء من ويندوز Sysinternals.

PsPing بتنفيذ وظائف Ping و ping TCP وقياس الكمون وقياس النطاق الترددي.


16
2017-12-12 19:49



أيضا PsPing يأتي من فريق Microsoft SysInternal لذلك قد يعتبر أكثر شرعية أكثر عند التعامل مع الآخرين الموجهة نحو Microsoft. (ولديه وظائف أفضل من PortQry القديم جدا) - martyvis
العثور على شيء أكثر بساطة ؛ لا يتطلب أي تنزيل أو تثبيت. Test-NetConnection -ComputerName 192.168.2.2 -Port 5000 - Ayan Mullick


على لينكس يمكنك استخدامها hping لكنه يستخدم TCP ، بدلا من ICMP.

hping example.com -S -V -p 80

13
2017-12-22 23:12



hping (hping3 in my ubuntu) is excellent. فإنه يكرر بشكل دوري التحقيق مثل بينغ ، وعلى عكس العديد من الأدوات المقترحة هنا. كما يختبر كلاهما ما إذا كانت الحزمة تمر ، وما إذا كان المنفذ مفتوحًا أم لا. إذا كان مفتوحًا تحصل عليه flags=SA (أي SYN ACK) ، وإذا كانت مغلقة ، فستحصل عليها flags=SR (أي SYN RST). لاحظ أنك ربما لا تحتاج إلى -V علم هنا ، ولكن تحتاج sudo / الجذر لتشغيل hping. - mc0e
ممتاز! على عكس العديد من الإجابات الأخرى ، فإن هذا يشير إلى وقت استجابة RTT مثل ping والأصابع حتى توقفت. - Edward Anderson


Ping محدد للغاية ولكن إذا كنت تريد التحقق مما إذا كان المنفذ مفتوحًا أم لا ، وكنت تقوم بتشغيل مربع Windows PortQry هو صديقك

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


11
2017-10-08 10:06



PortQry يعمل كبيرة و 140 kb فقط. شكر! - SCL
+1 PortQry يعمل بشكل جيد لاختبار localhost. - Chris Masterton
تم إصدار PortQry في الأصل في 1999/2000 من قبل فريق MS Exchange ولكن يبدو أن MS version قد أوقفته عن طريق إزالة القدرة على الاستعلام عن المنافذ البعيدة (الصحة والسلامة). - Luke Puplett


في ما يلي تطبيق وحدة تحكم .NET سريع وقذر:

    static void Main(string[] args)
    {
        string addressArgument = null, portArgument = null;

        System.Net.Sockets.TcpClient tcpClient = null;

        try
        {
            addressArgument = args[0];
            portArgument = args[1];

            int portNumber;
            portNumber = Int32.Parse(portArgument);

            tcpClient = new System.Net.Sockets.TcpClient();
            tcpClient.ReceiveTimeout = tcpClient.SendTimeout = 2000;


            IPAddress address;
            if (IPAddress.TryParse(args[0], out address))
            {
                var endPoint = new System.Net.IPEndPoint(address, portNumber);
                tcpClient.Connect(endPoint);
            }
            else
            {
                tcpClient.Connect(addressArgument, portNumber);
            }

            Console.WriteLine("Port {0} is listening.", portArgument);
        }
        catch (Exception e)
        {
            if (e is SocketException || e is TimeoutException)
            {
                Console.WriteLine("Not listening on port {0}.", portArgument);
            }
            else
            {
                Console.WriteLine("Usage:");
                Console.WriteLine("    portquery [host|ip] [port]");
            }
        }
        finally
        {
            if (tcpClient != null)
                tcpClient.Close();
        }
    }

7
2017-07-09 17:53