怎么查看访问网站的端口号
作者:热点 来源:焦点 浏览: 【大 中 小】 发布时间:2026-10-17 06:07:18 评论数:
浏览器地址栏里敲个网址,访问回车,网站页面出来了。口号可你知道自己到底连上了对方服务器的访问哪个端口吗?默认情况下,HTTP走80,网站HTTPS走443,口号这事儿大部分人都知道。访问但现实往往没那么干净——有些网站偏偏不用默认端口,网站或者你访问的口号是个反向代理后面的内网服务,端口号早就被改得面目全非。访问
我上个月排查一个线上故障,网站用户反馈某个后台系统偶尔打不开。口号我一看,访问域名后面没带端口,网站心想这不就是口号标准的443吗?结果抓包一看,请求全被转发到了8443。那个运维哥们儿图省事,在Nginx里把listen 8443硬生生绑到了域名上,前端没做任何跳转。你要是只看地址栏,这辈子都发现不了问题。
所以,怎么查?分两种情况。
第一种,对方是你自己的服务器,或者你有登录权限。那简单了,直接上服务器跑一条命令:netstat -tlnp(Linux)或者 netstat -ano(Windows)。这能列出当前所有监听端口和对应进程PID。你看到PID后,再用ps -ef | grep [PID]或者任务管理器反查是哪个程序在监听。比如你看到0.0.0.0:8080被一个Java进程占了,那八成就是Tomcat或者Spring Boot默认端口。但注意,这只是“监听端口”,不一定是用户实际访问的端口——如果前面挂了负载均衡或者防火墙做了端口映射,你得继续查iptables规则或者SLB配置。
第二种,你只有浏览器,没有服务器权限。这时候别急着打开DevTools,先看地址栏。有些网站会显式带上端口号,比如http://example.com:8080/login,这直接暴露了。但大多数情况地址栏是干净的。打开F12开发者工具,切到Network(网络)标签,刷新页面,随便点一个请求(比如文档请求或接口请求)。在Headers(请求头)里找到Host字段,它会显示完整的域名加端口,比如example.com:8443。如果没有端口,那说明走的是默认端口,要么80要么443。
还有一种更隐蔽的情况——WebSocket连接或某些异步请求。它们可能走不同的端口。别只看主文档请求,把Network里的请求类型筛选一下,看看有没有发往其他IP或域名的请求,特别是那些状态码是101(Switching Protocols)的,那多半是WebSocket,端口往往和主站不一样。我之前调试一个在线聊天室,主站是443,但WebSocket居然跑在8082上,前端代码里硬编码的,不抓包根本发现不了。
要是连DevTools都不方便用,那就用命令行工具。Windows下打开cmd,输入ping 域名先拿到IP,然后telnet IP 80试试通不通,换端口再试。Linux/macOS下用nc -zv IP 端口,端口通的话会返回open。这方法有点笨,但适合快速验证某个端口是否开放。不过注意,有些服务器会屏蔽ICMP(ping不通),但TCP端口照样通,这时候ping的结果就没参考价值了。
最后说个野路子。如果你用Chrome,直接在地址栏输入chrome://net-export/,开启日志记录,然后正常访问目标网站,再关闭日志。把生成的JSON文件拖到netlog-viewer.appspot.com这个在线工具里,搜索你访问的域名,能看到完整的TCP连接信息,包括源端口和目标端口。这个方法能看到连接层面的真实端口,比看Host字段更底层,也更准确——有些代理工具会改写Host头,但TCP层的目标端口改不了。
查端口这事儿,说难不难,说简单也容易踩坑。关键别只信地址栏,也别只信一条命令的结果。多层验证,抓包加日志,基本就能定位准确。下次再遇到莫名奇妙的连接超时,先查端口,八成能省下半天排查时间。
