انڈروئد

لینکس میں بندرگاہوں (سننے والے بندرگاہوں) کو سننے کے طریقے کیسے پڑھیں

این کلیپ رو از دست ندهیدØتما ببینید

این کلیپ رو از دست ندهیدØتما ببینید

فہرست کا خانہ:

Anonim

جب نیٹ ورک کنیکٹیویٹی یا ایپلی کیشن کے ساتھ مخصوص مسائل کو حل کرنا سب سے پہلے چیزوں میں سے ایک کو چیک کرنا چاہئے کہ اصل میں آپ کے سسٹم پر کن بندرگاہوں کا استعمال ہورہا ہے اور کون سی ایپلیکیشن کسی خاص پورٹ پر سن رہی ہے۔

اس مضمون میں یہ بتایا گیا ہے کہ کس طرح کی خدمات سننے میں ہیں کہ کس طرح کی بندرگاہوں پر netstat ، ss اور ایل ss او ایف کمانڈز کا lsof ہے۔ ہدایات تمام میکس جیسے لینکس اور یونکس پر مبنی آپریٹنگ سسٹم کے لئے لاگو ہیں۔

سننے والا بندرگاہ کیا ہے؟

نیٹ ورک پورٹ کی شناخت اس کے نمبر ، وابستہ IP ایڈریس ، اور مواصلاتی پروٹوکول کی قسم جیسے ٹی سی پی یا یو ڈی پی سے ہوتی ہے۔

سننے والا بندرگاہ ایک نیٹ ورک پورٹ ہے جس پر ایک ایپلی کیشن یا عمل سنتا ہے ، جو مواصلات کے اختتامی نقطہ کے طور پر کام کرتا ہے۔

ہر سننے والا بندرگاہ فائر وال کے استعمال سے کھلا یا بند (فلٹر) ہوسکتا ہے۔ عام اصطلاحات میں ، ایک کھلا بندرگاہ ایک نیٹ ورک پورٹ ہے جو دور دراز مقامات سے آنے والے پیکٹوں کو قبول کرتا ہے۔

آپ کو ایک ہی IP ایڈریس پر ایک ہی پورٹ پر سننے والی دو خدمات نہیں ہوسکتی ہیں۔

مثال کے طور پر ، اگر آپ اپاچی ویب سرور چلا رہے ہیں جو پورٹ 80 اور 443 پر سنتا ہے اور آپ Nginx انسٹال کرنے کی کوشش کرتے ہیں تو بعد میں شروع ہونے میں ناکام ہوجائے گا کیونکہ HTTP اور HTTPS بندرگاہ پہلے ہی استعمال میں ہے۔

netstat ساتھ سننے والے بندرگاہوں کو چیک کریں

نیٹ سیٹ ایک کمانڈ لائن ٹول ہے جو نیٹ ورک کے رابطوں کے بارے میں معلومات فراہم کرسکتا ہے۔

سارے TCP یا UDP بندرگاہوں کی فہرست کے لئے ، جن پر سنائی دی جارہی ہے ، بشمول بندرگاہوں کا استعمال کرنے والی خدمات اور ساکٹ کی حیثیت درج ذیل کمانڈ کا استعمال کریں:

sudo netstat -tunlp

اس کمانڈ میں استعمال ہونے والے آپشنز کے مندرجہ ذیل معنی ہیں۔

  • -t - ٹی سی پی پورٹس دکھائیں۔ -u - UDP پورٹس دکھائیں۔ -n - میزبان حل کرنے کی بجائے عددی پتے دکھائیں۔ -l - صرف سننے والی بندرگاہیں دکھائیں۔ -p - سننے والوں کے عمل کا PID اور نام دکھائیں۔ یہ معلومات صرف اس صورت میں دکھائی دیتی ہے جب آپ کمانڈ روٹ یا سوڈو صارف کے طور پر چلاتے ہیں۔

آؤٹ پٹ کچھ اس طرح نظر آئے گی:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient

ہمارے معاملے میں اہم کالم یہ ہیں:

  • Proto - ساکٹ کے ذریعہ استعمال ہونے والا پروٹوکول۔ Local Address - IP ایڈریس اور پورٹ نمبر جس پر عمل سنتا ہے۔ PID/Program name - PID اور عمل کا نام۔

sudo netstat -tnlp | grep:22

آؤٹ پٹ سے پتہ چلتا ہے کہ اس مشین پورٹ 22 پر SSH سرور استعمال کرتا ہے:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd

اگر آؤٹ پٹ خالی ہے تو اس کا مطلب ہے کہ بندرگاہ پر کچھ بھی نہیں سن رہا ہے۔

آپ معیار کی بنیاد پر بھی فہرست کو فلٹر کرسکتے ہیں ، مثال کے طور پر ، پی آئی ڈی ، پروٹوکول ، ریاست اور اسی طرح کی۔

netstat متروک ہے اور ss اور ip ساتھ تبدیل کیا گیا ہے ، لیکن پھر بھی یہ نیٹ ورک کنیکشن کی جانچ پڑتال کرنے کے لئے سب سے زیادہ استعمال شدہ کمانڈز میں سے ہے۔

ss ساتھ سننے والے بندرگاہوں کو چیک کریں

ss نیا netstat ۔ اس میں netstat کی کچھ خصوصیات کا فقدان ہے لیکن اس سے زیادہ ٹی سی پی ریاستوں کو بے نقاب کیا گیا ہے اور یہ قدرے تیز ہے۔ کمانڈ کے اختیارات زیادہ تر ایک جیسے ہوتے ہیں لہذا netstat سے ss میں تبدیلی مشکل نہیں ہے۔

تمام سن بندرگاہوں کی فہرست حاصل کرنے کے لئے ss ساتھ آپ ٹائپ کریں گے۔

sudo ss -tunlp

آؤٹ پٹ تقریبا almost ایک جیسی ہے جس کی اطلاع netstat نے دی ہے۔

State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))

lsof ساتھ سننے والے بندرگاہوں کو چیک کریں

lsof ایک طاقتور کمانڈ لائن افادیت ہے جو عمل کے ذریعہ کھولی گئی فائلوں کے بارے میں معلومات فراہم کرتی ہے۔

لینکس میں ، ہر چیز ایک فائل ہوتی ہے۔ آپ ساکٹ کے بارے میں فائل کے طور پر سوچ سکتے ہیں جو نیٹ ورک کو لکھتی ہے۔

lsof قسم کے ساتھ سننے والی TCP بندرگاہوں کی فہرست حاصل کرنے کے لئے:

sudo lsof -nP -iTCP -sTCP:LISTEN

استعمال شدہ اختیارات مندرجہ ذیل ہیں:

  • -n - پورٹ نمبر کو پورٹ کے ناموں میں تبدیل نہ کریں۔ -p - میزبان ناموں کو حل نہ کریں ، عددی پتے دکھائیں۔ -iTCP -sTCP:LISTEN - صرف TCP ریاست کی فہرست کے ساتھ نیٹ ورک کی فائلیں دکھائیں۔

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)

زیادہ تر آؤٹ پٹ کالموں کے نام خود وضاحتی ہیں:

  • COMMAND ، PID ، USER ۔ بندرگاہ سے وابستہ پروگرام چلانے والا نام ، PID اور صارف۔ NAME - پورٹ نمبر

یہ معلوم کرنے کے لئے کہ کسی خاص بندرگاہ پر کیا عمل سنا جا رہا ہے ، مثال کے طور پر ، پورٹ 3306 آپ استعمال کریں گے:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

آؤٹ پٹ شو یہ ظاہر کرتا ہے کہ پورٹ 3306 ایس کیو ایل سرور کے ذریعہ استعمال ہوتا ہے۔

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

مزید معلومات کے لئے lsof man پیج دیکھیں اور اس ٹول کے دوسرے تمام طاقتور آپشنز کے بارے میں پڑھیں۔

نتیجہ اخذ کرنا

ہم نے آپ کو متعدد احکامات دکھائے ہیں جن کی جانچ پڑتال کے ل on آپ استعمال کرسکتے ہیں کہ آپ کے سسٹم میں کن بندرگاہوں کا استعمال ہورہا ہے ، اور یہ معلوم کرنے کے لئے کہ کسی خاص بندرگاہ پر کیا عمل سنتا ہے۔

ٹرمینل