কমান্ডের নেটওয়ার্কিং ক্রিয়াকলাপ কীভাবে চিহ্নিত করা যায়?


14

আমি একটি কমান্ডের নেটওয়ার্কিং ক্রিয়াকলাপটি সনাক্ত করতে চাই, আমি tcpdump চেষ্টা করেছি এবং সাফল্য ছাড়াই স্ট্রেস করেছি।

উদাহরণস্বরূপ, আমি যদি কোনও প্যাকেজ ইনস্টল করছি বা কোনও সাইটে পৌঁছানোর চেষ্টা করে এমন কোনও কমান্ড ব্যবহার করছি, তবে আমি সেই নেটওয়ার্কিং ক্রিয়াকলাপটি দেখতে চাই (এটি যে সাইটে পৌঁছানোর চেষ্টা করে)।

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

এটা করার কোন উপায় আছে?

হালনাগাদ:

আমি আমার নেটওয়ার্ক ইন্টারফেসে যা কিছু ঘটে তা ট্র্যাক করতে চাই না। আমি কেবল কমান্ডটি ট্র্যাক করতে চাই (উদাহরণস্বরূপ #yum ইনস্টল -y vim) নেটওয়ার্কিং ক্রিয়াকলাপ। এটি যে সাইটে পৌঁছানোর চেষ্টা করে।


1
অ্যাপ্লিকেশনটি একটি নেটওয়ার্ক নেমস্পেসে রাখুন, তারপরে tcpdump / wireshark ব্যবহার করুন। যেমন এখানে দেখুন ।
dirkt

উত্তর:


17

সরলতার জন্য নেটস্ট্যাট

netstatপিআইডি বা প্রক্রিয়া নাম ব্যবহার এবং গ্রেপিং:

# netstat -np --inet | grep "thunderbird"
tcp        0      0 192.168.134.142:45348   192.168.138.30:143      ESTABLISHED 16875/thunderbird
tcp        0      0 192.168.134.142:58470   192.168.138.30:443      ESTABLISHED 16875/thunderbird

এবং আপনি watchগতিশীল আপডেটগুলির জন্য ব্যবহার করতে পারেন :

watch 'netstat -np --inet | grep "thunderbird"'

সঙ্গে:

  • -n: প্রতীকী হোস্ট, পোর্ট বা ব্যবহারকারীর নাম নির্ধারণের পরিবর্তে সংখ্যাসূচক ঠিকানাগুলি দেখান
  • -p: প্রতিটি সকেটের অন্তর্ভুক্ত প্রোগ্রামটির পিআইডি এবং নাম প্রদর্শন করুন।
  • --inet: কেবল কাঁচা, ইউডিপি এবং টিসিপি প্রোটোকল সকেট দেখান।

ভার্বোসিটি জন্য স্ট্রেস

আপনি বলেছেন যে আপনি straceসরঞ্জামটি চেষ্টা করে দেখেছেন, তবে আপনি কি বিকল্পটি ব্যবহার করে দেখেছেন trace=network? দ্রষ্টব্য যে আউটপুটটি বেশ ভার্বোজ হতে পারে, তাই আপনার কিছুটা গ্রেপিংয়ের প্রয়োজন হতে পারে। আপনি "sin_addr" এ চেপে শুরু করতে পারেন।

 strace -f -e trace=network <your command> 2>&1 | grep sin_addr

অথবা, ইতিমধ্যে চলমান প্রক্রিয়াটির জন্য, পিআইডি ব্যবহার করুন:

 strace -f -e trace=network -p <PID> 2>&1 | grep sin_addr

+1 netstatযার জন্য আইএমএইচও হ'ল সহজ এবং নেটেস্ট সমাধান।
dr01

@ গহু আমি ডিএনএফ-এর জন্যও একই কাজ করেছি। তবে ভাগ্য নেই আমি dnf ব্যবহার করে কিছু প্যাকেজ ইনস্টল করার চেষ্টা করেছি, তারপরে আমি দেখতে পাচ্ছি যে ডিএনএফ প্রক্রিয়া চলছে (প্রক্রিয়া নাম: শীর্ষ এবং পিএস অক্স কমান্ড অনুসারে ডিএনএফ)। দুঃখের বিষয়, আমি নেটস্প্যাট-এনপি --আইনেট থেকে কোনও আউটপুট পাইনি গ্রেপ "ডিএনএফ"।
বুভনেশ কুমার

স্ট্রেসের জন্য +1। এটা আমার সমস্যা সমাধান করা হয়। আমি আইপি ঠিকানা পেতে সক্ষম করতে পারেন। আপনার উত্তরের জন্য আপনাকে অনেক ধন্যবাদ :) @ গোহু। আমি অনুমান করি যে এটি সমস্ত আইপি ঠিকানা দিচ্ছে যা এটি নেটওয়ার্কের মাধ্যমে পৌঁছেছে (যেমন রাউটার আইপি এবং অন্যান্য আইপি)। আপনি যদি জানেন, কেবল গন্তব্য আইপি ট্র্যাক করা সম্ভব?
বুভনেশ কুমার

