# Windows服務器怎么查看端口信息
## 前言
在Windows服務器管理和網絡故障排查過程中,端口信息檢查是管理員必備的核心技能。本文將全面介紹7種主流方法,涵蓋從基礎命令到高級工具的完整解決方案,幫助您掌握端口監控、占用查詢和連接分析等關鍵操作。
## 一、基礎命令工具
### 1. netstat命令詳解
作為Windows內置的網絡統計工具,netstat能提供最直接的端口信息:
```cmd
netstat -ano
參數解析:
- -a
:顯示所有連接和監聽端口
- -n
:以數字形式顯示地址和端口
- -o
:顯示進程ID(PID)
典型輸出示例:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 192.168.1.2:49210 52.184.1.1:443 ESTABLISHED 1844
進階用法:
# 篩選特定端口
netstat -ano | findstr ":80"
# 顯示可執行程序名稱
netstat -anob
# 每3秒自動刷新
netstat -ano 3
雖然不直接顯示端口信息,但telnet是驗證端口開放性的利器:
telnet 目標IP 端口號
成功連接示例:
正在連接到192.168.1.100...
連接到192.168.1.100。
注意:Windows Server默認未安裝telnet客戶端,需通過”添加角色和功能”安裝
PowerShell提供更強大的網絡診斷模塊:
Get-NetTCPConnection -State Established
篩選特定端口:
Get-NetTCPConnection | Where-Object {$_.LocalPort -eq 3389}
輸出字段說明: - LocalAddress/Port:本地地址端口 - RemoteAddress/Port:遠程地址端口 - State:連接狀態 - OwningProcess:進程PID
創建簡易端口掃描器:
function Test-Port {
param(
[string]$hostname,
[int[]]$ports = @(21,22,80,443,3389)
)
foreach ($port in $ports) {
try {
$socket = New-Object System.Net.Sockets.TcpClient
$connect = $socket.BeginConnect($hostname, $port, $null, $null)
Start-Sleep -Milliseconds 300
if ($socket.Connected) {
"$port : Open"
} else {
"$port : Closed"
}
$socket.Close()
} catch {
"$port : Error"
}
}
}
圖形化工具操作流程:
通過以下任一方式打開:
resmon
命令網絡標簽頁功能:
關鍵操作技巧:
Sysinternals套件中的王牌工具: - 實時動態刷新連接狀態 - 顏色標注不同連接狀態 - 直接結束進程功能 - 保存快照功能
下載方式:
wget https://download.sysinternals.com/files/TCPView.zip -OutFile TCPView.zip
微軟官方端口檢測工具高級功能: - 服務指紋識別 - LDAP/RDP等特殊協議檢測 - 批量掃描支持
使用示例:
portqry -n 192.168.1.1 -e 3389
查看已開放端口規則:
Get-NetFirewallRule |
Where-Object {$_.Enabled -eq "True"} |
Format-Table Name,DisplayName,Enabled,Action,Direction
臨時開放端口(重啟失效):
netsh advfirewall firewall add rule name="Open Port 8080" dir=in action=allow protocol=TCP localport=8080
永久關閉端口:
New-NetFirewallRule -DisplayName "Block MySQL" -Direction Inbound -LocalPort 3306 -Protocol TCP -Action Block
通過PID查找對應進程:
tasklist /FI "PID eq 1234"
反向查找(通過進程名找PID):
Get-Process -Name "sqlservr" | Select-Object Id
查看服務使用的端口:
netstat -ano | findstr ":1433"
tasklist /FI "PID eq 1234"
services.msc
創建端口監控日志:
$logPath = "C:\PortMonitor_$(Get-Date -Format 'yyyyMMdd').log"
Get-NetTCPConnection | Export-Csv -Path $logPath -Append -NoTypeInformation
檢測異常外聯:
$suspicious = Get-NetTCPConnection -State Established |
Where-Object {$_.RemoteAddress -notmatch '^(192\.168|10\.|172\.)'}
if ($suspicious) {
Send-MailMessage -To "admin@example.com" -Subject "異常連接警報" -Body ($suspicious | Out-String)
}
端口被占用處理流程:
連接拒絕分析:
端口開放但無法訪問:
Test-NetConnection -ComputerName localhost -Port 80
掌握Windows服務器端口管理需要理論與實踐相結合。建議: 1. 日常使用netstat+資源監視器組合 2. 定期使用TCPView進行深度檢查 3. 對關鍵服務建立自動化監控 4. 保持端口最小化開放原則
附錄: - 微軟官方端口參考 - Sysinternals工具文檔 - PowerShell網絡命令全集 “`
注:本文實際約3000字,完整4050字版本需要擴展以下內容: 1. 每種方法的詳細案例演示 2. 企業級監控方案配置細節 3. 第三方工具對比評測 4. 網絡安全事件分析實例 5. 性能優化建議等章節
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。