বাশের `/ dev / udp` ব্যবহার করে, বন্দরটি খোলা থাকলে কীভাবে জানব?


14

আমার অ্যাক্সেস নেই netcatবা nmapতাই আমি ব্যবহার করার চেষ্টা করছি bashএবং /dev/udp/বন্দরগুলি পরীক্ষা করার জন্য বিশেষ ফাইল।

আমি এরকম কিছু করতে পারি:

echo "" > /dev/udp/example.com/8000

তবে $?সর্বদা 0ইউডিপি ব্যবহারের সময় হয়। আমি ধরে নিচ্ছি এটি কারণ echo ""কমান্ডের রিটার্ন মানটি সঠিক?

আমি মূলত যা করতে পেরেছি তার প্রতিলিপি দেওয়ার চেষ্টা করছি nmapএবং netcat:

nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open'
nc -z -u example.com 8000 && echo 'open'

আমি এটি দিয়ে কীভাবে করব /dev/udp?


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

উত্তর:


13

টিসিপির জন্য, কেবল পরীক্ষা করা হচ্ছে $?। যদি সংযোগ ব্যর্থ হয় $?তবে তা হবে না 0:

$ >/dev/tcp/google.com/81
bash: connect: Network is unreachable
bash: /dev/tcp/google.com/81: Network is unreachable
$ echo $?
1

bashসংযোগটি ব্যর্থ হয়েছে তা বুঝতে সময় লাগবে । আপনি ট্রিগার করতে সময়সীমা ব্যবহার করতে পারেন bash:

$ timeout 1 bash -c '>/dev/tcp/google.com/80' &&
  echo Port open ||
  echo Port close
Port open

ইউডিপি পোর্ট পরীক্ষা করা আরও জটিল।

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

দুর্ভাগ্যক্রমে, ফায়ারওয়াল বা রাউটারগুলি প্রায়শই এই আইসিএমপি প্যাকেটগুলি ফেলে দেয়, তাই আপনি ইউডিপি পোর্টের অবস্থা সম্পর্কে নিশ্চিত হতে পারবেন না।


আমার প্রশ্নটি ইউডিপিতে ফোকাস করার জন্য পুনরায় চাপ দিয়েছে। নিনজা সম্পাদনার জন্য আমার ক্ষমা চাই। আমি ভেবেছিলাম এটি একই রকম হবে তাই পার্থক্য তৈরি হয়নি। এটা পরিষ্কার করার জন্য ধন্যবাদ।
বেলমিন ফার্নান্দেজ

10

সাধারণভাবে, আপনি পারবেন না।

টিসিপির মতো নয়, ইউডিপি সংযোগহীন। আপনি টিসিপি-র সাথে যেমন করতে পারেন তেমন কোনও করণীয় সংযোগ তৈরি করে কোনও বন্দর খোলা রয়েছে তা আপনি সনাক্ত করতে পারবেন না। বরং আপনাকে বন্দরে ডেটা প্রেরণ করতে হবে এবং কী ঘটেছিল তা দেখতে হবে এবং বাস্তব বিশ্বে বাস্তবায়িত ইউডিপির বিবরণ ফলাফলকে ব্যাখ্যা করতে অসুবিধে করে। এমনকি পরিশীলিত প্যাকেট-স্তরের সরঞ্জামগুলি nmapকোনও প্রদত্ত ইউডিপি বন্দর শোনার প্রোগ্রাম রয়েছে কিনা তা নির্দিষ্ট করে বলতে পারে না। nmapইউডিপি বন্দরগুলি তিনটি গ্রুপে শ্রেণিবদ্ধ করে:

  1. অবশ্যই খোলা। পোর্টে একটি প্যাকেট প্রেরণ গন্তব্য মেশিনের একটি ডেটা প্রতিক্রিয়া এনেছে।
  2. অবশ্যই বন্ধ। বন্দরে প্যাকেট প্রেরণে গন্তব্য মেশিন থেকে একটি "আইসিএমপি গন্তব্য অপ্রচলযোগ্য" বার্তা প্রেরণ করা হয়েছে।
  3. হয় খোলা বা ফিল্টারড। বন্দরে প্যাকেট প্রেরণে কোনও প্রতিক্রিয়া নেই। সম্ভবত একটি ফায়ারওয়াল রয়েছে যা প্যাকেটগুলি ফেলেছে; সম্ভবত একটি প্রোগ্রাম শোনার আছে এবং nmapকীভাবে প্রতিক্রিয়া পাবেন তা সন্ধান করতে পারেননি; সম্ভবত ব্যবহারকারীটি দুর্ভাগ্যজনক হয়েছে এবং সমস্ত প্যাকেট ট্রানজিটে হারিয়ে গেছে।

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