আপনি আরও কিছু চেষ্টা করে straceআউটপুট ফিল্টার করতে পারেন , কেবল connectসিস্কল রেখে এবং dnsঅনুরোধগুলি (পোর্ট 53) সরানোর সাথে:| grep connect | grep -v 'sin_port=htons(53)'
গোহু


5

আমি একটি নতুন নেটওয়ার্ক নেমস্পেস তৈরি করব , এটি সত্যিকারের নেটওয়ার্কে ব্রিজ করব এবং তারপরে সেতুটি পর্যবেক্ষণ করব tcpdump


1
উত্তরের জন্য ধন্যবাদ. আপনি যদি আমাকে বলেন তবে এটি দুর্দান্ত হবে :)।
বুভনেশ কুমার

5

sysdig আপনাকে নেটওয়ার্ক ক্রিয়াকলাপের সাথে সীমাবদ্ধ না রেখে কার্নেলের সমস্ত ক্রিয়াকলাপ বা আপনার সিস্টেমে চলছে এমন কয়েকটি কমান্ডের সমস্ত নজরদারি করতে দেয় allows

আউটপুট যেমন বড় হতে পারে, আপনাকে ফিল্টার তৈরি করতে হবে, সর্বাধিক বেসিক ফিল্টারগুলির জন্য ডিফল্ট পৃষ্ঠাটি যথেষ্ট বোধগম্য।

এটির মতো সুবিধাটিও এটি হিসাবে অ্যাপ্লিকেশন র‌্যাপার হিসাবে ব্যবহৃত হয় না straceএবং এটি বেশ শক্তিশালী হতে পারে।

সিসডিগ উদাহরণ থেকে

নেটওয়ার্কিং

নেটওয়ার্ক ব্যান্ডউইথ ব্যবহারের ক্ষেত্রে শীর্ষ প্রক্রিয়াগুলি দেখুন

sysdig -c topprocs_net 

হোস্টের সাথে বিনিময় করা নেটওয়ার্ক ডেটা দেখান 192.168.0.1

বাইনারি হিসাবে:

sysdig -s2000 -X -c echo_fds fd.cip=192.168.0.1   

ASCII হিসাবে:

sysdig -s2000 -A -c echo_fds fd.cip=192.168.0.1 

শীর্ষ স্থানীয় সার্ভার পোর্টগুলি দেখুন:

প্রতিষ্ঠিত সংযোগগুলির ক্ষেত্রে:

sysdig -c fdcount_by fd.sport "evt.type=accept"   

মোট বাইটের ক্ষেত্রে:

sysdig -c fdbytes_by fd.sport 

শীর্ষস্থানীয় ক্লায়েন্টের আইপি দেখুন

প্রতিষ্ঠিত সংযোগের ক্ষেত্রে

sysdig -c fdcount_by fd.cip "evt.type=accept"   

মোট বাইটের ক্ষেত্রে

sysdig -c fdbytes_by fd.cip 

সমস্ত আগত সংযোগগুলি তালিকাবদ্ধ করুন যা অ্যাপাচি দ্বারা পরিবেশন করা হয় না।

sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"

1

কোনও নেটওয়ার্ক ইন্টারফেসের সমস্ত ইনপুট এবং আউটপুট ট্র্যাফিক স্নিগ্ধ করতে আপনি ওয়্যারশার্ক ব্যবহার করতে পারেন। আপনার যদি জিইউআই ছাড়াই বিকল্পের প্রয়োজন হয় তবে আপনি tshark ব্যবহার করতে পারেন।

উভয় বিকল্পের সাহায্যে আপনি সমস্ত নেটওয়ার্ক ট্র্যাফিক দেখতে পারেন এবং পরে প্রতিষ্ঠিত সমস্ত সংযোগ বিশ্লেষণ করতে এটি সংরক্ষণ করতে পারেন।


1
যেমনটি আমি আগেই বলেছি, আমি যদি একাধিক নেটওয়ার্ক সংক্রান্ত সম্পর্কিত কমান্ডগুলি চালনা করি তবে আমি কীভাবে জানতে পারি যে কোন আদেশটি কোন সাইট পাচ্ছে?
বুভানেশ কুমার

এটি আরও সাধারণ উত্তর। আমি ইতিমধ্যে জানি যে আমরা একটি নেটওয়ার্কিং ইন্টারফেসের নেটওয়ার্কিং ক্রিয়াকলাপ ট্র্যাক করতে পারি :)। আমি একটি নির্দিষ্ট কমান্ড নেটওয়ার্ক স্ট্যাটিকস ট্র্যাকিংয়ের সন্ধান করছি।
বুভানেশ কুমার

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