دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
ویندوز
  • Folder icon closed Folder open iconویندوز سرور چیست و چه کاربردی دارد؟
  • Folder icon closed Folder open iconتفاوت Windows Server با Windows معمولی
  • Folder icon closed Folder open iconآشنایی با Server Manager در Windows Server
  • Folder icon closed Folder open iconFeature در Windows Server چیست؟ آشنایی با قابلیت‌ های تکمیلی ویندوز سرور
  • Folder icon closed Folder open iconآشنایی با Windows Admin Center؛ مدیریت ویندوز سرور از طریق مرورگر
  • Folder icon closed Folder open iconآشنایی با PowerShell در Windows Server؛ معرفی دستورات و کاربردها
  • Folder icon closed Folder open iconآموزش تنظیم و تغییر رمز عبور Administrator در Windows Server
  • Folder icon closed Folder open iconآموزش تنظیم Hostname در Windows Server
  • Folder icon closed Folder open iconآموزش تنظیم DNS در کارت شبکه Windows Server
  • Folder icon closed Folder open iconتنظیم Gateway در Windows Server
  • Folder icon closed Folder open iconآموزش تنظیم تاریخ و ساعت در Windows Server
  • Folder icon closed Folder open iconآموزش فعال‌سازی Remote Desktop در Windows Server
  • Folder icon closed Folder open iconآموزش تغییر پورت RDP در Windows Server
  • Folder icon closed Folder open iconبررسی وضعیت Device Manager در Windows Server
  • Folder icon closed Folder open iconآموزش نصب آپدیت‌های Windows Server
  • Folder icon closed Folder open iconآموزش تنظیم Windows Update در Windows Server
  • Folder icon closed Folder open iconغیرفعال کردن Automatic Update در شرایط خاص
  • Folder icon closed Folder open iconساخت Restore Point در Windows Server
  • Folder icon closed Folder open iconایجاد کاربر جدید در Windows Server
  • Folder icon closed Folder open iconافزودن کاربر به گروه Administrators
  • Folder icon closed Folder open iconچک‌لیست تنظیمات اولیه Windows Server
  • Folder icon closed Folder open iconآموزش تست استرس سرور ویندوز
  • Folder icon closed Folder open iconآموزش نصب iis
  • Folder icon closed Folder open iconآموزش نصب dns
  • Folder icon closed Folder open iconآموزش عیب‌یابی پر شدن ناگهانی فضای دیسک در ویندوز سرور
  • Folder icon closed Folder open iconپیدا کردن پردازش‌های مصرف‌کننده CPU
  • Folder icon closed Folder open iconتست SMTP در ویندوز به سمت مقصد
  • Folder icon closed Folder open iconآموزش ساخت رکورد های dns در ویندوز
  • Folder icon closed Folder open iconآموزش ساخت Website جدید در IIS
  • Folder icon closed Folder open iconآموزش بررسی IIS Logs برای عیب‌یابی سایت
  • Folder icon closed Folder open iconعیب‌یابی خطای 503 Service Unavailable در IIS
  • Folder icon closed Folder open iconعیب‌یابی خطای 403 Forbidden در IIS
  • Folder icon closed Folder open iconعیب‌یابی خطای 404 Not Found در IIS
  • Folder icon closed Folder open iconآموزش نصب و فعال‌سازی URL Rewrite در IIS
  • Folder icon closed Folder open iconآموزش راه‌اندازی Reverse Proxy در IIS با ARR
  • Folder icon closed Folder open iconآموزش تنظیم Binding در IIS
  • Folder icon closed Folder open iconآموزش تنظیم چند Domain روی یک IIS Server
  • Folder icon closed Folder open iconآموزش Redirect کردن HTTP به HTTPS در IIS
  • Folder icon closed Folder open iconآموزش تنظیم Application Pool در IIS
  • Folder icon closed Folder open iconعیب‌یابی خطای HTTP Error 500 در IIS
  • Folder icon closed Folder open iconآموزش بررسی System Log در Windows Server
  • Folder icon closed Folder open iconآموزش بررسی Application Log در Windows Server
  • Folder icon closed Folder open iconآموزش بررسی Security Log در Windows Server
  • Folder icon closed Folder open iconآموزش پیدا کردن Loginهای ناموفق در Windows Server
  • Folder icon closed Folder open iconآموزش پیدا کردن Process مرتبط با یک پورت با PowerShell
  • Folder icon closed Folder open iconآموزش بررسی Connectionهای فعال و Remote IPها با PowerShell
  • Folder icon closed Folder open iconآموزش دانلود فایل از اینترنت با PowerShell
  • Folder icon closed Folder open iconچرا در Windows Server فضای دیسک آزاد نمی‌شود؟ آموزش کامل عیب‌یابی فضای Disk
  • Folder icon closed Folder open iconآموزش نصب SQL Server 2025 در Windows Server
  • Folder icon closed Folder open iconآموزش مدیریت Windows Firewall با PowerShell
  • Folder icon closed Folder open iconآموزش مدیریت Application Poolهای IIS با PowerShell
