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

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

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

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

যদি আমি অন্য পোর্ট ব্যবহার করি (8000 ডিফল্ট), ওয়েব সার্ভার জরিমানা চালায়.

যদি আমি দৌড়াই wget localhost:8000 কমান্ড লাইন থেকে, এটি ফিরে আসে 404 Not Found.

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

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

lsof -i :8000

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

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

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

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

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

যে সাহায্য করে আশা করি.

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

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

sudo netstat -peanut

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

sudo netstat -peanut | grep ":8000 "

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

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

$ lsof -i :8000COMMAND  PID  USER   FD   TYPE   DEVICE SIZE/OFF NODE NAMEsquid3  1289 proxy   15u  IPv6 14810490      0t0  TCP *:8000 (LISTEN)$ ps -fp 1289UID        PID  PPID  C STIME TTY          TIME CMDproxy     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 :4242COMMAND  PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAMEjava    3075 root   86u  IPv4    12019      0t0  TCP *:4242 (LISTEN)$ ps -fp 3075UID        PID  PPID  C STIME TTY          TIME CMDroot      3075     1 15 May24 ?        3-16:07:25 /usr/local/crashplan/jre/bin/java -Dfile.encoding=UTF-8 -Dapp=CrashPlanService -DappBaseName=CrashPl

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

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

ss -nlp | grep 8000

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

man socklist

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

sudo socklist

type  port      inode     uid    pid   fd  nametcp     53      28749       0   1721    5  dnsmasqtcp    631      29190       0   2433   11  cupsdtcp  42376      82230    1000   1345   84  firefoxtcp  49048      71686    1000   1345   67  firefoxtcp  41248      81672    1000   1345  119  firefoxtcp  54676      84558    1000   1345   73  firefoxudp  56107      66258       0   3268   20  dhclientudp  40804      17857     107    679   14  avahi-daemonudp     53      28748       0   1721    4  dnsmasqudp     68      67427       0   3268    6  dhclientudp    631      19692       0    765    8  cups-browsedudp   5353      17855     107    679   12  avahi-daemon

কমিউনিটি নিম্ন বিন্দু দরুন, আমি এখানে মন্তব্য করতে পারবেন না. ছাড়া sudo সমস্ত কমান্ড উপরে আপনি প্রক্রিয়া আইডি / প্রোগ্রাম নাম প্রদান করবে না.

সুতরাং, আপনার নিম্নলিখিত জিনিসগুলি টাইপ করা দরকার:

sudo lsof -i :8000

অথবা

sudo netstat -lntup

আপনি এই কমান্ডের বিশদটি এর মাধ্যমে পরীক্ষা করতে পারেন man, help অথবা আমার প্রিয় সাহায্যকারী

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

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

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

sudo apt-get install nmap

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

1উৎস:garron.me

এখানে কমান্ড মনে রাখা একটি সহজ

ss -townlup Netid               State                 Recv-Q                Send-Q                                    Local Address:Port                               Peer Address:Porticmp6               UNCONN                0                     0                                                *%eth0:58                                            *:*udp                 UNCONN                0                     0                                         127.0.0.53%lo:53                                      0.0.0.0:*udp                 UNCONN                0                     0                                     172.31.26.71%eth0:68                                      0.0.0.0:*tcp                 LISTEN                0                     128                                             0.0.0.0:22                                      0.0.0.0:*tcp                 LISTEN                0                     128                                             0.0.0.0:443                                     0.0.0.0:*tcp                 LISTEN                0                     128                                       127.0.0.53%lo:53                                      0.0.0.0:*tcp                 LISTEN                0                     128                                                [::]:22                                         [::]:*tcp                 LISTEN                0                     128                                                [::]:443                                        [::]:*tcp                 LISTEN                0                     100                                                   *:9090                                          *:*                    users:(("java",pid=13008,fd=16))tcp                 LISTEN                0                     100                                                   *:8080                                          *:*                    users:(("java",pid=11556,fd=12))