用cmd查看服务器远程端口,核心命令就一条:netstat -ano,它能直接列出当前服务器所有端口的状态、本地地址和远程连接,远程端口是否开放、是否被占用一眼就能看清。
cmd查看服务器远程端口命令行基础操作
cmd(命令提示符)是Windows系统自带的命令行工具,也是服务器运维中最常用的排查入口,远程端口指的是服务器上对外开放、用于远程连接的端口,最常见的是远程桌面(RDP)的3389端口。
在服务器上按Win+R组合键,输入cmd并回车,即可打开命令提示符窗口,如果需要管理员权限,可以在开始菜单搜索“cmd”,右键选择“以管理员身份运行”,高权限模式下,命令的查询范围更完整,尤其是涉及端口监听和进程PID查看时,管理员权限能避免部分端口信息被隐藏。
打开cmd后,执行以下基础命令:
netstat -ano
这条命令输出内容比较多,每一行代表一条网络连接或监听端口,关键列含义如下:
- Proto:协议类型,如TCP、UDP
- Local Address:本地IP和端口,
0.0.0:3389表示监听本机所有网卡的3389端口 - Foreign Address:远程地址和端口,
168.1.10:51234表示来自该IP的远程连接 - State:连接状态,
LISTENING表示正在监听,ESTABLISHED表示已建立连接 - PID:占用该端口或连接的进程标识符
cmd查看服务器远程端口命令的各类变体
netstat命令的参数很多,实际使用中结合具体需求选择不同参数组合,以下是高频使用场景下的命令变体:
| 命令 | 功能说明 |
|---|---|
netstat -an |
显示所有端口和连接的数值地址,不解析域名,速度快 |
netstat -ano |
在-an基础上增加PID列,便于定位进程 |
netstat -anob |
在-ano基础上显示进程可执行文件路径,部分环境需管理员权限 |
netstat -ano \| findstr 3389 |
筛选和3389端口相关的所有连接和监听记录 |
netstat -ano \| findstr LISTENING |
只显示所有处于监听状态的端口 |
netstat -r |
显示本机路由表,用于排查跨网段远程连接问题 |
当运行netstat -ano后记得看PID列,这一列是后续定位进程的关键,比如某端口被未知程序占用,找到PID后执行:
tasklist | findstr 1234
将1234替换为实际PID,即可看到是哪个进程在占用该端口,如果想终止该进程,执行:
taskkill /PID 1234 /F
行业共识认为,绝大多数远程端口连接异常都是进程占用冲突或防火墙拦截导致,以上三步定位法可以覆盖多数排查场景。
cmd查看服务器远程端口怎么查具体远程连接
除了查看本机正在监听哪些端口外,cmd还能用来查看当前有哪些远程IP正在连接服务器的远程端口,这在排查异地登录、暴力破解、异常会话时非常实用。
执行以下命令,精确筛选到远程桌面端口的全部连接记录:
netstat -ano | findstr 3389
命令会返回两类信息:
- LISTENING状态的行:表示服务器正在3389端口等待远程连接
- ESTABLISHED状态的行:每行代表一个正在进行的远程会话,其中Foreign Address列显示的IP和端口就是对方的位置和端口信息
如果需要批量提取所有远程IP,可以运行:
netstat -ano | findstr ESTABLISHED
然后逐条分析Foreign Address列的数据,对于服务器运维来说,定期查看远程连接记录是安全巡检的基础动作之一,具体如何判断连接是否正常,可以结合以下状态值:
ESTABLISHED:正常建立的远程连接SYN_SENT:正在尝试建立连接,可能网络不通或对方未响应TIME_WAIT:连接已关闭,正在等待系统回收资源CLOSE_WAIT:对方主动关闭连接,本机尚未关闭对应句柄
服务器远程端口是否对外开放的cmd检测方法
很多时候“端口在监听”和“端口能通”是两个概念,服务器上netstat显示3389处于LISTENING,只能说明远程桌面服务在运行,而互联网上能否访问,还取决于防火墙、安全组、端口转发等因素。
用cmd检测远程端口是否真正开放,最直接的方法是telnet命令:
telnet 服务器公网IP 3389
如果端口开放且可访问,cmd窗口会变为空白或显示连接成功提示;如果端口不通,则提示连接失败,需要注意的是,Windows默认未安装telnet客户端,首次使用会提示找不到命令,可以通过以下路径启用:
- 打开“控制面板” -> “程序和功能”
- 点击“启用或关闭Windows功能”
- 勾选“Telnet客户端”,点击确定
如果不想安装telnet,也可以用PowerShell的一行命令完成检测:
Test-NetConnection 服务器公网IP -Port 3389
TcpTestSucceeded字段返回True表示端口可达,False表示不通,业内专家指出,用Test-NetConnection替代telnet是当下的推荐做法,因为后者在不少新版Windows系统中已默认移除。
云服务器远程端口排查的补充场景
如果是云服务器,比如简米云、酷番云、华为云上的Windows实例,远程端口能否通,除了受服务器内部防火墙影响外,还和云平台的安全组规则密切相关,即使cmd里netstat显示3389正在监听,如果安全组没有放行该端口,外部依然连不上。
排查顺序建议如下:
- 先用
netstat -ano | findstr 3389确认服务器内部监听正常 - 再用
ping 服务器公网IP确认网络层通不通 - 再用
telnet 公网IP 3389或Test-NetConnection测试端口层通不通 - 如果内部监听正常但外部不通,登录云平台控制台检查安全组入方向规则是否放行了3389端口
安全组和防火墙的区别在于:安全组在云平台底层生效,防火墙在云服务器操作系统内部生效,两者任何一个拒绝都会导致远程端口不可达。
cmd查看远程桌面端口是否被修改过
部分运维人员出于安全考虑会把远程桌面默认的3389端口改成其他端口,此时如果想确认服务器远程端口具体是哪个,cmd同样能查到。
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
输出结果中的PortNumber值就是当前远程桌面的实际端口,通常以十六进制显示,比如输出0xd3d,转换后就是3389,这条命令在排查“默认远程端口连不上”的问题时非常高效。
执行完端口修改后,记得在防火墙放行新端口,同时删除或保留旧端口依据实际策略决定,修改后服务器重启服务才完全生效。
cmd查看端口占用的其他实用方法
除netstat外,Windows还提供了一些其他端口排查工具。
route print命令:查看全套路由条目,适用于排查跨网段无法远程连接的情况,命令输出中的IPv4路由表记录了本机所有网段的下一跳信息,如果路由项缺失,即便端口开放也无法完成通信。
pathping命令:
pathping 目标IP -p
同样可以用于链路质量检测,但远程端口连通性检查还是以telnet或Test-NetConnection为主。
wmic命令查询端口监听信息:
wmic process where "ProcessId=1234" get ExecutablePath
结合netstat拿到的PID,查看具体进程路径,确认端口是否被非预期程序占用。
常见远程端口一览
不同远程服务使用不同默认端口,cmd查询时先确认目标服务对应端口,能少走弯路:
| 服务类型 | 默认远程端口 |
|---|---|
| 远程桌面(RDP) | 3389 |
| SSH(Secure Shell) | 22 |
| Telnet | 23 |
| VNC | 5900 |
| FTP | 21 |
| Windows远程管理(WinRM) | 5985/5986 |
多数情况下,服务器管理员最关心的就是远程桌面端口即3389,以及SSH连接Linux服务器时使用的22端口,执行netstat时如果看到这些端口处于LISTENING状态,说明对应服务在正常运行。
cmd查看服务器远程端口命令行常见问题
用netstat查不到远程端口监听状态可能是哪些原因?
端口没有监听的原因一般是服务未启动或被其他程序占用,针对远程桌面,可以服务管理器(运行services.msc)中检查Remote Desktop Services服务是否已启动,同时确认系统属性中“允许远程连接到此计算机”选项已勾选。
cmd中netstat看到的Local Address和Foreign Address有什么区别?
Local Address是本机IP和端口,Foreign Address是远程机器的IP和端口,查看远程端口连接时重点看Foreign Address列,即可获取所有正在访问服务器的远端地址信息。
telnet命令提示不是内部或外部命令怎么办?
Windows默认不安装telnet客户端,按前文路径启用Telnet功能后重开cmd窗口即可正常使用,也可以用Test-NetConnection命令替代。
cmd命令和PowerShell命令有什么区别?
cmd是传统命令提示符,netstat、ping、tasklist等常用网络排查命令在两者中通用,PowerShell功能更丰富,支持返回结构化对象,后续可以管道处理结果,但不影响netstat这类基础命令的执行效果。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/774103.html