ویندوز

آموزش بررسی Connectionهای فعال و Remote IPها با PowerShell

آموزش بررسی Connectionهای فعال و Remote IPها با PowerShell

مقدمه

در زمان عیب‌یابی شبکه یا بررسی امنیت یک Windows Server، یکی از مهم‌ترین کارها مشاهده Connectionهای فعال و شناسایی IPهایی است که سرور با آن‌ها ارتباط دارد.

در PowerShell می‌توان با استفاده از دستور Get-NetTCPConnection اطلاعات دقیقی درباره اتصال‌های TCP دریافت کرد؛ از جمله:

  • Local IP
  • Local Port
  • Remote IP
  • Remote Port
  • وضعیت Connection
  • Process ID مربوط به اتصال

این اطلاعات برای بررسی مشکلات شبکه، شناسایی Connectionهای غیرعادی، پیدا کردن Processهای متصل به اینترنت و بررسی ارتباط سرویس‌های مختلف سرور بسیار کاربردی هستند.

در این مقاله، روش بررسی Connectionهای فعال و Remote IPها در Windows Server را با PowerShell و مثال‌های عملی بررسی می‌کنیم.


پیش‌نیازها

  • دسترسی به Windows Server
  • دسترسی به PowerShell
  • دسترسی Administrator برای بررسی کامل‌تر Processها و Connectionها
  • آشنایی اولیه با IP و Port

اجرای PowerShell با دسترسی Administrator

برای بعضی از بررسی‌های شبکه بهتر است PowerShell را با دسترسی Administrator اجرا کنید.

در منوی Start عبارت زیر را جستجو کنید:

PowerShell

سپس:

Run as administrator

را انتخاب کنید.


دستور اصلی Get-NetTCPConnection

دستور اصلی برای مشاهده Connectionهای TCP در PowerShell عبارت است از:

Get-NetTCPConnection

این دستور Connectionهای TCP سیستم را به همراه اطلاعاتی مانند آدرس Local و Remote، پورت‌ها، State و PID نمایش می‌دهد.

نمونه خروجی:

LocalAddress   LocalPort RemoteAddress   RemotePort State       OwningProcess
------------   --------- -------------   ---------- -----       -------------
192.168.1.10   49722     142.250.184.14  443        Established 4320
0.0.0.0        3389      0.0.0.0         0          Listen      1200
192.168.1.10   49740     104.18.32.47    443        Established 3856

معنی ستون‌های Get-NetTCPConnection

مهم‌ترین ستون‌های خروجی عبارت‌اند از:

ستونتوضیح
LocalAddressIP سرور
LocalPortپورت سمت سرور
RemoteAddressIP مقصد یا سیستم Remote
RemotePortپورت مقصد
Stateوضعیت Connection
OwningProcessPID پردازشی که Connection را ایجاد کرده است

مشاهده Connectionهای فعال

برای مشاهده فقط Connectionهایی که در حال حاضر برقرار هستند:

Get-NetTCPConnection -State Established

وضعیت:

Established

به این معنی است که TCP Connection بین سرور و مقصد برقرار شده است.


نمایش فقط اطلاعات مهم Connectionها

برای ساده‌تر شدن خروجی می‌توانید فقط ستون‌های موردنیاز را نمایش دهید:

