আমি বর্তমানে সমস্ত পোর্টের তালিকা তৈরি করতে চাইছি যেখানে একটি পিআইডি শুনছে।
কোনও প্রক্রিয়া সম্পর্কে আমি এই জাতীয় ডেটা পেতে কীভাবে সুপারিশ করব?
আমি বর্তমানে সমস্ত পোর্টের তালিকা তৈরি করতে চাইছি যেখানে একটি পিআইডি শুনছে।
কোনও প্রক্রিয়া সম্পর্কে আমি এই জাতীয় ডেটা পেতে কীভাবে সুপারিশ করব?
উত্তর:
আপনি ss
iproute2 প্যাকেজটি (যা এর অনুরূপ netstat
) থেকে ব্যবহার করতে পারেন :
ss -l -p -n | grep "pid=1234,"
বা (পুরানো iproute2 সংস্করণের জন্য):
ss -l -p -n | grep ",1234,"
প্রোগ্রামের পিআইডি দিয়ে 1234 প্রতিস্থাপন করুন।
ss -nlp | cat
, এটি মোটামুটিভাবে, শোনার প্রক্রিয়াগুলি (-l), তাদের পোর্ট নম্বর (-n), এবং তাদের প্রক্রিয়া সম্পর্কিত তথ্য (-পি) দেখান, এবং আমার শেলের সাথে আউটপুট ফিট করার চেষ্টা করবেন না | cat
( বা কম বা যাই হোক না কেন)।
আমি iproute2
সরঞ্জামগুলি ব্যবহার করার উপায় সম্পর্কে অবগত নই । তবে কাজের হিসাবে, আপনি এটি ব্যবহার করে দেখতে পারেন।
lsof -Pan -p PID -i
আপনি যে তথ্যটি সন্ধান করছেন তা আপনাকে দেওয়া উচিত।
আউটপুট
lsof -Pan -p 27808 -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 27808 apache 5u IPv6 112811294 0t0 TCP *:80 (LISTEN)
httpd 27808 apache 7u IPv6 112811298 0t0 TCP *:8443 (LISTEN)
httpd 27808 apache 9u IPv6 112811303 0t0 TCP *:443 (LISTEN)
আমি থেকে এই কমান্ড পেয়েছিলাম এখানে যেহেতু আমি নোটবুক নিচে উল্লেখ করা তাদের সব আছে কিন্তু সঠিক লিংক নিশ্চিত করুন। তবে আপনি সেখান থেকেও পরীক্ষা করে দেখতে পারেন।
আপনি netstat
প্রতিটি শোনার প্রক্রিয়াটির পিড বের করার জন্য এটি ব্যবহার করতে পারেন ।
নেটস্যাট - প্রিন্ট নেটওয়ার্ক সংযোগ, রাউটিং টেবিল, ইন্টারফেসের পরিসংখ্যান, মাস্ক্রেড সংযোগ এবং মাল্টিকাস্ট সদস্যতা
-এ, - সমস্ত শোনা এবং অ-শ্রবণ উভয়ই দেখান (টিসিপি-র এর অর্থ এটি প্রতিষ্ঠিত সংযোগ) kets --Interfaces বিকল্পের সাহায্যে ইন্টারফেসগুলি চিহ্নিত করুন যা চিহ্নিত করা হয়নি
--numeric, -n প্রতীকী হোস্ট, বন্দর বা ব্যবহারকারীর নাম নির্ধারণের পরিবর্তে সংখ্যার ঠিকানাগুলি দেখান।
-p, - প্রোগ্রাম প্রতিটি সকেটের অন্তর্ভুক্ত প্রোগ্রামটির পিআইডি এবং নাম প্রদর্শন করুন।
এখানে একটি উদাহরণ:
# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1507/rpcbind
tcp 0 0 0.0.0.0:51188 0.0.0.0:* LISTEN 1651/rpc.statd
tcp 0 0 0.0.0.0:1013 0.0.0.0:* LISTEN 1680/ypbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1975/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1763/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2081/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 2119/mongod
tcp 0 48 172.16.33.73:22 172.16.127.110:51850 ESTABLISHED 25473/sshd
tcp 0 0 172.16.33.73:22 172.16.127.110:51214 ESTABLISHED 24699/sshd
tcp 0 0 :::111 :::* LISTEN 1507/rpcbind
tcp 0 0 :::9200 :::* LISTEN 1994/java
tcp 0 0 :::9300 :::* LISTEN 1994/java
tcp 0 0 :::22 :::* LISTEN 1975/sshd
tcp 0 0 ::1:631 :::* LISTEN 1763/cupsd
tcp 0 0 ::1:25 :::* LISTEN 2081/master
tcp 0 0 :::59162 :::* LISTEN 1651/rpc.statd
netstat
iproute2 সরঞ্জামগুলি দ্বারা অবহেলা করা হয়েছে এবং আমি এড়াতে চাইছি।
@ জোফেলের উত্তরটি আপনাকে ব্যবহার করার উপযুক্ত সরঞ্জামটি দেখায় ss
, এখানে আইপ্রাউট 2-এ অন্যান্য নেটওয়ার্কিং সরঞ্জামগুলির প্রতিস্থাপন রয়েছে।
অব্রাহিত কমান্ড এবং তাদের iproute2 সমতুল্যতা নিম্নরূপ:
deprecated replacement(s)
========== ==============
- arp ip n (ip neighbor)
- ifconfig ip a (ip addr), ip link, ip -s (ip -stats)
- iptunnel ip tunnel
- iwconfig iw
- nameif ip link, ifrename
- netstat ss, ip route (for netstat-r), ip -s link (for netstat -i),
ip maddr (for netstat-g)
- route ip r (ip route)
মূল তালিকাটি এখানে উইকিপিডিয়ায় রয়েছে: http://en.wikedia.org/wiki/Iproute2 ।
lsof
আপনি পিআইডি না জানার জন্য আরেকটি পদ্ধতি , তবে প্রোগ্রামটির নাম:
lsof -Pa -p $(pgrep [programName]) -i
lsof
উবুন্টু 16.04-এ 4.89 নিয়ে কাজ করে না
pgrep <program name>
তারপরে উপরের কমান্ডের জন্য আপনার প্রয়োজনীয় পিআইডি চয়ন করুন। $(pgrep [programName])
পিআইডি #
ss
নেটলিঙ্ক সকেট ব্যতীত অদ্ভুত পর্যায়ে কোনও পিআইডিতে ফিল্টারিং নেই।