سؤال هل من الممكن أن ping عنوان: المنفذ؟


أنا لست في التواصل ، ولدي السؤال التالي متعلق بنظام التشغيل Linux بينغ أمر.

هل يمكنني فقط قراءة العنوان؟ فمثلا:

miner@raspberrypi ~ $ ping onofri.org
PING onofri.org (67.222.36.105) 56(84) bytes of data.
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

أو يمكنني أيضا ping عنوان: منفذ، فمثلا: onofri.org:80؟

إذا جربت هذا ، فهو لا يعمل:

miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80

هل من الممكن بينغ شيء من هذا القبيل عنوان: منفذ؟ إذا كان ذلك ممكنًا ، فلماذا لم أحاول ما حاولت العمل؟


198
2018-06-16 18:17


الأصل


ماذا تحاول تحقيقه؟ يتطلب التحقق من صحة عملية الخدمة فعليًا الاستعلام عن الخدمة وتقييم الاستجابة. يمكن لخادم الويب ، على سبيل المثال ، قبول اتصالك ، مع إعادة خطأ بسبب التهيئة الخاطئة. - Daniel B
هذا جزء من ما يعجبني في Telnet. يمكنك الاتصال بخادم الويب ، والكتابة GET /index.html HTTP\1.1 وشاهد الاستجابة 200 (أو رمز الخطأ) مع الترميز الناتج. - Frank Thomas
FrankThomas HTTP\1.1؟ هل حقا؟ - glglgl
Navin ربما HTTP/1.1... - glglgl
glglgl. ماذا؟ أنت لا تضع اختراقا حيث يجب أن تذهب الشرطة؟ لكن أنت على صواب ، يجب أن تكون مائلة. - Frank Thomas


الأجوبة:


يمكنك استخدام Paping، اختبار منفذ TCP عبر منصة ، محاكاة وظائف ping (المنفذ ping)

(أنظر أيضا جيثب نظرًا لاستهلاك الكود code.google.com)

paping -p 80 google.com

19
2018-01-21 08:02



بعض التفسير لما يمكن أن يكون هذا البرنامج مفيدًا. - David Schwartz
لمن يجد هذه الإجابة ، مثلما فعلت ، لا يمكن العثور إلا على العثور على فطيرة في أي مستودعات ، كما أنه رمز قديم لا يتم تجميعه حتى في ARM - انتقل لأسفل أكثر إلى الإجابة "hping". إنها نقطة دخول مثالية لاختبار ping عندما تحتاج إلى اختبار منفذ ويمكن الوصول إليه بسهولة في مستودعات مختلفة (مثل Ubuntu ، Arch) بما في ذلك ARM. - Mark


الموانئ هي مفهوم UDP و TCP. يشار إلى Ping من الناحية الفنية باسم ICMP Echo Request و ICMP Echo Reply التي هي جزء من ICMP. ICMP و TCP و UDP هي "الأشقاء" ؛ لا تعتمد على بعضها البعض ، ولكنها ثلاثة بروتوكولات منفصلة تعمل على IP.

لذلك لا يمكنك ذلك ping ميناء. ماذا أنت يستطيع القيام به ، هو استخدام ماسح ضوئي منفذ مثل nmap.

nmap -p 80 onofri.org

تستطيع ايضا استخذام telnet onofri.org 80، كما هو مقترح في أحد الإجابات الأخرى (سيعطي خطأ إذا تم إغلاق المنفذ أو تصفيته).


300
2018-06-16 18:19



+1 فهمها بشكل صحيح. بنيت ICMP على رأس IP ، والذي لديه مفهوم عناوين IP ولكن ليس المنافذ. كما أن TCP و UDP هما في قمة IP ، وهي البروتوكولات التي تضيف "المنافذ". تكون ICMP و TCP و UDP جميعها بنفس "المستوى" من حيث البروتوكول الذي يتم نقله بواسطته. - Jason C
+1. يعتقد الكثير والكثير أنه إذا لم يتمكنوا من قراءة شيء لا يستطيعون الاتصال به ... لكن كما تقول ، يختلف ICMP عن بروتوكول TCP و UDP: إذا كنت تنوي عرض صفحة ويب على TCP 80 مثلاً ، من أنك تحتاج فقط إلى فتح TCP 80 على جدار الحماية ، ولا شيء آخر (لذلك يمكن حظر Ping لنفس عنوان IP (يجب ...!) ، على سبيل المثال) - Olivier Dulac
فقط للحفاظ على دقة المعلومات ، ليس ICMP بروتوكول طبقة نقل مثل TCP أو UDP. مثل عدد من البروتوكولات ، فإنه لا يتلاءم تمامًا مع النماذج المفاهيمية للشبكة ، ولكنه يعتبر بشكل عام بروتوكول طبقة شبكية / شبكة عمل كما هو IP. كما تمت الإشارة إليها أحيانًا باسم بروتوكول L3.5. - YLearn
BenjiWiebe ، وافق ، ولكن مرة أخرى ، للتأكد من دقة يجب أن يكون البيان الذي هو سبب إضافته. كل ما يقال حتى الآن هو أن بروتوكول ICMP و TCP و UDP مرتبطان. حتى أن أعلى التعليقات التي تم التصويت عليها تشير إلى أنهم جميعاً على نفس "المستوى". في حين أن هذا لا يؤثر على المستخدم العادي ، إلا أن هناك الكثير من المستخدمين غير المتوسطين الذين يزورون هذا الموقع. - YLearn
OlivierDulac لا أعرف إذا كنت ينبغي منعه. معظم مواقع الويب التي أعرفها تتركها مفتوحة. ICMP يجعل الإنترنت يرحل. لماذا تريد أن يفكر الناس أنهم لا يستطيعون الوصول إليك إذا استطاعوا ذلك؟ - Cruncher


أنا أستعمل تلنت، نظرًا لدمجها في العديد من الأنظمة الأساسية بدون تنزيلات إضافية.

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

Minty16 ~ $ telnet localhost 139
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

إذا كنت تعرف تسلسل الأوامر الخاص بالخدمة التي تتصل بها ، فيمكنك كتابة أمر (HTTP / FTP GET على سبيل المثال) ومراقبة الاستجابة والإخراج في المحطة. هذا مفيد جدًا لاختبار الخدمة نفسها ، حيث سيعرض لك معلومات الخطأ المرسلة إلى العميل ، مثل أخطاء HTTP 500.

إذا تلقيت رسالة تفيد برفض الاتصال ، فسيتم إغلاق المنفذ.

Minty16 ~ $ telnet localhost 5000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

79
2018-06-16 18:24



أيضًا إذا كانت الشاشة سوداء تمامًا ، فهي علامة تكون متصلاً بها أيضًا. - Tensigh
اقتراح ممتاز. اعتدت على استخدام هذا لاختبار ما إذا كان خادم الويب قد انتهى عندما لم يكن متصفح الويب خيارًا سهلاً. - Brandon
Brandon مثل عندما sshing في آلات ديف ^ - Cruncher
تكون أدوات المطور في المتصفحات أسهل كثيرًا ، لأنها ستظل ترسل جميع رؤوس طلبات HTTP المناسبة ، ولكن يمكنك فحص استجابة HTTP الكاملة. ثم مرة أخرى إذا كنت ترغب في تخصيص الطلب أيضًا ، فإن telnet هو الطريق المناسب. - Lightness Races in Orbit
أعتقد أن جميع الإجابات هنا تفوت المعلومات الأكثر أهمية. من الناحية الفنية ، أليس من الممكن "ping" منفذ على النحو التالي؟ يمكنك تأسيس اتصال TCP / UDP ، وقمت بحساب عدد الميلي ثانية التي استغرقتها لإنشاء ذلك الاتصال. - David


يمكنك استخدام netcat للاتصال بمنفذ معين لمعرفة ما إذا كان لديك اتصال. سيؤدي علم -v إلى زيادة الإسهاب لإظهار ما إذا كان المنفذ مفتوحًا أو مغلقًا. سيؤدي العلامة --z إلى إنهاء netcat بمجرد وجود اتصال. يمكنك بعد ذلك استخدام رموز الخروج من خلال $؟ لمعرفة ما إذا كان أو لم يتم تأسيس الاتصال أم لا.

$ nc -zv localhost 22
localhost [127.0.0.1] 22 (ssh) open
$ echo $?
0
$ nc -zv localhost 23
localhost [127.0.0.1] 23 (telnet) : Connection refused
$ echo $?
1

بالإضافة إلى ذلك ، يمكنك استخدام mtr مع علامة -T لـ tcp وعلامة -P لتحديد منفذ. سيؤدي ذلك إلى القيام بشيء مماثل لتتبع المسار عبر TCP بدلاً من ICMP. هذا قد يكون مبالغة ، ولكن.

تنهد  لا بد لي من تحرير لإضافة هذا قليلا ، لأننا لا نستطيع وضع رمز في التعليقات. قد يكون Knoppix يقوم بشيء مختلف مع نسخته من netcat ، لكن هذا ما أنزله من Linux Mint

$ date;nc -z -w 1 www.google.com 8000;date
Fri Jun 20 15:55:26 PDT 2014
Fri Jun 20 15:55:27 PDT 2014
$ date;nc -z -w 4 www.google.com 8000;date
Fri Jun 20 15:55:33 PDT 2014
Fri Jun 20 15:55:37 PDT 2014

$ nc -h
[v1.10-40]

42
2018-06-16 21:15



المشكلة هي إذا حاولت nc -z www.google.com 8000  يمكن أن يستغرق وقتا طويلا - 5 ثوان زائد. إذا فعلت -w 1 ثم يستغرق 5 ثوان. إذا فعلت -w 3 ثم يأخذ مثل 3 مرات أطول .. 15 ومضات المؤشر ، 15 ثانية. -w 1 من المفترض أن تكون واحدة ثانية ولكن اختبارها على cygwin.،. 5 ثوان. إنه سريع للغاية عندما يكون هناك خادم على المنفذ ولكنه بطيء بعض الشيء عندما لا يكون هناك خادم. - barlop
لعنة لا توجد خطوط جديدة في التعليقات ... يبدو أن هذا خطأ مع cygwin. يُظهر الاختبار باستخدام linux Mint تأخرًا من عدة ثوانٍ محددة. أجريت هذا للاختبار: date؛ nc-zw5 www.google.com 8000؛ date - Falsenames
أنا أيضا upvotedBenjiWiebe مع طلبات nmap. nc من السهل وضعها في برنامج نصي ، ولكن من الأسهل استخدام nmap بشكل مرئي. - Falsenames
تحاول ذلك في knoppix. nc -zv -w 1 www.google.com كيف تتسبب في محاولة المحاولة مرة واحدة فقط؟ عندما أحاول نعم ، يعمل -w 1 ولكن في كل ثانية يعيد حتى أعمل Ctrl-C. - barlop
لست متأكدًا مما يفعله إصدار Knoppix من "nc -zv -w 1 www.google.com 80". هذا يعمل بشكل جيد على النظام الخاص بي ، الاستعلام مرة واحدة ومن المفترض أن تفعل مثل إسقاط مثل -z. أيضا ، من دون رقم المنفذ المحدد ، فشل الألغام من القول أنه لا يوجد منفذ محدد. - Falsenames


نعم ، استخدم HPing للقيام بذلك:

$ sudo hping -S -p 80 google.com
HPING google.com (p5p1 77.237.27.37): S set, 40 headers + 0 data bytes
len=46 ip=77.237.27.37 ttl=58 id=25706 sport=80 flags=SA seq=0 win=29200 rtt=7.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25707 sport=80 flags=SA seq=1 win=29200 rtt=7.4 ms
len=46 ip=77.237.27.37 ttl=58 id=25708 sport=80 flags=SA seq=2 win=29200 rtt=8.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25709 sport=80 flags=SA seq=3 win=29200 rtt=7.8 ms
^C
--- google.com hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.4/7.8/8.5 ms

لاحظ أنه يحتاج إلى امتيازات الجذر (أو قدرات SELinux) لإنشاء حزم IP خام ، تمامًا مثل ping (وهو على الارجح متخبط على النظام الخاص بك).


41
2018-06-17 15:35



أتمنى أن تكون هذه "الإجابة المقبولة". كان من السهل العثور عليها في العديد من repos ، على عكس paping الذي هو رمز crufty القديمة التي لا تتجمع على ARM. أيضا على عكس NMAP ، مشيدا بإرجاع رمز الحالة التي يمكن اختبارها بسهولة من البرنامج النصي shell ، لذلك هو بديل مثالي عن المكان الذي تستخدمه ping. شكرا على هذه الإجابة ، من العار لم أتمكن من التمرير إلى الأسفل بما يكفي لرؤيتها ، وكان عليها أن تجدها على موقع ويب آخر بدلاً من ذلك. - Mark


يمكنك أيضا استخدام nping (جزء من nmap):

$ nping -p 80 localhost

Starting Nping 0.6.00 ( http://nmap.org/nping ) at 2014-06-23 11:57 CEST
SENT (0.0015s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (0.0016s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (1.0027s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (1.0027s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (2.0038s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (2.0039s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (3.0050s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (3.0050s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (4.0061s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (4.0062s) Handshake with localhost:80 (127.0.0.1:80) completed

Max rtt: 0.032ms | Min rtt: 0.008ms | Avg rtt: 0.012ms
TCP connection attempts: 5 | Successful connections: 5 | Failed: 0 (0.00%)
Tx time: 4.00575s | Tx bytes/s: 99.86 | Tx pkts/s: 1.25
Rx time: 4.00575s | Rx bytes/s: 49.93 | Rx pkts/s: 1.25
Nping done: 1 IP address pinged in 4.01 seconds

16
2018-06-23 09:57



nping --tcp -p 80 localhost - K-Gun


يمكنك القيام بذلك في šhell مع بايثون كخطوط قصيرة غير قصيرة:

$ portping() { python <<<"import socket; socket.setdefaulttimeout(1); socket.socket().connect(('$1', $2))" 2> /dev/null && echo OPEN || echo CLOSET; }
$ portping 8.8.8.8 54
CLOSET
$ portping 8.8.8.8 53
OPEN

6
2017-12-18 22:11



لا تقم بلصق هذا في أوزة python سخيفة. لصقه في باش. - AXE-Labs
موافق أنا أحمق ، وإزالة التعليق ، وذلك بفضل أنها عملت على أكمل وجه. - rob
CLOSET ، loooool - srghma


انا اضفت watch أداة هنا:

watch nmap -p22,80 google.com 

Every 2,0s: nmap -p22,80 google.com   Mon Jun 15 16:46:33 2015

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-15 16:46 NOVT
Nmap scan report for google.com (127.0.0.1)
Host is up (0.0012s latency).
rDNS record for 127.0.0.1: google.com
PORT     STATE  SERVICE
22/tcp open   ssh
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

3
2018-06-15 10:48