কোনও প্রক্রিয়া কোনও বন্দর খুলেছে কিনা তা জানতে "/ proc" পড়ুন


13

বাহ্যিক কমান্ড ব্যবহার না করে কোনও প্রদত্ত পিআইডি সহ কোনও প্রক্রিয়া একটি পোর্ট খোলে কিনা তা আমার জানতে হবে। আমি অবশ্যই /procফাইল সিস্টেমটি ব্যবহার করব । আমি /proc/$PID/net/tcpউদাহরণস্বরূপ ফাইলটি পড়তে পারি এবং প্রক্রিয়াটি দ্বারা খোলা টিসিপি পোর্টগুলি সম্পর্কে তথ্য পেতে পারি। তবে, বহুবিবাহিত প্রক্রিয়াতে /proc/$PID/task/$TIDডিরেক্টরিতে একটি net/tcpফাইলও থাকবে। আমার প্রশ্নটি হ'ল:

আমার কি সমস্ত থ্রেড net/tcpফাইলের ওপরে যেতে হবে, বা থ্রেড দ্বারা খোলা পোর্টটি প্রক্রিয়া net/tcpফাইলটিতে লেখা হবে?

উত্তর:


23

আমি উদাহরণস্বরূপ / proc / $ পিআইডি / নেট / টিসিপি ফাইলটি পড়তে পারি এবং প্রক্রিয়াটি দ্বারা খোলা টিসিপি পোর্টগুলি সম্পর্কে তথ্য পেতে পারি।

এই ফাইলটি প্রক্রিয়া দ্বারা খোলার টিসিপি পোর্টগুলির একটি তালিকা নয় । এটি বর্তমান নেটওয়ার্ক নেমস্পেসের সমস্ত ওপেন টিসিপি পোর্টের একটি তালিকা এবং একই নেটওয়ার্ক নেমস্পেসে চলমান প্রক্রিয়াগুলির সামগ্রীর অনুরূপ/proc/net/tcp

আপনার প্রক্রিয়া দ্বারা খোলা পোর্টগুলি সন্ধান করার জন্য আপনার কাছ থেকে সকেট বর্ণনাকারীর একটি তালিকা নেওয়া উচিত /proc/<pid>/fdএবং তারপরে সেই inodeক্ষেত্রের সাথে সেই বর্ণনাকারীদের সাথে মেলে /proc/net/tcp


আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ. এবং যদি প্রক্রিয়াটি মাল্টিথ্রেড হয়, তবে আমার fdপ্রতিটি থ্রেডের সমস্ত ডিরেক্টরিতে যাওয়ার দরকার আছে ? অথবা /proc/pid/fdডিরেক্টরিগুলি "উত্তরাধিকারসূত্রে" /proc/pid/task/tid/fdডিরেক্টরিগুলি দেয়?
rmonjo

আমি নিশ্চিত নই, তবে এটি পরীক্ষা করা সহজ জিনিস বলে মনে হচ্ছে।
5815

8
@rmonjo থ্রেডগুলি ফাইলগুলি খুলতে পারে না, কেবলমাত্র প্রক্রিয়াগুলি পারে। fdএকটি থ্রেডের ডিরেক্টরি কেবল fdপ্রক্রিয়াটির ডিরেক্টরি পুনরাবৃত্তি করে ।
গিলস 'অশুভ হওয়া বন্ধ করুন'

0

অনুগ্রহ

cat /proc/$PID/net/tcp

এবং আপনি এই মত আউটপুট পাবেন

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
  0: 00000000:01BB 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 2891985097 1 0000000000000000 100 0 0 10 0

আউটপুটটির দ্বিতীয় কলাম (স্থানীয়_ড্রেস) হেক্সাডেসিমালে পোর্টটি দেখায়। হেক্স কোডকে দশমিকায় রূপান্তর করতে আপনার প্রোগ্রামিং ক্যালকুলেটরটি ব্যবহার করুন।

উদাহরণস্বরূপ, এখানে: পোর্ট: 01BB (হেক্সে) 433 এর সমান (দশমিক ক্ষেত্রে) যা HTTPS ডিফল্ট বন্দর port

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