از Netstat برای مشاهده پورت های گوش دادن و PID در ویندوز استفاده کنید

در مقاله ای دیگر، پورت های کامپیوتر و کاربرد آنها را توضیح دادیم(explained computer ports and what they’re used for) . غیر از این، با اطلاعات پورت چه کاری می توانیم انجام دهیم؟ از آنجایی که تمام ترافیک ورودی و خروجی کامپیوتر از طریق پورت ها انجام می شود، می توانیم آنها را بررسی کنیم تا ببینیم چه کاری انجام می دهند. شاید پورت به ترافیک گوش نمی دهد؟ شاید چیزی از پورتی استفاده می کند که نباید باشد؟ 

ما از دستور netstat ویندوز(Windows) برای دیدن پورت های گوش دادن و PID ( شناسه فرآیند(Process ID) ) خود استفاده می کنیم. ما همچنین می خواهیم ببینیم که با این اطلاعات چه کاری می توانیم انجام دهیم.

Netstat چیست؟(What Is Netstat?)

دستور netstat ترکیبی از دو کلمه "network" و "statistics" است. دستور netstat در تمامی نسخه های ویندوز(Windows) از ویندوز XP(Windows XP) تا ویندوز 10(Windows 10) کار می کند. همچنین در سیستم عامل های دیگر (OS) مانند یونیکس(Unix) و لینوکس استفاده می شود، اما ما در اینجا به (Linux)ویندوز(Windows) پایبند خواهیم بود.

Netstat می تواند به ما این موارد را ارائه دهد:

  • نام پروتکلی که پورت استفاده می کند ( TCP یا UDP ).
  • آدرس IP محلی و نام رایانه و شماره پورت مورد استفاده.
  • آدرس IP و شماره پورتی که به آن وصل می‌شویم.
  • وضعیت یک اتصال TCP . برای جزئیات بیشتر در مورد اینکه این حالت ها چیست، بخش پردازش رویداد RFC 793(Event Processing section of RFC 793) را بخوانید .

استفاده از Netstat برای مشاهده درگاه‌های گوش دادن و PID(Using Netstat To See Listening Ports & PID)

  • از کلید ترکیبی Win Key + X استفاده کنید. در منوی باز شده، Command Prompt را انتخاب کنید .

  • (Enter)دستور را وارد کنید
    netstat -a -n -o
    . قبل از پارامترهای netstat یک خط فاصله وجود دارد، نه یک اسلش رو به جلو مانند بسیاری از دستورات دیگر. -a به آن می گوید که همه اتصالات فعال و پورت هایی را که رایانه به آنها گوش می دهد به ما نشان دهد.

    -n به netstat می گوید که آدرس های IP و پورت ها را فقط به صورت اعداد نشان دهد. ما به آن می گوییم که سعی نکنید نام ها را حل کنید. این باعث می شود صفحه نمایش سریعتر و منظم تری داشته باشید. -o به netstat می گوید که PID را شامل شود . بعداً از PID(PID) استفاده خواهیم کرد تا بفهمیم چه فرآیندی از یک پورت خاص استفاده می کند.

  • نتایج را مشاهده(View) کنید و آدرس ها، شماره پورت، وضعیت و PID را یادداشت کنید . فرض کنید می خواهیم بدانیم از پورت 63240 چه چیزی استفاده می کند. توجه داشته باشید که PID آن 8552 است و به آدرس IP 172.217.12.138 در پورت 443 متصل می شود.

چه چیزی از آن پورت استفاده می کند؟(What’s Using That Port?)

  • Task Manager را باز کنید . این کار به راحتی با استفاده از کلیدهای ترکیبی Ctrl + Shift + Esc انجام می شود.

  • روی تب Details کلیک کنید. برای سهولت یافتن این مورد، روی هدر ستون PID کلیک کنید تا (PID )PID ها(PIDs) به صورت عددی مرتب شوند.

  • به PID 8552 بروید و ببینید چه فرآیندی است. در این مورد، googledrivesync.exe است. اما آیا واقعا اینطور است؟ گاهی اوقات ویروس ها می توانند خود را مانند فرآیندهای قانونی جلوه دهند.

  • در یک مرورگر وب، به ipinfo.io بروید(ipinfo.io) . آدرس IP 172.217.12.138 را وارد کنید . همانطور که می بینیم، آدرس IP در گوگل(Google) ثبت شده است . بنابراین این googledrivesync.exe یک مورد قانونی است.