Get-NetTCPConnection -State Established |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess

نمونه:

LocalAddress   LocalPort RemoteAddress   RemotePort OwningProcess
------------   --------- -------------   ---------- -------------
192.168.1.10   50214     104.18.32.47    443        4216
192.168.1.10   50218     20.190.155.132  443        2152

مشاهده Remote IPهای متصل به سرور

اگر فقط می‌خواهید IPهای Remote را مشاهده کنید:

Get-NetTCPConnection -State Established |
Select-Object RemoteAddress

این دستور تمام Remote IPهای مربوط به Connectionهای فعال را نمایش می‌دهد.


نمایش Remote IPهای بدون تکرار

ممکن است یک IP چند Connection مختلف با سرور داشته باشد.

برای نمایش IPهای یکتا:

Get-NetTCPConnection -State Established |
Select-Object -ExpandProperty RemoteAddress |
Sort-Object -Unique

نمونه:

20.190.155.132
104.18.32.47
142.250.184.14

شمارش Connectionها برای هر Remote IP

برای اینکه ببینید هر Remote IP چند Connection با سرور دارد:

Get-NetTCPConnection -State Established |
Group-Object RemoteAddress |
Sort-Object Count -Descending |
Select-Object Count,Name

نمونه:

Count Name
----- ----
   25 104.18.32.47
   12 20.190.155.132
    4 142.250.184.14

این دستور برای شناسایی IPهایی که تعداد زیادی Connection با سرور ایجاد کرده‌اند بسیار کاربردی است.


نمایش 10 IP با بیشترین Connection

برای مشاهده Remote IPهایی که بیشترین Connection را دارند:

Get-NetTCPConnection -State Established |
Group-Object RemoteAddress |
Sort-Object Count -Descending |
Select-Object -First 10 Count,Name

این دستور می‌تواند در بررسی Traffic غیرعادی یا Connectionهای زیاد مفید باشد.

تعداد زیاد Connection به‌تنهایی به معنی حمله یا فعالیت مخرب نیست. ابتدا باید سرویس، Process و نوع ارتباط بررسی شود.


بررسی Connection به یک IP مشخص

فرض کنید می‌خواهید بررسی کنید آیا سرور با IP زیر ارتباط دارد یا خیر:

8.8.8.8

دستور:

Get-NetTCPConnection -RemoteAddress 8.8.8.8

اگر Connection وجود داشته باشد، اطلاعات آن نمایش داده می‌شود.


بررسی Connectionهای یک Remote Port مشخص

برای مثال برای مشاهده Connectionهایی که مقصد آن‌ها HTTPS یعنی پورت 443 است:

Get-NetTCPConnection -RemotePort 443

برای مشاهده فقط Connectionهای فعال:

Get-NetTCPConnection -State Established -RemotePort 443

بررسی Connectionهای HTTP

برای پورت HTTP یعنی پورت 80:

Get-NetTCPConnection -RemotePort 80

بررسی Connectionهای HTTPS

Get-NetTCPConnection -RemotePort 443

بررسی Connectionهای RDP

پورت پیش‌فرض Remote Desktop برابر است با:

3389

برای بررسی Connectionهای مربوط به RDP:

Get-NetTCPConnection -LocalPort 3389

برای مشاهده فقط Connectionهای برقرارشده:

Get-NetTCPConnection -LocalPort 3389 -State Established

این دستور می‌تواند Remote IP سیستم‌هایی را که از طریق RDP به سرور متصل هستند نمایش دهد.


مشاهده IP کاربران متصل به RDP

یکی از روش‌های سریع:

Get-NetTCPConnection -LocalPort 3389 -State Established |
Select-Object LocalAddress,RemoteAddress,RemotePort,State

نمونه:

LocalAddress   RemoteAddress    RemotePort State
------------   -------------    ---------- -----
192.168.1.10   185.10.20.30     52641      Established

در این مثال:

185.10.20.30

IP سیستمی است که Connection مربوط به RDP را با سرور برقرار کرده است.

در محیط‌هایی که RDP روی پورت دیگری تنظیم شده است، باید به‌جای 3389 از پورت واقعی RDP استفاده کنید.


مشاهده Connectionهای یک Local Port

برای مثال اگر یک Web Server روی پورت 443 داشته باشید:

Get-NetTCPConnection -LocalPort 443

برای فقط Connectionهای فعال:

Get-NetTCPConnection -LocalPort 443 -State Established

مشاهده پورت‌های Listening

برای مشاهده پورت‌هایی که روی سرور در حال Listen هستند:

Get-NetTCPConnection -State Listen

نمونه:

LocalAddress LocalPort State  OwningProcess
------------ --------- -----  -------------
0.0.0.0      3389      Listen 1200
0.0.0.0      80        Listen 4320
0.0.0.0      443       Listen 4320

وجود:

0.0.0.0

در LocalAddress معمولاً به این معنی است که سرویس روی تمام Interfaceهای IPv4 مربوطه Listen می‌کند.


مرتب کردن پورت‌های Listening

برای مشاهده مرتب‌تر پورت‌ها:

Get-NetTCPConnection -State Listen |
Sort-Object LocalPort |
Select-Object LocalAddress,LocalPort,OwningProcess

پیدا کردن Process مربوط به یک Connection

یکی از مهم‌ترین ستون‌ها:

OwningProcess

است.

این مقدار همان PID پردازشی است که Connection را در اختیار دارد.

فرض کنید PID برابر است با:

4320

برای مشاهده Process:

Get-Process -Id 4320

نمونه خروجی:

Handles  NPM(K)  PM(K)   WS(K)  CPU(s)   Id  ProcessName
-------  ------  -----   -----  ------   --  -----------
650      45      85000   95000  120.45  4320 chrome

در این حالت مشخص می‌شود Connection متعلق به Process با نام:

chrome

است.


مشاهده Connectionهای یک Process مشخص

ابتدا PID نرم‌افزار را پیدا کنید.

برای مثال:

Get-Process

فرض کنید PID برابر:

4320

باشد.

سپس:

Get-NetTCPConnection -OwningProcess 4320

تمام TCP Connectionهای مربوط به این Process نمایش داده خواهند شد.


پیدا کردن Connectionهای یک Process با نام

برای مثال می‌خواهیم Connectionهای Process مربوط به IIS Worker Process یعنی:

w3wp

را بررسی کنیم.

ابتدا:

Get-Process w3wp

PID را مشاهده کنید.

سپس:

Get-NetTCPConnection -OwningProcess 4320

البته ممکن است چند Process با نام w3wp وجود داشته باشند که هرکدام PID جداگانه دارند.


نمایش Process Name در کنار Remote IP

برای بررسی دقیق‌تر می‌توان اطلاعات Connection و Process را در یک خروجی ترکیب کرد:

Get-NetTCPConnection -State Established | ForEach-Object {
    $process = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue

    [PSCustomObject]@{
        LocalAddress  = $_.LocalAddress
        LocalPort     = $_.LocalPort
        RemoteAddress = $_.RemoteAddress
        RemotePort    = $_.RemotePort
        PID           = $_.OwningProcess
        ProcessName   = $process.ProcessName
    }
}

این دستور خروجی بسیار کاربردی تولید می‌کند:

LocalAddress LocalPort RemoteAddress  RemotePort PID  ProcessName
------------ --------- -------------  ---------- ---  -----------
192.168.1.10 50214     104.18.32.47   443        4216 chrome
192.168.1.10 50218     20.190.155.132 443        2152 svchost

به این ترتیب علاوه بر Remote IP، نرم‌افزاری که Connection را ایجاد کرده است نیز مشخص می‌شود.


مرتب کردن Connectionها بر اساس Remote IP

Get-NetTCPConnection -State Established |
Sort-Object RemoteAddress |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess

مرتب کردن Connectionها بر اساس Remote Port

Get-NetTCPConnection -State Established |
Sort-Object RemotePort |
Select-Object RemoteAddress,RemotePort,OwningProcess

مشاهده Connectionهای IPv4

برای حذف IPv6 و مشاهده فقط Connectionهای IPv4 می‌توان خروجی را فیلتر کرد:

