时尚

网站端口查询

时间:2010-12-5 17:23:32  作者:百科   来源:综合  查看:  评论:0
内容摘要:打开命令提示符,敲下 `netstat -ano | findstr :80`,回车。屏幕上跳出一行数字:TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4。那个“4”是PID,

打开命令提示符,网站敲下 `netstat -ano | findstr :80`,端口回车。查询屏幕上跳出一行数字:TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4。网站那个“4”是端口PID,对应的查询是System进程。这说明80端口被系统占用了,网站多半是端口IIS或者某个后台服务在监听。这种情况我遇到过不止一次——刚装完SQL Server,查询80端口就被Report Server抢走了,网站Apache死活起不来。端口

端口查询这件事,查询本质上就是网站搞清楚“谁在哪个门牌号上站着”。一台机器有65535个端口,端口0到1023是查询系统保留的,1024到49151是注册端口,剩下的动态分配。日常开发里打交道最多的就是80、443、3306、6379、8080这几个。但真正出问题的时候,往往是一些你压根没注意过的端口。

Windows下怎么查

最直接的就是 `netstat -ano`。加 `-n` 是不做DNS解析,速度快很多。`-o` 显示PID,这个参数最有用。查到PID之后,开任务管理器,切到“详细信息”标签,找对应PID就知道是哪个程序了。或者用 `tasklist | findstr 1234`,1234换成你查到的PID。

PowerShell更顺手:`Get-NetTCPConnection -LocalPort 8080`。它会直接告诉你哪个进程在监听,连PID和进程名一起返回。我现在的习惯是直接用这个,省得来回切窗口。

还有一个工具叫TCPView,Sysinternals出的,图形界面,实时刷新。端口状态变化看得一清二楚——LISTENING、ESTABLISHED、TIME_WAIT,颜色区分。排查连接泄漏的时候特别好使,你能看到大量TIME_WAIT堆积在某个端口上。

Linux下怎么查

`ss -tlnp` 是现在的主流。`-t` TCP,`-l` 只看监听状态,`-n` 不解析服务名,`-p` 显示进程。输出大概长这样:

LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=892,fd=3))

老一点的系统可能还在用 `netstat -tlnp`,但netstat已经被标记为废弃了,ss更快,信息也更全。`lsof -i :3306` 也好用,不过机器上没装lsof的话就得先apt install。

有个细节:普通用户跑 `ss -p` 看不到其他用户的进程信息,得加sudo。我刚开始用的时候纳闷了半天,明明端口在监听,进程那栏就是空的。

端口查到了,然后呢

查到端口被占用,无非三种处理方式。一是杀掉占用进程,`kill -9 PID` 或者任务管理器结束进程。二是改自己服务的端口,比如把Tomcat的8080改成8081。三是查清楚那个占用端口的服务到底是干嘛的——有时候是病毒,有时候是同事昨天部署的测试服务忘了关。

我印象最深的一次是帮朋友看服务器,6379端口对外开放,还没设密码。Redis裸奔在公网上,里面被塞了挖矿脚本。查端口这件事,不只是解决冲突,更是安全排查的第一步。`ss -tlnp` 跑一遍,看看有没有0.0.0.0的监听,再看看防火墙规则,心里就有数了。

端口查询没什么高深的技术,但它是每个运维和开发人员每天都要用的基本功。命令就那么几条,关键是养成习惯——部署新服务之前先查一下端口占不占,比事后排查省事得多。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap