এক-লাইন কমান্ড চালিয়ে টেলনেট ব্যবহার করে দূরবর্তী টিসিপি পোর্ট পরীক্ষা করা


12

আমার কাছে অনেকগুলি লিনাক্স বাক্স রয়েছে যা সীমিত কমান্ডের একটি সেট এবং ডিস্ক স্পেস রয়েছে। তবে এটির telnetউপর আদেশ রয়েছে।

আমি দূরবর্তী অবস্থান থেকে এই প্রতিটি প্রোবের সাথে যুক্ত হয়েছি (প্রোগ্রাম্যাটিকভাবে) এবং এসএসএইচ এর মাধ্যমে একটি লাইন লিনাক্স কমান্ড জারি করি।

আমাকে একটি নির্দিষ্ট মেশিনে টেলনেট ব্যবহার করে সংযোগ করার জন্য একটি একক কমান্ড চালাতে হবে এবং তারপরেই সংযোগ বিচ্ছিন্ন করতে হবে

আমি এগুলি সব করতে পারি তবে সংযোগ বিচ্ছিন্নভাবে এখনই । টেলনেট কোনও ধরণের কনসোল বা টার্মিনাল খোলে এবং আমি টেলনেট কমান্ডটি চালানোর জন্য এক-লাইন কমান্ডটি খুঁজে বের করতে পারি না এবং ঠিক তখনই সংযোগ বিচ্ছিন্ন করতে পারি।

যদি আমি এটি করি তবে নির্দিষ্ট বন্দরটিতে মেশিনের সাথে সংযোগ স্থাপন করতে না পারার জন্য আমি ত্রুটি বার্তাগুলির জন্য খুব সহজেই পাঠ্য আউটপুটকে পার্স করতে পারি এবং ঠিক এটিই আমি সন্ধান করছি।

সুতরাং আমি কীভাবে টেলনেট ব্যবহার করে কোনও মেশিনের সাথে সংযোগ স্থাপন করতে এবং তারপরে সংযোগ বিচ্ছিন্ন করতে এক-লাইন কমান্ড চালাতে পারি?


আমি যেমন বুঝতে পারি যে আপনার টেলনেট ক্লায়েন্ট সরাসরি প্রেরণ সমর্থন করে না?
আইবিআর

@ আইবিআর, আপনার অর্থ কি?
মুহাম্মদ জেলবানা

নোট করুন যে টেলেন্ট ক্লায়েন্টগুলি ক্লায়েন্ট সাইড প্রস্থান কমান্ডটি বন্ধ করার পরে রিপোর্ট করা প্রস্থান কোডে পৃথক হয়। সুতরাং শূন্য প্রস্থান কোডটি বন্দরটি খোলা হওয়ার সংকেত হিসাবে বিবেচনা করা উচিত নয়। কমপক্ষে RHEL টেরেন্ট RPM এর জন্য কাজ করে না।
অলিভার গন্ডিয়া

উত্তর:


28

আপনার exitকমান্ডটি STDIN এ পাইপ করতে সক্ষম হওয়া উচিত telnet। চেষ্টা করুন:

echo 'exit' | telnet {site} {port}

এবং দেখুন যে এটি কাজ করে। (এটি আমার ওয়েব সার্ভারে কাজ করছে বলে মনে হচ্ছে, তবে ওয়াইএমএমভি)।


বোধহয় কাজ করতে পারে তবে বোবা বলে মনে হচ্ছে - টেলনেটের বাইরে যাওয়ার বিকল্প বা প্রথম যোগাযোগের কিছু থাকা উচিত
আলেকজান্ডার মিলস

10

সবচেয়ে সহজ এবং সহজ পদ্ধতি নীচে দেওয়া হল।

 sleep <n> | telnet <server> <port>

n - স্বয়ংক্রিয় প্রস্থানের আগে সেকেন্ডে অপেক্ষা করার সময়। এটি 0.5 এর মত ভগ্নাংশ হতে পারে। নোট করুন যে কিছু প্রয়োজনীয় আউটপুট নির্দিষ্ট অপেক্ষা সময়ের মধ্যে ফিরে নাও আসতে পারে। সুতরাং আমাদের সেই অনুযায়ী বাড়ানোর প্রয়োজন হতে পারে।