Get-NetTCPConnection -State Established |
Where-Object { $_.RemoteAddress -match '^\d{1,3}(\.\d{1,3}){3}$' }

حذف Connectionهای Loopback از خروجی

Connectionهای داخلی سیستم ممکن است آدرس:

127.0.0.1

داشته باشند.

برای حذف آن‌ها:

Get-NetTCPConnection -State Established |
Where-Object { $_.RemoteAddress -ne "127.0.0.1" }

نمایش فقط Connectionهای اینترنتی

برای یک بررسی سریع می‌توانید Loopback و آدرس‌های نامشخص را حذف کنید:

Get-NetTCPConnection -State Established |
Where-Object {
    $_.RemoteAddress -ne "127.0.0.1" -and
    $_.RemoteAddress -ne "::1"
} |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess

توجه داشته باشید که این دستور همچنان ممکن است Connectionهای مربوط به Private Network را نمایش دهد.


بررسی یک Remote IP مشکوک

فرض کنید IP زیر در Connectionها مشاهده شده است:

203.0.113.10

ابتدا Connectionهای آن را بررسی کنید:

Get-NetTCPConnection -RemoteAddress 203.0.113.10

PID را از ستون:

OwningProcess

بردارید.

سپس:

Get-Process -Id 4320

را اجرا کنید.

با این کار مشخص می‌شود کدام Process با آن Remote IP ارتباط برقرار کرده است.


بررسی زمان ایجاد Connection

Get-NetTCPConnection می‌تواند زمان ایجاد Connection را نیز در اختیار شما قرار دهد.

برای نمایش آن:

Get-NetTCPConnection -State Established |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,CreationTime

این ویژگی برای بررسی Connectionهای جدید یا ارتباطات طولانی‌مدت مفید است.


مشاهده جدیدترین Connectionها

Get-NetTCPConnection -State Established |
Sort-Object CreationTime -Descending |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,CreationTime

مشاهده Connectionهای قدیمی‌تر

Get-NetTCPConnection -State Established |
Sort-Object CreationTime |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,CreationTime

وضعیت‌های مختلف TCP Connection

TCP Connection می‌تواند Stateهای مختلفی داشته باشد.

از مهم‌ترین آن‌ها:

Stateتوضیح
Listenسرویس منتظر Connection است
EstablishedConnection برقرار است
SynSentدرخواست ایجاد Connection ارسال شده
SynReceivedدرخواست Connection دریافت شده
CloseWaitسمت مقابل Connection را بسته است
TimeWaitConnection بسته شده و در انتظار پایان Timeout است
FinWait1فرآیند بستن Connection شروع شده است
FinWait2منتظر بسته شدن Connection از طرف مقابل است

بررسی Connectionهای TIME_WAIT

Get-NetTCPConnection -State TimeWait

تعداد زیاد TIME_WAIT الزاماً نشان‌دهنده مشکل نیست و در سرورهایی که تعداد زیادی Connection کوتاه‌مدت دارند می‌تواند طبیعی باشد.

برای شمارش آن‌ها:

(Get-NetTCPConnection -State TimeWait).Count

بررسی Connectionهای CLOSE_WAIT

Get-NetTCPConnection -State CloseWait

تعداد غیرعادی Connectionهای CLOSE_WAIT ممکن است نیازمند بررسی Application یا Service مربوطه باشد.

برای شمارش:

(Get-NetTCPConnection -State CloseWait).Count

شمارش Connectionهای فعال

برای مشاهده تعداد کل Connectionهای Established:

(Get-NetTCPConnection -State Established).Count

مثلاً:

146

یعنی در لحظه اجرای دستور 146 TCP Connection در وضعیت Established وجود داشته است.


شمارش Connectionها بر اساس State

برای مشاهده تعداد Connectionها در هر وضعیت:

Get-NetTCPConnection |
Group-Object State |
Sort-Object Count -Descending |
Select-Object Count,Name

نمونه:

Count Name
----- ----
  180 Established
  120 TimeWait
   25 Listen
    3 CloseWait

بررسی UDP Connectionها

UDP برخلاف TCP مفهوم Established Connection مشابه TCP ندارد.

