مقدمه
ping موفق، DNS درست و TCP قابل اتصال سه نتیجه متفاوتاند. برای رخداد شبکه باید لایه خراب را مشخص کرد؛ release/renew یا reset stack نباید اولین اقدام روی سرور باشد.
مثال عملی
سرور برنامه به files01.corp.example.com روی SMB وصل نمیشود؛ DNS خصوصی و TCP/445 از subnet برنامه به file server بررسی میشود.
پیشنیازها
Windows Server 2022/2025 یا Windows 11، Windows PowerShell 5.1 x64؛ برای cmdletهای Server نقش و ماژول مربوط لازم است.
سختافزار و ظرفیت: میزبان مجاز موجود؛ ابزارهای تشخیصی به سختافزار اضافه نیاز ندارند. برای VM آزمایشگاهی ۲ vCPU، ۴ GiB RAM و ۶۰ GiB دیسک در نظر بگیرید.
نرمافزار و دسترسی: CMD و PowerShell داخلی؛ خواندن وضعیت معمولاً بدون Administrator. route/firewall mutation نیازمند elevation و change مجاز است.
Architecture / Design
Client → DNS → selected route/interface → firewall → TCP listener → SMB authentication → share/NTFS. مرحلهای که fail میشود تعیین میکند تغییر متعلق به کدام تیم است.
Installation / Configuration
ابتدا در CMD شواهد بگیرید؛ دامنه زیر placeholder داخلی است.
ipconfig /all
route print
arp -a
nslookup files01.corp.example.com
tracert -d 10.20.30.20
netstat -ano
در PowerShell آزمون TCP و route انجام دهید. انتظار TcpTestSucceeded: True برای ارتباط TCP؛ این خروجی permission SMB را تأیید نمیکند.
$Target = 'files01.corp.example.com'
Resolve-DnsName $Target -Type A
Test-NetConnection $Target -Port 445 -InformationLevel Detailed
Get-NetIPConfiguration
Get-SmbConnection
برای نگهداری خروجی پوشه یکتا بسازید؛ commandهای خارجی exit code مستقل دارند.
$ReportPath = Join-Path $env:TEMP ('Network-' + (Get-Date -Format 'yyyyMMdd-HHmmss'))
New-Item -ItemType Directory -Path $ReportPath -ErrorAction Stop | Out-Null
ipconfig /all | Out-File (Join-Path $ReportPath 'ipconfig.txt') -Encoding utf8
route print | Out-File (Join-Path $ReportPath 'routes.txt') -Encoding utf8
Test-NetConnection $Target -Port 445 | Export-Clixml (Join-Path $ReportPath 'tcp445.xml')
Flush DNS فقط وقتی stale cache با پاسخ authoritative مقایسه شده باشد انجام شود. سپس همان query و برنامه دوباره آزمایش شود.
Security Hardening
Wi-Fi export با key=clear secret را آشکار میکند و در بسته support استفاده نشود. net use از credential plaintext در command line استفاده نکند؛ Kerberos با hostname و حساب جاری ترجیح دارد. firewall را برای رفع مشکل خاموش نکنید.
Monitoring
Zabbix availability و TCP service را جدا بسنجد. برای SMB latency، reconnect و error log ثبت شود. رویداد DNS و network change با زمان incident همراستا شود؛ خروجی interface حساس فقط در ticket محدود قرار گیرد.
Troubleshooting
DNS timeout ولی IP قابل دسترسی: resolver/53 یا suffix. TCP false با ping true: listener یا firewall/ACL. SMB access denied با TCP true: identity و share/NTFS، نه routing.
Get-NetTCPConnection -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess
$Listener = Get-NetTCPConnection -LocalPort 445 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1
if ($null -ne $Listener) {
Get-Process -Id $Listener.OwningProcess
} else {
Write-Warning 'No TCP/445 listener found on this host'
}
Get-WinEvent -LogName 'Microsoft-Windows-SMBClient/Connectivity' -MaxEvents 20 -ErrorAction SilentlyContinue
بررسی listener روی file server اجرا میشود؛ اگر listener نیست query خالی است و اسکریپت هشدار میدهد. tracert/pathping با hop بیپاسخ بهتنهایی packet loss برنامه را اثبات نمیکنند؛ برخی روترها ICMP را rate limit میکنند.
Backup / Recovery
تشخیص state ندارد؛ route/firewall snapshot قبل تغییر و rollback اختصاصی rule لازم است. ipconfig /release و netsh int ip reset میتوانند نشست مدیریت را قطع کنند؛ فقط با console و برنامه برگشت اجرا شوند. فایل شواهد مطابق retention امن نگهداری شود.
Best Practices
Hostname و IP را جدا تست کنید؛ برای Kerberos، SMB با IP ممکن است رفتار authentication را تغییر دهد. netstat و PID فقط یک snapshotاند و تشخیص قطعی بدافزار نیستند.
نسخههای قدیمی و Compatibility
cmdletهای NetTCPIP روی Windows موجودند؛ PowerShell Core در سایر OS همان moduleها را ندارد. دستورات قدیمی CMD برای تشخیص حفظ شدهاند، اما عملیات mutation بدون preflight از flow جدید حذف شده است.
پرسشهای متداول
آیا ping موفق یعنی SMB سالم است؟
خیر؛ TCP/445، authentication و permission باید جدا بررسی شوند.
آیا باید ابتدا DNS cache را پاک کرد؟
خیر؛ ابتدا cache و پاسخ resolver را ثبت و مقایسه کنید.
منابع رسمی
تاریخ بررسی منابع: 2026-09-30. اعتبارسنجی عملی روی محیط هدف باید پیش از انتشار تغییر زیرساخت انجام شود.