نحوه دریافت نام پورت، PID و فرآیند در PowerShell(How To Get Port, PID, & Process Name In PowerShell)

PowerShell روش جدیدتر مایکروسافت برای استفاده از رابط خط فرمان با ویندوز(Windows) است. ما می گوییم جدیدتر است، اما برای چندین نسخه موجود است. حتی اگر کاربر خانگی(learn PowerShell even if you’re a home user) هستید، باید PowerShell را یاد بگیرید .

اکثر دستورات ویندوز در (Windows)PowerShell نیز کار می کنند ، به علاوه می توانیم آنها را با cmdlet های PowerShell ترکیب کنیم - (PowerShell)command-lets تلفظ شوند. جو در Winteltools.com اسکریپت این روش را فراهم می کند.

  • Notepad را باز کنید و کد زیر را وارد کنید:
$netstat = netstat -aon | Select-String -pattern "(TCP|UDP)"
$processList = Get-Process

foreach ($result in $netstat) {
   $splitArray = $result -split " "
   $procID = $splitArray[$splitArray.length – 1]
   $processName = $processList | Where-Object {$_.id -eq $procID} |    select processname
   $splitArray[$splitArray.length – 1] = $procID + " " +      $processName.processname
   $splitArray -join " "
}

  • فایل را به عنوان get-NetstatProcessName.ps1 ذخیره کنید . حتماً توجه داشته باشید که کجا ذخیره می شود. مهم است که نوع ذخیره به‌عنوان:(Save as type: ) را به All Files (*.*) تغییر دهید یا به‌عنوان get-NetstatProcessName.ps1 txt ذخیره(.txt) می‌شود و برای ما کار نمی‌کند.

  • PowerShell را باز کنید و به مکانی که اسکریپت در آن ذخیره شده است بروید. در این مورد، <pre>cd C:Scripts</pre> است. Enter را بزنید(Enter) تا دستور اجرا شود.

  • اسکریپت را با استفاده از منبع نقطه اجرا کنید تا کار کند. یعنی قبل از نام فایل از ./فرمان خواهد بود
    ./get-NetstatProcessName.ps1< /pre

  • اکنون می‌توانیم تمام اطلاعات سنتی netstat به اضافه نام فرآیند را ببینیم. دیگر نیازی به باز کردن Task Manager نیست.

برو آنها را بگیر(Go Get Them)

ما دو روش برای استفاده از دستور netstat برای دیدن پورت های گوش دادن را پوشش داده ایم. می توان از آن در Command Prompt قدیمی یا در اسکریپت PowerShell استفاده کرد. (PowerShell)با اطلاعاتی که می‌تواند به ما بدهد، بررسی کرده‌ایم که چگونه می‌تواند به ما کمک کند بفهمیم رایانه‌مان چه می‌کند. 

اگر فکر می‌کنید netstat یک ابزار عالی است، به برخی از ابزارهای دیگر TCP/IP ویندوز مانند tracert، ipconfig و nslookup نگاهی بیندازید . یا از Resource Monitor برای مشاهده بهتر وب سایت های پنهان و اتصالات اینترنتی استفاده(use Resource Monitor to get a better look into hidden website and Internet connections) کنید. کارهای زیادی می توانید انجام دهید تا ببینید رایانه شما دقیقاً چه کاری انجام می دهد.

آیا از netstat برای حل مشکل استفاده کرده اید؟ لطفا(Please) به ما بگویید چه کردید. آیا در مورد نحوه استفاده از netstat سؤالی دارید؟ لطفا(Please) در نظرات زیر از ما بپرسید.



About the author

من یک توسعه دهنده وب با تجربه در Firefox و Google Docs هستم. من مدرک مدیریت بازرگانی از دانشگاه فلوریدا دارم. مهارت های من عبارتند از: توسعه وب سایت، سیستم مدیریت محتوا (CMS)، تجزیه و تحلیل داده ها، و طراحی رابط کاربری. من یک مشاور باتجربه هستم که می‌توانم به تیم شما در ساخت وب‌سایت‌ها و اپلیکیشن‌های مؤثر کمک کنم.



Related posts