برای مشاهده UDP Endpointهای سرور می‌توانید از دستور زیر استفاده کنید:

Get-NetUDPEndpoint

برای نمایش اطلاعات مهم:

Get-NetUDPEndpoint |
Select-Object LocalAddress,LocalPort,OwningProcess

مشاهده UDP روی یک پورت مشخص

برای مثال DNS روی UDP Port 53:

Get-NetUDPEndpoint -LocalPort 53

یا برای بررسی یک Process مشخص:

Get-NetUDPEndpoint -OwningProcess 1234

استفاده از netstat در کنار PowerShell

روش قدیمی‌تر مشاهده Connectionها استفاده از:

netstat -ano

است.

پارامترها:

پارامترکاربرد
-aنمایش Connectionها و Listening Portها
-nنمایش IP و Port به‌صورت عددی
-oنمایش PID

نمونه:

TCP    192.168.1.10:50214    104.18.32.47:443    ESTABLISHED    4216

مشاهده فقط Connectionهای Established با netstat

netstat -ano | findstr ESTABLISHED

بررسی یک IP با netstat

برای مثال:

netstat -ano | findstr "104.18.32.47"

بررسی یک پورت با netstat

مثلاً پورت 443:

netstat -ano | findstr ":443"

تفاوت Get-NetTCPConnection و netstat

ویژگیGet-NetTCPConnectionnetstat
مشاهده TCP Connection✅✅
نمایش Remote IP✅✅
نمایش Remote Port✅✅
نمایش State✅✅
نمایش PID✅✅
خروجی Object در PowerShell✅❌
فیلتر کردن پیشرفته✅محدود
استفاده در PowerShell Scriptبسیار مناسبمحدود
Group و Sort کردن اطلاعات✅نیازمند پردازش متن
روش مدرن Windows✅ابزار قدیمی‌تر

برای اسکریپت‌نویسی و تحلیل Connectionها معمولاً Get-NetTCPConnection گزینه مناسب‌تری است.


پیدا کردن نام Process از PID با tasklist

علاوه بر PowerShell می‌توانید از:

tasklist

استفاده کنید.

برای PID مشخص:

tasklist /FI "PID eq 4320"

اما در PowerShell روش مناسب‌تر:

Get-Process -Id 4320

است.


بررسی Connection مشکوک به‌صورت مرحله‌به‌مرحله

فرض کنید قصد دارید Connectionهای ناشناس سرور را بررسی کنید.

ابتدا:

Get-NetTCPConnection -State Established |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess

Remote IP موردنظر را پیدا کنید.

سپس PID را بررسی کنید:

Get-Process -Id 4320

بعد Connectionهای همان Process را مشاهده کنید:

Get-NetTCPConnection -OwningProcess 4320

در نهایت می‌توانید اطلاعات کامل Process را مشاهده کنید:

Get-Process -Id 4320 | Format-List *

این روش به شما کمک می‌کند مشخص کنید یک Connection توسط چه Processی ایجاد شده است.


Export کردن Connectionها به CSV

برای ذخیره Connectionهای فعال:

Get-NetTCPConnection -State Established |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess |
Export-Csv C:\connections.csv -NoTypeInformation

فایل زیر ایجاد می‌شود:

C:\connections.csv

این فایل را می‌توانید با Excel یا ابزارهای تحلیل داده بررسی کنید.


تهیه Snapshot از Connectionهای سرور

برای ثبت وضعیت فعلی شبکه:

Get-NetTCPConnection |
Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,State,OwningProcess,CreationTime |
Export-Csv C:\tcp-connections.csv -NoTypeInformation

این روش هنگام عیب‌یابی یا بررسی Incidentهای امنیتی کاربردی است.


مشاهده Help دستور

برای مشاهده راهنمای PowerShell:

Get-Help Get-NetTCPConnection

راهنمای کامل‌تر:

Get-Help Get-NetTCPConnection -Full

برای مشاهده مثال‌ها:

Get-Help Get-NetTCPConnection -Examples

مهم‌ترین پارامترهای Get-NetTCPConnection

