جدول محتوایی

وضعیت پورت ها در لینوکس

پورت یک موجودیت منطقی است که یک نقطه پایانی ارتباط را نشان می دهد و با یک فرآیند یا سرویس معین در یک سیستم عامل مرتبط است. در مقالات قبلی توضیح دادیم که چگونه لیست تمام پورت های باز در لینوکس را پیدا کنیم (بررسی پورت های باز در لینوکس). همچنین در یک پست جداگانه، نحوه باز کردن پورت های دلخواه در نسخه های مختلف لینوکس را آموزش داده ایم (آموزش باز کردن پورت ها در لینوکس). در این پست میخواهیم وضعیت پورت های در حال استفاده در لینوکس را بررسی کنیم.

 

برای ادامع آموزش به یک سرور مجازی لینوکس (اوبونتو، centOS، دبیان یا …) نیاز دارید که میتوانید آن را از ایرانیکاسرور تهیه کنید.همچنین برای اتصال به آن باید از نرم افزار پوتی کمک بگیرید که آموزش آن را هم قبا برایتان در وبلاگ گذاشته ایم (آموزش اتصال SSH به سرور مجازی با نرم افزار PuTTY).

 

1. استفاده از دستور netstat

دستور netstat (آمار شبکه) برای نمایش اطلاعات مربوط به اتصالات شبکه، جداول مسیریابی، آمار رابط و موارد دیگر استفاده می شود. این دستور در تمام سیستم عامل های یونیکس مانند لینوکس و همچنین در سیستم عامل ویندوز موجود است.

در صورتی که به صورت پیش فرض روی سیستم تان نصب نیست، با توجه به نسخه لینوکس خود از دستورات زیر برای نصب آن استفاده کنید.

$ sudo apt-get install net-tools    [On Debian/Ubuntu & Mint] 
$ sudo dnf install net-tools        [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
$ pacman -S netstat-nat             [On Arch Linux]
$ emerge sys-apps/net-tools         [On Gentoo]
$ sudo dnf install net-tools        [On Fedora]
$ sudo zypper install net-tools     [On openSUSE]

 

پس از نصب، می توانید از آن با دستور grep برای دیدن وضعیت یک پورت خاص در لینوکس به صورت زیر استفاده کنید (پورت را مشخص کنید).

$ netstat -ltnp | grep -w ':80'

بررسی وضعیت پورت

 

در دستور بالا، میتوانیم از فلگ های زیر برای بررسی وضعیت پورت ها استفاده کنیم:

  • l – به netstat می گوید که فقط سوکت هایی که در حال استفاده (گوش دادن) هستند را نشان دهد.
  • t – به آن می گوید که اتصالات tcp را نمایش دهد.
  • n – به آن دستور می دهد تا آدرس های عددی را نشان دهد.
  • p – نمایش شناسه فرآیند در حال اجرا روی پورت و نام فرآیند را نشان میدهد.
  • grep -w – مطابقت رشته دقیق (:80) را نشان می دهد.

نکته: دستور netstat تقریبا منسوخ شده و بجای آن دستور مدرن ss در لینوکس جایگزین شده است.

 

2. استفاده از دستور lsof

دستور lsof (List Open Files) برای فهرست کردن همه فایل‌های باز در یک سیستم لینوکس استفاده می‌شود. برای نصب آن بر روی سیستم خود، با توجه به نسخه لینوکس دستور زیر را تایپ کنید.

$ sudo apt-get install lsof     [On Debian, Ubuntu and Mint]
$ sudo yum install lsof         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/lsof  [On Gentoo Linux]
$ sudo pacman -S lsof           [On Arch Linux]
$ sudo zypper install lsof      [On OpenSUSE]

برای بررسی وضعیت پورت و پیدا کردن فرآینددر حال اجرا در یک پورت خاص، دستور زیر رات تایپ کنید (پورت را مشخص کنید).

$ lsof -i :80

دیدن وضعیت کارکرد پورت

 

3. مشاهده وضعیت پورت با استفاده از دستور Fuser

دستور fuser PID های فرآیندها را با استفاده از فایل ها یا فایل سیستم های مشخص شده در لینوکس نشان می دهد. برای نصب آن میتوانید از دستور یزر استفاه کنید:

$ sudo apt-get install psmisc     [On Debian, Ubuntu and Mint]
$ sudo yum install psmisc         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/psmisc  [On Gentoo Linux]
$ sudo pacman -S psmisc           [On Arch Linux]
$ sudo zypper install psmisc      [On OpenSUSE]

با اجرای دستور زیر (پورت را مشخص کنید) می توانید پردازش/سرویس در حال اجرا را در یک پورت خاص بررسی کنید.

$ fuser 80/tcp

 

سپس نام فرآیند را با استفاده از شماره PID با دستور ps پیدا کنید.

$ ps -p 2053 -o comm=
$ ps -p 2381 -o comm=

دستور fuser

 

امیدوارم در این پست توانسته باشم به شما در نحوه بررسی وضعیت پورت ها در لینوکس کمک کرده باشم. اگر این پست برایتان مفید بود، لطفا ما را به دوستان خود معرفی کنید.

 

نظر شما درباره این پست چه بود ؟

دسته بندی شده در: