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




প্রোটকল কি (12)

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


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

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 পরিষেবা নামগুলির পরিবর্তে কাঁচা পোর্ট নম্বরগুলি প্রদর্শনের জন্য।

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


সর্বশেষ MacOS সংস্করণে আপনি এই কমান্ড ব্যবহার করতে পারেন:

lsof -nP -i4TCP:$PORT | grep LISTEN

যদি মনে রাখা কঠিন মনে হয় তবে আপনাকে অবশ্যই একটি bash ফাংশন তৈরি করতে হবে এবং এটির মতো বন্ধুত্বপূর্ণ নামের সাথে এটি রপ্তানি করতে হবে

vi ~/.bash_profile

এবং তারপর ঐ ফাইলটিতে নিম্নলিখিত লাইন যোগ করুন এবং সংরক্ষণ করুন।

function listening_on() {
    lsof -nP -i4TCP:"$1" | grep LISTEN
}

এখন আপনি আপনার টার্মিনালে listening_on 80 টাইপ করতে পারেন এবং পোর্ট 80 কোন প্রক্রিয়াটি শোনার কথা তা দেখতে পারেন।


এই আমি কি প্রয়োজন।

ps -eaf | grep `lsof -t -i:$PORT`

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

lsof -i 4 -a

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

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


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 - শুধুমাত্র লস্টেন মোড, অর্থাৎ সার্ভারে পোর্টের জন্য তথ্য দিন


ওএস এক্স এ আপনি নেটড্যাটের জন্য -v বিকল্পটি যুক্ত পড দিতে ব্যবহার করতে পারেন।

টাইপ:

netstat -anv | grep [.]PORT

আউটপুট এই মত চেহারা হবে:

tcp46      0      0  *.8080                 *.*                    LISTEN      131072 131072   3105      0

পিআইডি এই ক্ষেত্রে সর্বশেষ কলামের সংখ্যা, 3105


আমি কেবল একটি ছোট স্ক্রিপ্ট তৈরি করেছি যেখানে কেবলমাত্র কারা শুনছে তা নয়, প্রতিষ্ঠিত সংযোগগুলি এবং কোন দেশগুলিতে প্রদর্শন করতে হবে তা দেখতে। 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)

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


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


lsof -n -i | awk '{ print $1,$9; }' | sort -u

এই কি করছে তা প্রদর্শন করে। হোস্টনামগুলি (একটু ধীর) দেখতে -n সরান।


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

netstat -an |grep -i listen

আপনি ব্যবহার করতে পারেন:

sudo lsof -i -n -P | grep TCP

এই Mavericks কাজ করে।


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

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




listen