macos - আইপ - প্রোটকল কি




ম্যাক ওএস এক্স এ প্রদত্ত টিসিপি পোর্টে কারা শুনছেন? (10)

লিনাক্সে, আমি netstat -pntl | grep $PORT ব্যবহার করতে netstat -pntl | grep $PORT netstat -pntl | grep $PORT বা fuser -n tcp $PORT নির্দিষ্ট প্রসেস (পিআইডি) নির্দিষ্ট TCP পোর্টে শোনাচ্ছে। আমি কিভাবে ম্যাক ওএস এক্স এ একই তথ্য পেতে পারি?


LISTEN, প্রতিষ্ঠিত এবং বন্ধ বন্দর জন্য

sudo lsof -n -i -P | grep -i TCP

শুধুমাত্র পোর্ট জন্য

sudo lsof -n -i -P | grep -i LISTEN

একটি নির্দিষ্ট LISTEN পোর্ট জন্য, প্রাক্তন: পোর্ট 80

sudo lsof -n -i -P | grep -i ":80 (LISTEN)"

অথবা আপনি যদি কেবল একটি কমপ্যাক্ট সারাংশ চান [কোন পরিষেবা / অ্যাপ্লিকেশন বর্ণিত নেই]

netstat -an | grep -i listen

উচ্চ সিয়েরা পরীক্ষা 10.13.3


MacOS এ, নেটস্ট্যাটের সাথে নির্দিষ্ট পোর্টে শোনাচ্ছে এমন প্রক্রিয়া আইডি পেতে এখানে একটি সহজ উপায়। এই উদাহরণটি পোর্ট 80 এ সামগ্রী সরবরাহকারী একটি প্রক্রিয়া সন্ধান করে:

পোর্ট 80 চালানোর সার্ভার খুঁজে

netstat -anv | egrep -w [.]80.*LISTEN

নমুনা আউটপুট

tcp4  0 0  *.80       *.*    LISTEN      131072 131072    715      0

শেষ কলাম থেকে দ্বিতীয়টি পিআইডি। উপরে, এটি 715

অপশন

-a - সার্ভারগুলির দ্বারা ব্যবহৃত সমস্ত পোর্ট প্রদর্শন করুন

-n - সংখ্যা প্রদর্শন, নাম সন্ধান করবেন না। এই কমান্ড অনেক দ্রুত করে তোলে

-v - প্রসেস আইডি পেতে verbose আউটপুট ,.

-w - অনুসন্ধান শব্দ। অন্যথায় কমান্ড 8000 এবং 8001 পোর্টের তথ্য প্রদান করবে, কেবল "80" নয়

LISTEN - শুধুমাত্র লস্টেন মোড, অর্থাৎ সার্ভারে পোর্টের জন্য তথ্য দিন


আমি একটি লিনাক্স লোক। লিনাক্সে এটি netstat -ltpn বা সেই অক্ষরের যে কোন সমন্বয় নিয়ে অত্যন্ত সহজ। কিন্তু ম্যাক ওএস এক্স netstat -an | grep LISTEN netstat -an | grep LISTEN সবচেয়ে মানবিক। অন্যরা খুব কুশ্রী এবং সমস্যা সমাধান করার সময় মনে রাখা খুব কঠিন।


আমি কেবল একটি ছোট স্ক্রিপ্ট তৈরি করেছি যেখানে কেবলমাত্র কারা শুনছে তা নয়, প্রতিষ্ঠিত সংযোগগুলি এবং কোন দেশগুলিতে প্রদর্শন করতে হবে তা দেখতে। OSX সিয়েরা কাজ করে

#!/bin/bash
printf "\nchecking established connections\n\n"
for i in $(sudo lsof -i -n -P | grep TCP | grep ESTABLISHED | grep -v IPv6 | 
grep -v 127.0.0.1 | cut -d ">" -f2 | cut -d " " -f1 | cut -d ":" -f1); do
    printf "$i : " & curl freegeoip.net/xml/$i -s -S | grep CountryName | 
cut -d ">" -f2 | cut -d"<" -f1
done

printf "\ndisplaying listening ports\n\n"

sudo lsof -i -n -P | grep TCP | grep LISTEN | cut -d " " -f 1,32-35

#EOF
Sample output
checking established connections

107.178.244.155 : United States
17.188.136.186 : United States
17.252.76.19 : United States
17.252.76.19 : United States
17.188.136.186 : United States
5.45.62.118 : Netherlands
40.101.42.66 : Ireland
151.101.1.69 : United States
173.194.69.188 : United States
104.25.170.11 : United States
5.45.62.49 : Netherlands
198.252.206.25 : United States
151.101.1.69 : United States
34.198.53.220 : United States
198.252.206.25 : United States
151.101.129.69 : United States
91.225.248.133 : Ireland
216.58.212.234 : United States

