浏览器地址栏里那一串字符,何查比如 https://example.com:8443/login,看网口号冒号后面的页端数字就是端口号。可大多数时候你根本看不到它,何查因为默认端口被藏起来了——HTTP走80,看网口号HTTPS走443,页端浏览器自动帮你补上,何查地址栏就显示个干干净净的看网口号域名。
那要是页端真想知道某个网站用的什么端口呢?最笨也最直接的办法:右键点页面,选“检查”(或者按F12),何查切到Network标签,看网口号刷新一下页面。页端随便点一个请求,何查看Headers里的看网口号Host字段,冒号后头那个数字就是页端真实端口。这招对付那些改了默认端口的内部系统特别好使,比如公司里跑在8080的测试环境,或者路由器管理页面的8443。
要是你压根没打开网页,只想探探某个服务器的端口开没开,那就得换工具了。Windows用户打开命令提示符,敲 telnet example.com 8080,如果屏幕变黑或者显示连接成功,说明端口通着。但Windows默认没装telnet客户端,会报“不是内部或外部命令”。这时候你可以用PowerShell,输入 Test-NetConnection example.com -Port 8080,几秒钟后看TcpTestSucceeded那行是True还是False。Linux和Mac用户更简单,一条 nc -zv example.com 8080 就完事,-z是扫描模式不发送数据,-v是显示详细信息。
还有个野路子,适合懒人。直接拿在线端口扫描工具,输入域名,它会帮你把常见端口全扫一遍。但说实话,这类工具扫不了你内网里的设备,而且有些网站开了防火墙,扫描结果未必准。我遇到过一回,明明本地能访问某个服务的8080端口,在线工具愣是显示关闭,其实就是出口IP被屏蔽了。
最容易被忽略的是,端口号不只在网址里出现。你电脑上跑着的每个服务都占着一个端口,想知道自己机器开了哪些,Windows用 netstat -ano,Mac/Linux用 netstat -tulnp。看LISTENING那一列,端口号和进程ID都在那摆着。配合任务管理器查一下PID对应的程序,你就能发现是不是有什么奇怪的后台服务偷偷监听着某个端口——这事我干过,还真揪出过一个装软件时捆绑进来的流氓进程,监听的是49300这种不常见的端口。
说到底,查看端口号这事儿分三种场景:看网页真实端口用浏览器开发者工具;测远程端口通不通用telnet或nc;查本机开了哪些端口用netstat。记住这三板斧,基本能应付九成情况。剩下那一成,可能得抓包才能搞定了,但那是另一个话题了。