দূরবর্তী হোস্টে একটি বন্দরের স্থিতি পরীক্ষা করুন [বন্ধ]


158

আমার একটি কমান্ড লাইন দরকার যা দূরবর্তী হোস্টে পোর্টের স্থিতি পরীক্ষা করতে পারে। আমি চেষ্টা করেছি ping xxx.xxx.xxx.xxx:161কিন্তু এটি "হোস্ট" কে চিনতে পারে না। আমি ভেবেছিলাম যে এটি একটি "ভাল" উত্তর না হওয়া অবধি আমি জানি যে কোনও হোস্টের বিরুদ্ধে একই কমান্ডটি না করি যখন তার বন্দরটি খোলা আছে। এটি উইন্ডোজে এমন একটি ব্যাচের ফাইলের জন্য যা দূরবর্তী পোর্টের স্থিতি পরীক্ষা করে তারপরে একটি কমান্ড চালাবে যা তথ্যের জন্য সেই রিমোট পোর্ট ব্যবহার করে, তারপরে পুনরায় রিমোট পোর্ট চেক কমান্ড, তারপরে কমান্ডটি পরবর্তী সার্ভারে সেই পোর্টটি তথ্যের জন্য ব্যবহার করবে , ইত্যাদি। আমি সর্বত্র দেখেছি এবং ভেবেছি পিংটি এটি করতে পারে তবে পিংয়ের বিভিন্ন সংস্করণ থাকতে হবে, আমি মনে করি যে সার্ভার হিসাবে আমি এই কাজটি করছি সে বিকল্পটি না দেখায়।

কেবল ছক্লের জন্য, আমি একটি ওয়েবসাইট থেকে একটি ওয়েব-ভিত্তিক রিমোট পোর্ট চেকার চেষ্টা করেছি - এবং ফলাফল "সমস্যা" সার্ভার এবং সঠিক সার্ভার উভয়েরই জন্য সঠিক ছিল। তবে, আমি এটিতে 500+ সার্ভার আইপি সহ একটি ব্যাচে রান ব্যবহার করতে পারি না।

আমি কি কিছু করতে পারি যে এটি সহজ? আমার পার্ল দক্ষতা অত্যন্ত মরিচা (এটি ব্যবহার করুন বা এটি হারাতে পারেন), ব্যাচ ব্যতীত অন্য কোনও উইন্ডোজ ভিত্তিক ভাষা জানেন না। ইউনিক্সটি আমার দক্ষতা, তবে এটি বিধবা সার্ভার 2003 থেকে কার্যকর করা উচিত।


5
আপনি এটি সার্ভারফল্ট ডট কম এ জিজ্ঞাসা করার চেষ্টা করতে চাইতে পারেন
জন রাশ

1
: কেউ ইতিমধ্যেই এই করেনি serverfault.com/questions/309357/ping-a-specific-port
Vadzim

1
এই প্রশ্নটি বন্ধ
হওয়ায়


উইন্ডোজ ps> tnc xxx.xxx.xxx.xxx -port 161
মোসলেম শাহসভান

উত্তর:


151

আপনি এনএমএপ বা নেটক্যাটের মতো পোর্ট স্ক্যানার সন্ধান করছেন বলে মনে হচ্ছে এটি উভয়ই উইন্ডোজ, লিনাক্স এবং ম্যাক ওএস এক্স এর জন্য উপলব্ধ

উদাহরণস্বরূপ, একটি পরিচিত আইপি তে টেলনেটের জন্য পরীক্ষা করুন:

nmap -A 192.168.0.5/32 -p 23

উদাহরণস্বরূপ, 20 থেকে 30 পর্যন্ত স্বাগত পোর্টগুলির জন্য হোস্ট.এক্সামেল.কম.

nc -z host.example.com 20-30

এই দুটিই উইন্ডোজের জন্য উপলব্ধ।
গ্লেন

1
আপনার এনএমএপ কমান্ডটি স্থান ছাড়াই "-p23" রিয়েল করা উচিত। এনএমএপ প্রতিটি ইউনিটকে তাত্ক্ষণিকভাবে পৃথক স্ক্যানের গন্তব্য হিসাবে পতাকাবাহী না করে আচরণ করে
ব্র্যান্ডন লেবেদেভ

14
হওয়া উচিত nc -zv host.example.com 20-30। অন্যথায় কোনও আউটপুট নেই
আরেহ বেইটজ

1
লিনাক্সের -zজন্য বিকল্পটি ncউপলব্ধ নয়।
ভ্যালেন্টিন_নাস্টা

1
@ ভ্যালেন্টিন_নাস্টা হ্যাঁ, এটি সম্ভবত আপনি নেটকাটের কোন সংস্করণ (gnu বা ওপেনবিএসডি) ব্যবহার করছেন তার উপর নির্ভর করে। আমার আর্চ লিনাক্স সিস্টেমে এনসি (ওপেনবিএসডি সংস্করণ) এর জন্য ম্যান পৃষ্ঠা থেকে প্রাসঙ্গিক লাইনটি এখানে রয়েছে: -z নির্দিষ্ট করে যে এনসি কোনও ডেটা না প্রেরণে ডেমন শোনার জন্য কেবল স্ক্যান করবে। এই বিকল্পটি -l বিকল্পের সাথে মিলিয়ে ব্যবহার করতে ত্রুটি
pgoetz

