কোন প্রক্রিয়া একটি নির্দিষ্ট বন্দরে ডেটা প্রেরণ করে তা আমি কীভাবে আবিষ্কার করতে পারি?


21

আমার একটি পরিষেবা আছে, একটি নির্দিষ্ট বন্দর খোলা রেখে।

আমি এটিতে ডেটা পাচ্ছি, যা আমি প্রত্যাশা করি না বা পেতে চাই না এবং আমি এই ডেটার উত্সটি পিন-পয়েন্ট করার চেষ্টা করছি। সুতরাং আমি কীভাবে খুঁজে পাব যে কোন প্রক্রিয়াটি কোনও নির্দিষ্ট বন্দরে ডেটা প্রেরণ করে যা কোনও প্রক্রিয়া শুনছে তার বিপরীতে।

উত্তর:


23

টিসিপির জন্য (যদিও একই পদ্ধতিটি এসসিটিপি 1 বা কোনও সংযোগ-ভিত্তিক পরিবহণ প্রোটোকলের জন্য কাজ করবে ) শ্রোতাদের সন্ধানের জন্য একই:

lsof -nPi tcp:the-port

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

ইউডিপি বা র সকেটগুলির জন্য, এটি আরও জটিল হবে যদিও আমি মনে করি এটি এখানেই যেখানে সিস্টেমট্যাপ বা ডিট্রেস জাতীয় কিছু কার্যকর হতে পারে। সম্ভবত অডিটও করা হবে।


1 যদিও এসসিটিপি সমর্থন (কেবল লিনাক্সে) lsofসংস্করণ 4.86 এ যুক্ত করা হয়েছে, আপনি -iস্পষ্টভাবে এসসিটিপি সকেটগুলির জন্য জিজ্ঞাসা করতে পারবেন না । এখানে lsof -nP | grep -w 'SCTP.*:the-port'পরিবর্তে হিউরিস্টিক হিসাবে ব্যবহার করতে পারেন ।


এটি আমার জন্য এসসিটিপিতে কাজ করছে না।
sudo

1
@ সুডো, সম্পাদনা দেখুন
স্টাফেন চেজেলাস

3

নিম্নলিখিত চেষ্টা করুন:

$sudo ss -tp

বা:

$sudo netstat -A inet -p

লোকালহোস্টের ফলাফল এড়াতে:

$sudo netstat -A inet -p | grep -v localhost

কেবলমাত্র ESTABLISHED সংযোগগুলি তালিকাভুক্ত করতে:

$sudo netstat -A inet -p | grep -v localhost | grep ESTABLISHED

2

সংযোগের ধরণের উপর নির্ভর করে ডেটা প্রেরণের জন্য এটি প্রতিষ্ঠিত করে এমন কোনও পদ্ধতির আপনাকে কোথাও পেয়ে যাবে।

  • tcpdump port 1234এই বন্দরে পাঠানো তথ্য অর্জন করতে ব্যবহার করুন । আপনি অন্য মেশিনে এটি বিশ্লেষণ করতে ওয়্যারশার্কের মতো একটি প্রোগ্রাম ব্যবহার করতে পারেন ( -wবিকল্পটি ব্যবহার করে কোনও ফাইলের কাছে ধরা পড়ে )। বিকল্পভাবে, সরাসরি ওয়্যারশার্ক ব্যবহার করুন।

  • যদি এটি টিসিপি / ইউডিপি সংযোগ স্থাপন করে এবং খোলা রাখে তবে আপনি সংযোগটির netstatদূরবর্তী আইপি খুঁজে পেতে পারেন ।

  • @ স্টেফেনচাজেলাস দ্বারা প্রদত্ত উত্তরের মতো কোনও প্রক্রিয়ার খোলা সকেটগুলি তালিকাবদ্ধ করুন।


1

sockstatস্থানীয় হোস্টে আপনার পরিষেবার সাথে সংযোগ শুরু করার প্রক্রিয়াটি অনুসন্ধান করতে আপনি কমান্ডটি ব্যবহার করতে পারেন ।

DESCRIPTION
     The sockstat command lists open Internet or UNIX domain sockets.

আপনার গন্তব্যের সাথে সমস্ত উত্স সংযোগগুলি কেবল মিলিয়ে নিন। এটি টিসিপি / ইউডিপি / ইউএনআইএক্সসকেটগুলির জন্য সূক্ষ্ম কাজ করে।


0

সোলারিসে, সমস্ত প্রক্রিয়াগুলিতে চলমান পাইফাইলে দেখানো উচিত যে কোন প্রসেসে কোন সংযোগগুলি খোলা রয়েছে। এটির জন্য কিছু যত্নশীল ফাইলের প্রয়োজন হবে সম্ভবত জিগ্রিপ -A,-বি বিকল্পগুলি ব্যবহার করে ...

লিনাক্সে, netstat -anp --inetlsof ইনস্টল না করেও কাজ করবে। ( --inetইউনিক্স ডোমেন সকেটগুলি পেতে ড্রপ করুন )

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