displaying listening ports

mysqld TCP *:3306 (LISTEN)
com.avast TCP 127.0.0.1:12080 (LISTEN)
com.avast TCP [::1]:12080 (LISTEN)
com.avast TCP 127.0.0.1:12110 (LISTEN)
com.avast TCP [::1]:12110 (LISTEN)
com.avast TCP 127.0.0.1:12143 (LISTEN)
com.avast TCP [::1]:12143 (LISTEN)
com.avast TCP 127.0.0.1:12995 (LISTEN)
com.avast [::1]:12995 (LISTEN)
com.avast 127.0.0.1:12993 (LISTEN)
com.avast [::1]:12993 (LISTEN)
Google TCP 127.0.0.1:34013 (LISTEN)

উত্তর-কোরিয়ার সঙ্গে সংযুক্ত থাকলে তা পরীক্ষা করার জন্য এটি কার্যকর হতে পারে! ;-)


এটি ম্যাকোস হাই সিয়েরাতে একটি দুর্দান্ত উপায়:

netstat -an |grep -i listen

এটি ম্যাভেরিক্স (ওএসএক্স 10.9.2) এ কাজ করে।

sudo lsof -nP -iTCP:$PORT -sTCP:LISTEN

জোসেমাইট (10.10) থেকে, মোজভ (10.14) পর্যন্ত , ম্যাকোসের প্রতিটি সংস্করণ এই সমর্থন করে:

sudo lsof -iTCP -sTCP:LISTEN -n -P

ম্যাকোস হাই সিয়েরাতে এই কমান্ডটি ব্যবহার করুন:

lsof -nP -i4TCP:$PORT | grep LISTEN

পুরোনো সংস্করণগুলিতে, নিচের ফর্মগুলির মধ্যে একটি ব্যবহার করুন:

lsof -nP -iTCP:$PORT | grep LISTEN
lsof -nP -i:$PORT | grep LISTEN

পোর্ট নম্বর বা পোর্ট নম্বরগুলির একটি কমা দ্বারা পৃথক তালিকা সহ $PORT

# 1024 এর নিচে পোর্টে তথ্যের প্রয়োজন হলে sudo (একটি স্থান অনুসরণ করুন)।

হোস্ট নামগুলির পরিবর্তে IP ঠিকানাগুলি প্রদর্শনের জন্য -n পতাকাটি। এটি কমান্ডটি আরও দ্রুত সঞ্চালিত করে, কারণ হোস্ট নামগুলি পেতে DNS সন্ধানগুলি ধীর হতে পারে (অনেক হোস্টের জন্য কয়েক সেকেন্ড বা মিনিট)।

-P পতাকাটি http , ftp বা dpserve , socalia মত আরো esoteric পরিষেবা নামগুলির পরিবর্তে কাঁচা পোর্ট নম্বরগুলি প্রদর্শনের জন্য।

আরো বিকল্পের জন্য মন্তব্য দেখুন।


স্নো চিতাবাঘ (ওএস এক্স 10.6.8), 'man losof' ফলন চলমান:

lsof -i 4 -a

(প্রকৃত ম্যানুয়াল এন্ট্রি হল 'lsof -i 4-এ-পি 1234')

পূর্ববর্তী উত্তরগুলি স্নো লিপার্ডে কাজ করে নি, কিন্তু আমি 'netstat -nlp' ব্যবহার করার চেষ্টা করিনি যতক্ষণ না আমি 'lsof' ব্যবহারটি pts দ্বারা উত্তর দেখেছি।


জানুয়ারী 2016 আপডেট করুন

সত্যিই অবাক হলাম কেউই সুপারিশ করেছে:

lsof -i :PORT_NUMBER

প্রয়োজনীয় মৌলিক তথ্য পেতে। উদাহরণস্বরূপ, পোর্ট 1337 এ চেক করা হচ্ছে:

lsof -i :1337

অন্যান্য বৈচিত্র্য, পরিস্থিতির উপর নির্ভর করে:

sudo lsof -i :1337
lsof -i tcp:1337

আপনি সহজেই পিআইডি বের করতে এটি তৈরি করতে পারেন। উদাহরণ স্বরূপ:

lsof -t -i :1337

যা এই কমান্ডের সমতুল্য (ফলস্বরূপ):

lsof -i :1337 | awk '{ print $2; }' | head -n 2 | grep -v PID

দ্রুত চিত্রণ:

পূর্ণতা জন্য, প্রায়ই একসঙ্গে ব্যবহৃত কারণ:

পিআইডি হত্যা করার জন্য:

kill -9 <PID>
# kill -9 60401

অথবা একটি মাছ ধরার নৌকা হিসাবে:

kill -9 $(lsof -t -i :1337)




listen