126

কমান্ড প্রম্পটে, আপনি কমান্ড টেলনেটটি ব্যবহার করতে পারেন .. উদাহরণস্বরূপ, পোর্ট 80 সহ আইপি 192.168.10.1 এ সংযোগ করতে,

telnet 192.168.10.1 80

উইন্ডোজ 7 এবং তার উপরের টেলনেট সক্ষম করতে ক্লিক করুন । লিঙ্কযুক্ত নিবন্ধ থেকে, কন্ট্রোল প্যানেলের মাধ্যমে টেলনেট সক্ষম করুন -> প্রোগ্রাম এবং বৈশিষ্ট্য -> উইন্ডোজ বৈশিষ্ট্য -> টেলনেট ক্লায়েন্ট, বা কেবল এডমিন প্রম্পটে এটি চালান:

dism /online /Enable-Feature /FeatureName:TelnetClient

3
উইন্ডোজ ডিভাইসে টেলনেট ইনস্টল করা থাকলে এটি সবচেয়ে সহজ পদ্ধতি
shonky linux ব্যবহারকারী

30
... এবং এটি উইন্ডোতে যুক্ত হতে 2 সেকেন্ড সময় নেয় (আমার ক্ষেত্রে 8.1)> কন্ট্রোল প্যানেল> প্রোগ্রামগুলি যুক্ত করুন> উইন্ডো বৈশিষ্ট্যগুলি চালু করুন
ক্রিস মাউত্রে

14
কেবল তথ্যের জন্য: যদি বন্দরটি খোলা না থাকে: ##### তে সংযুক্ত হচ্ছে ... বন্দরে হোস্টের সাথে সংযোগ খুলতে পারেনি, ####: সংযোগ ব্যর্থ হয়েছে; এবং যদি বন্দরটি খোলা থাকে তবে আপনি টেলনেট (সিটিআরএল +] এর শেষে '
ছাড়ুন

27

স্ক্রিপ্টিংয়ের উদ্দেশ্যে, আমি খুঁজে পেয়েছি যে curlকমান্ড এটি করতে পারে, উদাহরণস্বরূপ:

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

সম্ভবত এটি সমস্ত পরিষেবার জন্য কাজ করবে না, কারণ curlকিছু ক্ষেত্রে (মন্তব্য অনুসারে) বিভিন্ন ত্রুটি কোডগুলি ফিরে আসতে পারে, সুতরাং নিম্নলিখিত শর্তটি নির্ভরযোগ্য উপায়ে কাজ করতে পারে:

[ "$(curl -sm5 localhost:8080 >/dev/null; echo $?)" != 7 ] && echo OK || echo FAIL

দ্রষ্টব্য: -m55 সেকেন্ডের সর্বাধিক সংযোগের সময়সীমা সেট করতে যুক্ত করা হয়েছে।

আপনি যদি হোস্টটি বৈধ কিনা তাও যদি আপনি দেখতে চান তবে আপনাকে 6প্রস্থান কোডও পরীক্ষা করতে হবে :

$ curl -m5 foo:123; [ $? != 6 -a $? != 7 ] && echo OK || echo FAIL
curl: (6) Could not resolve host: foo
FAIL

ফিরে আসা ত্রুটি কোডটির সমস্যা সমাধানের জন্য, কেবল চালান curl host:port:, যেমন:

$ curl localhost:80
curl: (7) Failed to connect to localhost port 80: Connection refused

দেখুন: man curlপ্রস্থান কোডের সম্পূর্ণ তালিকার জন্য।


দুর্ভাগ্যক্রমে এটি আমার পক্ষে কার্যকর হয় না (কমপক্ষে ওএস এক্সের ব্যাশ-এ)।
মাইক অ্যাটলাস

1
একটি কাস্টম পরিষেবা। এফডব্লিউআইডাব্লিউড এটি সাজানোর কাজ করে: curl $IP:$PORTফলন দেয়: curl: (52) Empty reply from server(বনাম curl: (7) Failed to connect) তবে অনেক ভালো nc, আমি | grep Emptyএই আউটপুট বিবৃতিগুলির মতো যেমন আশা করতে পারি না (নিউলাইনগুলি বা তাত্ক্ষণিক আউটপুটটির অভাব সম্পর্কে কিছু?) আমি মনে করি আপনার লাইনটি শর্তসাপেক্ষে প্রস্থান কোডের বাইরে অবস্থিত, তাই না? আমি এল ক্যাপে আছি; অন্য সংস্করণে বা ওএসে ব্যর্থতা রাষ্ট্রের -1পরিবর্তে প্রস্থান হয় 52?
মাইক অ্যাটলাস

হ্যাঁ এটা করতে হবে। curl -s $IP:$PORT >/dev/null; if [ $? -eq 52 ]; then echo "Connected."; else echo "Fail."; fi
মাইক অ্যাটলাস

উইন্ডোজ সম্পর্কে প্রশ্ন ছিল, যার স্পষ্টতই উদাহরণস্বরূপ যেমন / dev / নাল নেই
আর্থার ট্যাকা

@ আর্থারট্যাকা আপনি সর্বদা লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম (ডাব্লুএসএল) ব্যবহার করতে পারেন।
কেনারব

23

প্রেস Windows+ + Rটাইপ cmdএবংEnter

কমান্ড প্রম্পট টাইপ

telnet "machine name/ip" "port number"

যদি পোর্টটি না খোলা থাকে তবে এই বার্তাটি প্রদর্শিত হবে:

"Connecting To "machine name"...Could not open connection to the host, on port "port number":

অন্যথায় আপনি খোলা বন্দরে নিয়ে যাবেন (খালি পর্দা প্রদর্শিত হবে)


7
নোট করুন যে আধুনিক উইন্ডোজ সিস্টেমে টেলনেট ডিফল্টরূপে ইনস্টল করা হয় না। আপনাকে এটি যুক্ত করুন / সরান উইন্ডোজ বৈশিষ্ট্যগুলি নিয়ন্ত্রণ প্যানেল থেকে ইনস্টল করতে হবে।
গ্রেগ

1
@Greg অথবা একটি অনলাইন টুল যেমন ব্যবহার telnet-online.net
রহমান

2
@ ওস সত্য, যদি না আপনি কোনও অভ্যন্তরীণ সার্ভারের স্থিতি পরীক্ষা করেন
গ্রেগ

Windows10 উপর কাজ করে
গৌরব

19

এনসি কমান্ড ব্যবহার করুন,

nc -zv <hostname/ip> <port/port range>

For example,
nc -zv localhost 27017-27019
or
nc -zv localhost 27017

আপনি টেলনেট কমান্ডও ব্যবহার করতে পারেন

telnet <ip/host> port

4

এনসি বা 'নেটকাট' এর একটি স্ক্যান মোডও রয়েছে যা ব্যবহারের হতে পারে।


3
ম্যাক "এনসি-জেডভি সার্ভার পোর্ট-রেঞ্জ"
বিজয় কুমার

2

আমি মনে করি আপনি হ্যাপিং ( http://www.hping.org/ ) সন্ধান করছেন, যার উইন্ডোজ সংস্করণ রয়েছে।

"ইন্টারফেসটি পিং (8) ইউনিক্স কমান্ডের দ্বারা অনুপ্রাণিত হয়েছে, তবে এইচপি কেবল আইসিএমপি ইকো অনুরোধগুলি প্রেরণ করতে সক্ষম নয় It এটি টিসিপি, ইউডিপি, আইসিএমপি সমর্থন করে ..."

এটি যদি খুব কার্যকর হয় আপনি যদি দেখতে চান যে কোন পথে কোন টিসিপি বন্দরটি ব্লক করা হচ্ছে (যেমন কোনও ফায়ারওয়াল দ্বারা) যেখানে আইসিএমপি নাও পারে।


2

বাশে, আপনি সিউডো-ডিভাইস ফাইলগুলি ব্যবহার করতে পারেন যা সম্পর্কিত সকেটে টিসিপি সংযোগটি খুলতে পারে। বাক্য গঠনটি হ'ল/dev/$tcp_udp/$host_ip/$port

মেমক্যাচড চলছে কিনা তা পরীক্ষা করার জন্য এখানে সাধারণ উদাহরণ রয়েছে:

</dev/tcp/localhost/11211 && echo Port open || echo Port closed

নির্দিষ্ট ওয়েবসাইটটি অ্যাক্সেসযোগ্য কিনা তা দেখার জন্য এখানে আরও একটি পরীক্ষা দেওয়া হয়েছে:

$ echo "HEAD / HTTP/1.0" > /dev/tcp/example.com/80 && echo Connection successful.
Connection successful.

আরও তথ্যের জন্য, চেক করুন: উন্নত বাশ-স্ক্রিপ্টিং গাইড: অধ্যায় 29. /devএবং/proc

সম্পর্কিত: কোনও রিমোট সিস্টেমে কোনও বন্দর যদি পৌঁছনীয় হয় তা পরীক্ষা করুন (টেলনেট ছাড়াই) হয় তবে তা পরীক্ষা করুন।

আরও উদাহরণের জন্য, দেখুন: বাশ শেলের (নিবন্ধ) টিসিপি / ইউডিপি সকেট কীভাবে খুলবেন


1
বাহ, এই প্রতিভা! আমি জানি না কেবল বাশ দিয়ে এটি সম্ভব। আমার মতো লোকদের পক্ষে এত সুবিধাজনক যারা উইন্ডোজে কেবল গিট ব্যাশ ইনস্টল করেছেন এবং অন্য কোনও পরিষেবা ইনস্টল করতে চান না।
dotslashlu
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.