সার্ভার - লক্ষ্য সার্ভার আইপি বা হোস্টনাম।

পোর্ট - লক্ষ্য পরিষেবা পোর্ট নম্বর।

আপনি আউটপুটটিকে ফাইলে পুনর্নির্দেশ করতে পারেন,

sleep 1 | telnet <server> <port> > output.log

এটি পুরোপুরি কাজ করে! আউটপুটটি সত্যই পুনঃনির্দেশিত হওয়ার সময় আমি লক্ষ্য করেছি যে আমি এখনও "বিদেশী হোস্ট দ্বারা সংযোগ বন্ধ করে" পেয়েছি। আউটপুট.লগ ফাইলের চেয়ে ঘুমের পরে আমার কনসোলে আউটপুট। এটি রোধ করার কোনও উপায়?
ডান

5

আমার ক্ষেত্রে এটি কাজ করে। (সেন্টস 7):

while read host port; do
r=$(bash -c 'exec 3<> /dev/tcp/'$host'/'$port';echo $?' 2>/dev/null)
if [ "$r" = "0" ]; then
     echo "$host $port is open"
else
     echo "$host $port is closed"
     exit 1 # To force fail result in ShellScript
fi
done

1
আরে, এই দুর্দান্ত। আমি আমার কাজের সময়ে সমস্ত লিনাক্স সিস্টেমে একজন ব্যবহারকারী, তবে প্রশাসক নই (এবং কোনও প্রশাসকের অধিকার নেই)। আমি তাদের সর্বদা টেলনেট ইনস্টল করতে বলার জন্য অসুস্থ তাই আমি নেটওয়ার্ক সংযোগ পরীক্ষা করতে পারি (আমি একটি নেটওয়ার্ক ইঞ্জিনিয়ার)। এটি একটি দুর্দান্ত কাজ। টেলনেটের মতো আরও পারফর্ম করতে আমি কিছুটা পরিবর্তন করেছি। আমি এখানে আমার নিজের উত্তরটি পরিবর্তন করে দিয়েছি।
theglossy1

3

আমি মনে করি সরাসরি কমান্ড প্রেরণের জন্য আরও ভাল সরঞ্জাম এবং কেবল আউটপুট পাওয়ার নেটট্যাট হবে। পোর্টগুলির মাধ্যমে কমান্ড দেওয়ার জন্য এটি কেবল সহজ, তবে শক্তিশালী সরঞ্জাম। আপনি এই সুপার ব্যবহারকারী প্রশ্নে ব্যবহারের উদাহরণ দেখতে পেলেন: /superuser/261900/how-can-i-pipe-commands-to-a-netcat-that-will-stay-alive - প্রশ্নকারী কাজের উদাহরণ দেয় যার সাথে সংযোগ কয়েক সেকেন্ড পরে বন্ধ হয়ে যায়।

এখন তুমি যদি পরীক্ষা সংযোগ করতে চান এই ব্যবহার করুন: http://terminalinflection.com/use-netcat-not-telnet-to-test-network-connectivity/


আমি এখনই নেটকাট ইনস্টল করার চেষ্টা করছি তবে আমি তা করতে অক্ষম। আমি একটি সংকলিত পাওয়ারপিসি সংস্করণ ডাউনলোড করেছি তবে গ্লিবসি লাইব্রেরি অনুপস্থিত। আমি একটি সংকলিত পাওয়ারপিসি সংস্করণ ডাউনলোড করেছি তবে লাইব্রেরির ফাইলগুলি অনুলিপি করার জন্য ডিভাইসে পর্যাপ্ত জায়গা নেই! এটি কি সম্ভব যে গ্লিবিক লাইব্রেরি ইতিমধ্যে বিদ্যমান আছে তবে নেটক্যাট এটি খুঁজে পাচ্ছে না?
মুহম্মদ গেলবানা