پارامترتوضیح
-Stateفیلتر بر اساس وضعیت Connection
-LocalAddressفیلتر بر اساس Local IP
-LocalPortفیلتر بر اساس Local Port
-RemoteAddressفیلتر بر اساس Remote IP
-RemotePortفیلتر بر اساس Remote Port
-OwningProcessفیلتر بر اساس PID
-CreationTimeفیلتر یا بررسی زمان ایجاد Connection

سناریوی عملی؛ پیدا کردن ارتباطات خارجی یک سرور

فرض کنید روی یک Windows Server قصد دارید بدانید چه IPهایی در حال حاضر با سرور ارتباط TCP دارند.

ابتدا:

Get-NetTCPConnection -State Established

سپس Remote IPها را بدون تکرار استخراج کنید:

Get-NetTCPConnection -State Established |
Select-Object -ExpandProperty RemoteAddress |
Sort-Object -Unique

حالا IPهایی که بیشترین Connection دارند مشاهده کنید:

Get-NetTCPConnection -State Established |
Group-Object RemoteAddress |
Sort-Object Count -Descending |
Select-Object Count,Name

برای IP موردنظر:

Get-NetTCPConnection -RemoteAddress 203.0.113.10

PID را پیدا کنید و سپس:

Get-Process -Id 4320

را اجرا کنید.

به این ترتیب می‌توانید مسیر زیر را طی کنید:

Remote IP
    ↓
Connection
    ↓
Port
    ↓
PID
    ↓
Process

و مشخص کنید هر ارتباط شبکه توسط کدام برنامه یا سرویس ایجاد شده است.


خطاهای رایج

No matching MSFT_NetTCPConnection objects found

این پیام معمولاً زمانی دیده می‌شود که Connection مطابق Filter موردنظر وجود نداشته باشد.

برای مثال:

Get-NetTCPConnection -RemoteAddress 8.8.8.8

در صورتی که هیچ Connection فعالی با این IP وجود نداشته باشد، نتیجه‌ای نمایش داده نمی‌شود یا PowerShell اعلام می‌کند مورد مطابقی پیدا نشده است.


Cannot find a process with the process identifier

ممکن است پس از مشاهده PID و قبل از اجرای Get-Process، Process بسته شده باشد.

مثلاً:

Get-Process -Id 4320

دیگر Process را پیدا نکند.

Connectionها و Processها ممکن است در چند میلی‌ثانیه ایجاد یا بسته شوند.


تعداد بسیار زیاد TIME_WAIT

در Web Serverها و Application Serverهایی که Connectionهای کوتاه زیادی دارند، وجود تعداد زیادی TIME_WAIT می‌تواند طبیعی باشد.

برای بررسی:

(Get-NetTCPConnection -State TimeWait).Count

وجود تعداد بالا باید در کنار Traffic، نوع Application و مصرف Resource بررسی شود.


RemoteAddress برابر 0.0.0.0 است

اگر State برابر:

Listen

باشد، این آدرس Remote Client نیست.

مثلاً:

0.0.0.0:3389

معمولاً نشان می‌دهد سرویس روی Interfaceهای IPv4 مربوطه منتظر Connection است.


RemoteAddress برابر :: است

علامت:

::

معمولاً مربوط به IPv6 است و در حالت Listen می‌تواند نشان دهد سرویس روی آدرس‌های IPv6 منتظر Connection است.


بهترین روش‌ها

  • PowerShell را برای بررسی کامل‌تر با Administrator اجرا کنید.
  • برای مشاهده Connectionهای واقعی از -State Established استفاده کنید.
  • Remote IP را همراه با PID و Process بررسی کنید.
  • تعداد زیاد Connection از یک IP را به‌تنهایی حمله تلقی نکنید.
  • قبل از Stop کردن یک Process، کاربرد آن را بررسی کنید.
  • Connectionهای مربوط به Windows Update، Backup، Monitoring و Antivirus را در نظر بگیرید.
  • برای Incidentهای امنیتی از Connectionها CSV تهیه کنید.
  • علاوه بر Remote IP، Remote Port را نیز بررسی کنید.
  • Get-NetTCPConnection را در کنار Get-Process استفاده کنید.
  • برای UDP از Get-NetUDPEndpoint استفاده کنید.

