您好,登录后才能下订单哦!
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。