কোন প্রোগ্রাম কোনও প্রদত্ত বন্দরে শুনছে তা কীভাবে জানবেন?


377

আমি সন্দেহ করি যে কোনও প্রোগ্রাম 8000আমার মেশিনে বন্দরে শুনছে ।

আমি যখন নিম্নলিখিত কমান্ডটি চালনা করি তখন আমি এই ত্রুটিটি পাই:

> python -m SimpleHTTPServer
# Lots of python error
socket.error: [Errno 98] Address already in use

আমি যদি অন্য একটি বন্দর ব্যবহার করি ( 8000ডিফল্ট হয়), ওয়েব সার্ভারটি ঠিকঠাকভাবে চলে।

আমি যদি wget localhost:8000কমান্ড লাইন থেকে চালাই তবে তা ফিরে আসবে 404 Not Found

বন্দরে কী প্রোগ্রাম শুনছে 8000এবং সেখান থেকে সেই প্রোগ্রামটি কনফিগার করা আছে সেগুলি খুঁজে পেতে আমি কী করতে পারি (বা কোন সরঞ্জামগুলি উপলভ্য রয়েছে) ?

উত্তর:


313

আপনার টার্মিনালটি খুলুন এবং এর মতো টাইপ করুন

lsof -i :8000

এই কমান্ডটি আপনাকে সেই বন্দরের দ্বারা পিআইডি-র সাথে ব্যবহৃত অ্যাপ্লিকেশনটি তালিকাভুক্ত করবে। (কোনও ফলাফল যদি না চালিত sudoহয় তবে নির্দিষ্ট প্রক্রিয়ায় আপনার কোনও অনুমতি থাকতে পারে))

উদাহরণস্বরূপ, 8000 ( python3 -m http.server) বন্দরের সাথে :

$ lsof -i :8000
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python3 3269 user    3u  IPv4 1783216      0t0  TCP *:8000 (LISTEN)

এবং পোর্ট 22 (এসএসএইচ):

$ sudo lsof -i :22
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     998 root    3u  IPv4 1442116      0t0  TCP *:ssh (LISTEN)
sshd     998 root    4u  IPv6 1442118      0t0  TCP *:ssh (LISTEN)

আশা করি এইটি কাজ করবে.



2
যোগ করা -s TCP:LISTENফলাফলকে প্রকৃত শ্রোণী সকেট এবং তার প্রক্রিয়াতে সীমাবদ্ধ করে।
ঝেরম্যান

1
আপনি 8000 বন্দর অনুসন্ধান করলে এটি ফিরে আসে PID 1889? ওয়াট
কোডি বাগস্টিন 21

হ্যাঁ, পিআইডি 1889 এর সাথে 8881 পোর্টটি ব্যবহার করে পরিষেবা রয়েছে I আমি কি কিছু অনুভব করছি?
rʒɑdʒɑ

1
@ উদাহরণস্বরূপ 8881 বন্দরটির অনুসন্ধান অনুসন্ধান করুন The পিআইডি কলামে প্রক্রিয়া আইডি রয়েছে এবং NAME কলামে পোর্ট রয়েছে।
ফ্রিক ডি ব্রুইজন

377

কোন পোর্টে কোন প্রক্রিয়া শুনছে তা দেখতে আপনি নেটস্পট ব্যবহার করতে পারেন।

সম্পূর্ণ বিবরণ পেতে আপনি এই আদেশটি ব্যবহার করতে পারেন:

sudo netstat -peanut

8000 বন্দরটিতে কোনটি সঠিকভাবে শুনছে তা যদি আপনার জানতে প্রয়োজন তবে আপনি এটি ব্যবহার করতে পারেন:

sudo netstat -peanut | grep ":8000 "

নেটস্ট্যাট থেকে আড়াল করতে পারে এমন কোনও প্রক্রিয়া নেই।


117
netstat -peanutচেয়ে মনে রাখা সহজ netstat -taupen!
ডগলাস বি স্ট্যাপল

9
ভাল একটা ! - আপনার মন্তব্য প্রতিফলিত করার জন্য উত্তরটি সম্পাদনা করেছেন। ধন্যবাদ.
এন্টোইন রড্রিগেজ

2
সেই বন্দরটি মুক্ত করতে 'ফুজার-কে 8000 / টিসিপি'
জয় মোদি

3
যদি কলাম "পিআইডি / প্রোগ্রামের নাম" এ আপনি কোনও প্রক্রিয়া নামের পরিবর্তে ড্যাশগুলি দেখতে পান তবে আপনি "সুডো" যুক্ত করতে ভুলে গেছেন
v.shashenko

3
সুতরাং এটি চিনাবাদাম
প্রসওয়ান

172

উত্তরটি 33833 দ্বারা ব্যাখ্যা করার জন্য আপনি কিছু খুব বিস্তারিত তথ্য পেতে পারেন, উদাহরণস্বরূপ:

$ lsof -i :8000
COMMAND  PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
squid3  1289 proxy   15u  IPv6 14810490      0t0  TCP *:8000 (LISTEN)

$ ps -fp 1289
UID        PID  PPID  C STIME TTY          TIME CMD
proxy     1289     1  0 09:48 ?        00:00:00 /usr/sbin/squid3 -N -f /etc/squid-deb-proxy/squid-deb-proxy.conf

আমি ঠিক সেখানে দেখতে পাচ্ছি যে স্কুইড প্রক্রিয়া, তবে বাস্তবে আমার squid-deb-proxyএটি বন্দরটি গ্রহণ করছে।

জাভা অ্যাপ্লিকেশনটির আরও একটি ভাল উদাহরণ:

$ lsof -i :4242
COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    3075 root   86u  IPv4    12019      0t0  TCP *:4242 (LISTEN)

$ ps -fp 3075
UID        PID  PPID  C STIME TTY          TIME CMD
root      3075     1 15 May24 ?        3-16:07:25 /usr/local/crashplan/jre/bin/java -Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPl

আপনি lsof(লিস্ট ওপেন ফাইল) এ দেখতে পাচ্ছেন যে এটি জাভা, যা সহায়ক থেকে কম। psপিআইডি দিয়ে কমান্ডটি চালানো আমরা এখনই দেখতে পাচ্ছি এটি ক্র্যাশপ্ল্যান।


9
এক কমান্ডে:lsof -t -i :8000 | xargs ps -fp
ব্রেট ওয়াই

8
আমাকে উপসর্গ করতে হয়েছিল sudo তবে তার পরে এটি আমার পক্ষে কাজ করেছিল। ধন্যবাদ।
ডোয়াইন ক্রুকস

4
দ্রষ্টব্য: sudoআপনি ত্রুটি পাবেন না ছাড়া , আপনি প্রতিক্রিয়া হিসাবে কিছুই পাবেন না।
ফ্র্যাঙ্ক নকে 06

13

প্যাকেজ ssথেকে চেষ্টা করুন iproute2:

ss -nlp | grep 8000

5
ssতার নিজস্ব ফিল্টারিং ক্ষমতা রয়েছে: ss -nlp '( sport = :8000 )'
GnP

6

প্যাকেজ socklistথেকে অন্য উপায় ব্যবহার procinfo:

man socklist

বর্ণনা
socklistএকটি পার্ল স্ক্রিপ্ট যা আপনাকে সমস্ত উন্মুক্ত সকেট, গণনার প্রকার, বন্দর, ইনোড, ইউআইডি, পিড, এফডি এবং এটির সাথে সম্পর্কিত প্রোগ্রামের একটি তালিকা দেয়।

sudo socklist

type  port      inode     uid    pid   fd  name
tcp     53      28749       0   1721    5  dnsmasq
tcp    631      29190       0   2433   11  cupsd
tcp  42376      82230    1000   1345   84  firefox
tcp  49048      71686    1000   1345   67  firefox
tcp  41248      81672    1000   1345  119  firefox
tcp  54676      84558    1000   1345   73  firefox
udp  56107      66258       0   3268   20  dhclient
udp  40804      17857     107    679   14  avahi-daemon
udp     53      28748       0   1721    4  dnsmasq
udp     68      67427       0   3268    6  dhclient
udp    631      19692       0    765    8  cups-browsed
udp   5353      17855     107    679   12  avahi-daemon

2

আপনি এনএমএপ ব্যবহার করতে পারেন।

আপনার পিসিতে কোন বন্দরগুলি খোলা রয়েছে তা জানা সত্যিই গুরুত্বপূর্ণ, এটি কেবল লিনাক্সের জন্যই নয়, অন্যান্য অপারেটিং সিস্টেমগুলির জন্যও লিনাক্সের কাছে অনেকগুলি সরঞ্জাম রয়েছে যা পরীক্ষা করে কোন বন্দরগুলি খোলা রয়েছে, এটি সর্বাধিক সাধারণ এনএম্যাপ যা একটি কমান্ড লাইন সরঞ্জাম, তবে এটির জন্য একটি গ্রাফিকাল ফ্রন্টএন্ড উপস্থিত রয়েছে এবং যদি আপনি সেভাবে পছন্দ করেন। 1

এটি ইনস্টল করতে, টার্মিনাল খোলার জন্য আপনার কীবোর্ডে Ctrl+ Alt+ টিপুন T। এটি খুললে নীচের কমান্ডটি চালান:

sudo apt-get install nmap

এনএমএপ এবং অন্যান্য ইউটিলিটিগুলি সম্পর্কে আরও তথ্যের জন্য, এখানে যান

1 উত্স: গ্যারন.মে


এনএমএপ কেবল আপনাকে বলবে যে একটি বন্দর খোলা আছে, কোন প্রক্রিয়া এটি খোলেনি।
অ্যান্ড্রু বার্নস

1
কোন উত্স [nmap] tries to guess which service is listening on each port, but it can make mistakesসকেটের মালিক তা আবিষ্কার করার জন্য কোনও আসল পদ্ধতি প্রস্তাব দেওয়ার আগেই আমি আপনার উত্সটিতে ক্লিক করেছিলাম read
GnP

@gnp এছাড়াও আপনি কটাক্ষপাত করা করতে পারেন এই
মিচ

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