اشتباهات رایج

  • تصور اینکه هر Remote IP ناشناس مخرب است.
  • اشتباه گرفتن Local Port و Remote Port
  • بررسی نکردن Process مربوط به Connection
  • Block کردن IP قبل از شناسایی سرویس
  • تصور اینکه 0.0.0.0 یک Remote IP واقعی است.
  • استفاده از netstat بدون پارامتر -o و از دست دادن PID
  • بررسی فقط Connectionهای TCP و فراموش کردن UDP
  • Kill کردن Processهای سیستمی بدون بررسی
  • تفسیر تعداد بالای TIME_WAIT به‌عنوان حمله
  • بررسی Connectionها فقط در یک لحظه و نتیجه‌گیری قطعی از Snapshot

چک‌لیست

پس از مطالعه این مقاله باید بتوانید:

  • Connectionهای TCP سرور را مشاهده کنید.
  • Connectionهای Established را پیدا کنید.
  • Remote IPها را استخراج کنید.
  • Remote Portها را بررسی کنید.
  • Connectionهای یک IP خاص را پیدا کنید.
  • تعداد Connectionهای هر Remote IP را محاسبه کنید.
  • Listening Portهای Windows Server را مشاهده کنید.
  • PID مربوط به Connection را پیدا کنید.
  • Process مربوط به PID را شناسایی کنید.
  • Connectionهای RDP را بررسی کنید.
  • UDP Endpointهای سرور را مشاهده کنید.
  • Connectionها را به CSV Export کنید.
  • Connectionهای مشکوک را مرحله‌به‌مرحله تحلیل کنید.

مقالات مرتبط

  • آموزش کامل دستور netstat در Windows Server
  • آموزش کامل Test-NetConnection در PowerShell
  • آموزش کامل دستور tracert در Windows Server
  • آموزش کامل دستور ping در Windows Server
  • آموزش بررسی پورت‌های باز در Windows Server
  • آموزش Windows Defender Firewall با PowerShell
  • آموزش بررسی Processها با PowerShell
  • آموزش بررسی DNS با nslookup
  • آموزش بررسی Routing Table در Windows Server
  • آموزش عیب‌یابی قطعی شبکه در Windows Server
  • آموزش Wireshark در Windows Server
  • آموزش TCPView برای مشاهده Connectionهای شبکه

مطالعات بیشتر و منابع رسمی

برای مطالعه مستندات رسمی PowerShell و دستورات شبکه Windows Server می‌توانید از منابع زیر استفاده کنید:

  • Microsoft Learn – Get-NetTCPConnection
  • Microsoft Learn – Get-NetUDPEndpoint
  • Microsoft Learn – Get-Process

برای مشاهده مستندات مستقیماً داخل PowerShell نیز می‌توانید از دستورات زیر استفاده کنید:

Get-Help Get-NetTCPConnection -Full
Get-Help Get-NetUDPEndpoint -Full
Get-Help Get-Process -Full

جمع‌بندی

دستور Get-NetTCPConnection یکی از کاربردی‌ترین ابزارهای PowerShell برای بررسی وضعیت شبکه در Windows Server است. با استفاده از این دستور می‌توانید Connectionهای فعال، Local و Remote IPها، پورت‌ها، وضعیت TCP و PID مربوط به هر Connection را مشاهده کنید.

ترکیب Get-NetTCPConnection با Get-Process امکان شناسایی Process ایجادکننده هر ارتباط را فراهم می‌کند و در عیب‌یابی مشکلات شبکه و بررسی ارتباطات غیرعادی سرور بسیار مفید است.

در یک بررسی عملی، بهترین مسیر این است که ابتدا Remote IP و Port را شناسایی کرده، سپس PID را استخراج کنید و در نهایت Process مربوط به آن را بررسی کنید. به این ترتیب می‌توانید مشخص کنید هر ارتباط شبکه از کدام سرویس یا نرم‌افزار روی Windows Server ایجاد شده است.

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش بررسی Connectionهای فعال و Remote IPها با PowerShell

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

سپتامبر 2026
شیدسچپج
 1234
567891011
12131415161718
19202122232425
2627282930 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام