如何查看服务器端口是否开放:多平台实操方法

如何查看服务器端口是否开放分为本地查看监听端口、远程探测端口连通两类操作,Windows优先使用PowerShell内置Test-NetConnection,Linux/macOS推荐nc命令,本地查询可使用netstat或ss,本地查询仅能确认服务器程序是否监听端口,无法验证外网防火墙、云服务器安全组是否放行,远程探测才能确认外部访问可用性;telnet在新版系统默认未安装,仅适合临时快速测试,UDP端口无法通过telnet和Test-NetConnection直接检测,需要使用nc工具,所有端口探测操作仅可在你拥有管理权限的服务器或网络环境执行,未经授权扫描第三方服务器会违反网络相关管理规范。

服务器端口检测工具对比

工具命令运行位置支持协议额外要求
Test-NetConnectionWindows远程终端TCP系统内置,无需安装
ncLinux、macOS、WindowsTCP、UDP部分系统需要手动安装
netstat/ss服务器本地TCP、UDP仅查看本机监听端口
telnetWindows、LinuxTCP新版系统默认不预装,不推荐长期使用

本地查看服务器监听端口

登录服务器系统,在服务器本机执行命令,查看本机上哪些端口处于监听状态,代表服务程序已经启动并绑定端口。Windows服务器以管理员身份打开命令提示符,执行netstat-ano,-a参数显示全部连接与监听端口,-n不解析域名加速输出,-o显示对应进程PID,你可以结合任务管理器PID定位占用端口的程序。Linux服务器优先使用ss-tuln,相比netstat查询速度更快,输出内容包含监听地址、端口与协议类型,t代表TCP,u代表UDP,l仅筛选监听端口,n以数字形式展示端口不做域名解析。

本地查询的局限很明确。就算本地命令显示端口处于监听状态,外部网络依旧可能访问失败,原因集中在服务器系统防火墙、云厂商安全组策略拦截数据包,这也是本地检测不能替代远程探测的核心原因。

本地监听,不等于外网可达。

Windows远程探测服务器端口

打开PowerShell,输入Test-NetConnection服务器IP-Port端口号,例如Test-NetConnection120.xx.xx.xx-Port22。查看输出中TcpTestSucceeded字段,值为True代表端口开放且网络通路正常;值为False代表连接失败,失败诱因包含服务未启动、防火墙拦截、安全组未放行、网络路由异常。telnet服务器IP端口号也可以完成TCP端口测试,出现黑屏窗口代表端口连通,提示无法打开连接则端口不通,Windows10及以上版本默认不带telnet组件,需要在Windows功能里手动开启。

Linux和macOS远程探测服务器端口

nc是这两个平台的首选探测工具,执行nc-zv服务器IP端口号,参数z代表扫描模式不发送额外数据,v输出详细日志。返回succeeded提示表示端口开放;connectionrefused提示表示目标服务器收到请求,但没有程序监听这个端口;超时提示说明数据包在中途被防火墙或安全组丢弃。探测UDP端口,命令改为nc-zvu服务器IP端口号,UDP属于无连接协议,探测结果存在一定概率出现误判,建议多次复测。

排查端口不通的顺序

  • 登录目标服务器,用ss或netstat确认业务服务正常监听对应端口
  • 检查服务器操作系统防火墙规则,放行对应协议与端口
  • 云服务器登录控制台,核查安全组入站规则是否允许探测源IP访问该端口
  • 在同内网设备远程探测,区分是内网阻断还是外网阻断
  • 切换不同网络环境再次探测,排除本地出口防火墙拦截

云服务器场景中,安全组是高频拦截点,很多情况服务正常监听、系统防火墙放行,外网访问依旧失败,就是安全组没有添加入站放行规则。端口放行修改后,策略生效一般需要数十秒,修改后立刻检测容易得到错误结果,等待片刻再复测可以减少误判。

端口扫描不能用于批量探测陌生IP。批量扫描外部IP会触发运营商、云平台的安全告警,严重时会触发封禁。仅针对自己名下服务器做单端口验证,属于常规运维操作。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于如何查看服务器端口是否开放的文章欢迎访问:百科