নেটক্যাট কেবল ক্লায়েন্টের পক্ষে প্রয়োজন: সার্ভারে (প্রোব) একই প্লেইন পুরাতন টেলনেট হতে পারে।
আইবিআর

গ্লিবিসি এর ইতিমধ্যে উপস্থিত থাকা উচিত, এটি স্বাভাবিক সিস্টেমে অনেকগুলি স্টাফের জন্য ব্যবহৃত হয়।
আইবিআর

আপনি টেলনেট স্ক্রিপ্টগুলিতে যুক্ত করার চেষ্টা করতে && exitপারেন দেখুন এটি সংযোগ বিচ্ছিন্ন হয়েছে কিনা (এসএসএসে অন্তত এটি যথেষ্ট)।
আইবিআর

&& exitকাজ হয়নি। যদি গ্লিবসি বিদ্যমান থাকে এবং আমি বিশ্বাস করি এটি রয়েছে। এটি কেন nc.traditionalঅনুপস্থিত বলে অভিযোগ করবেন ?
মুহম্মদ গেলবানা

1

এটি উপরের উত্তরের আর একটি সংস্করণ যা এটি "সাধারণ" টেলনেট সিনট্যাক্সের মতো আরও কিছুটা কাজ করে। আপনি যদি আমার উত্তরটি পছন্দ করেন তবে দয়া করে এটির জন্য নয়, মূলটিকে উপস্থাপন করুন।

#!/bin/bash
if [ "$2" == "" ]; then
 echo "Syntax: $0 <host> <port>"
 exit;
fi

host=$1
port=$2

r=$(bash -c 'exec 3<> /dev/tcp/'$host'/'$port';echo $?' 2>/dev/null)
if [ "$r" = "0" ]; then
     echo "$host $port is open"
else
     echo "$host $port is closed"
     exit 1 # To force fail result in ShellScript
fi

1

ইন্টারনেটে আমি যে সমাধানটি পেয়েছি তা এখানে:

( echo open 127.0.0.1 23
sleep 5
echo your_login
sleep 5
echo your_password
sleep 5
echo hostname
sleep 5
echo exit ) | telnet

এটি আমার জন্য সানোস এবং এইচপি-ইউএক্সে কাজ করে


0

চেষ্টা

echo -e '\x1dclose\x0d' | telnet {HOSTNAME} {PORT}

উপরের সর্বোত্তম অংশটি হ'ল আপনিও প্রস্থান স্থিতি পান। টেলনেট হলে সাফল্যের প্রস্থান কোড 0 বা অন্যটি এর 1 হবে


0

আপনার যদি কাস্টম রুট থাকে তবে নেটকাট এড়ান, কারণ এটি রাউটিংয়ের নিয়ম মানায় না। অনুরূপ কিভাবে nslookup, dig& host/ etc / hosts ফাইলটি (এড়িয়ে nslookup একটি, ডিআইজি, ফায়ারফক্স উপেক্ষা / etc / hosts ফাইলটি এন্ট্রি )।

উদাহরণস্বরূপ: অ্যাপ্লিকেশন এবং সরঞ্জামগুলির মতো নয় telnetএবং /dev/tcp( ওয়ান-লাইন কমান্ড চালিয়ে টেলনেট ব্যবহার করে দূরবর্তী টিসিপি পোর্ট পরীক্ষা করা ) যা সিস্টেমের রাউটিং বিধি অনুসরণ করে, ncডিফল্ট গেটওয়ে ব্যবহার করে যদি না নির্দিষ্টভাবে কোনও উত্সের আইপি ঠিকানা ব্যবহার করতে বলা হয় -s:

nc -w 3 -s 192.168.1.12 example.com 8080

কোনও অ্যাপ্লিকেশন যদি সংস্থানটিতে পৌঁছতে পারে তবে আমার পরীক্ষা করা দরকার এবং রুটগুলি নিচে থাকলে netcatরিপোর্ট করা হয়েছে যে পরীক্ষার মধ্যে উত্সের ঠিকানাটি নির্দিষ্ট করা হয়েছে বলে সবকিছু ঠিক আছে। আমি ব্যবহারে স্যুইচ করছি /dev/tcp

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.