পোর্টগুলির তালিকা তৈরি করুন একটি প্রক্রিয়া পিআইডি শুনছে (পছন্দমত আইপ্রেট 2 সরঞ্জাম ব্যবহার করছে)?


68

আমি বর্তমানে সমস্ত পোর্টের তালিকা তৈরি করতে চাইছি যেখানে একটি পিআইডি শুনছে।

কোনও প্রক্রিয়া সম্পর্কে আমি এই জাতীয় ডেটা পেতে কীভাবে সুপারিশ করব?


ssনেটলিঙ্ক সকেট ব্যতীত অদ্ভুত পর্যায়ে কোনও পিআইডিতে ফিল্টারিং নেই।
পাইজ

উত্তর:


56

আপনি ssiproute2 প্যাকেজটি (যা এর অনুরূপ netstat) থেকে ব্যবহার করতে পারেন :

ss -l -p -n | grep "pid=1234,"

বা (পুরানো iproute2 সংস্করণের জন্য):

ss -l -p -n | grep ",1234,"

প্রোগ্রামের পিআইডি দিয়ে 1234 প্রতিস্থাপন করুন।


3
রয়েছে -uবা -tUDB বা TCP জন্য শুধুমাত্র। : +1: এবং এগুলি এই ss -tlnpss -tlnp | cat
জাতীয়ভাবে সজ্জিত করা

1
আমি অভ্যাসে প্রবেশ করেছি ss -nlp | cat, এটি মোটামুটিভাবে, শোনার প্রক্রিয়াগুলি (-l), তাদের পোর্ট নম্বর (-n), এবং তাদের প্রক্রিয়া সম্পর্কিত তথ্য (-পি) দেখান, এবং আমার শেলের সাথে আউটপুট ফিট করার চেষ্টা করবেন না | cat( বা কম বা যাই হোক না কেন)।
এটিতে অভ্যস্ত

আমার পক্ষে কাজ করেনি (দেবিয়ান 9 এ)। সেখানে আপনাকে ",
পিড

ইঙ্গিতটির জন্য @ মন্ত্রীর ধন্যবাদ - আমি উত্তরটি মানিয়ে নিয়েছি।
জোফেল

এছাড়াও, এটি কেবল রুট অনুমতি
নিয়েই

56

আমি 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)

আমি থেকে এই কমান্ড পেয়েছিলাম এখানে যেহেতু আমি নোটবুক নিচে উল্লেখ করা তাদের সব আছে কিন্তু সঠিক লিংক নিশ্চিত করুন। তবে আপনি সেখান থেকেও পরীক্ষা করে দেখতে পারেন।


13

আপনি 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

1
আপনাকে ধন্যবাদ যদিও আমি জানানো হয়েছে যে netstatiproute2 সরঞ্জামগুলি দ্বারা অবহেলা করা হয়েছে এবং আমি এড়াতে চাইছি।
থারস্মমনার

12

@ জোফেলের উত্তরটি আপনাকে ব্যবহার করার উপযুক্ত সরঞ্জামটি দেখায় 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

তথ্যসূত্র


1

lsofআপনি পিআইডি না জানার জন্য আরেকটি পদ্ধতি , তবে প্রোগ্রামটির নাম:

lsof -Pa -p $(pgrep [programName]) -i

lsofউবুন্টু 16.04-এ 4.89 নিয়ে কাজ করে না
পালিক

1
প্রোগ্রামটি যদি একাধিক প্রক্রিয়া তৈরি করে থাকে তবে এটি হবে wh সেই ক্ষেত্রে আপনার দেওয়া lsof কমান্ডটি চালানোর সময় আপনাকে নির্দিষ্ট পিআইডি নির্দিষ্ট করতে হবে। pgrep <program name>তারপরে উপরের কমান্ডের জন্য আপনার প্রয়োজনীয় পিআইডি চয়ন করুন। $(pgrep [programName])পিআইডি #
ক্রিপ্টোবয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.