命令行查看网络连接状态怎么用?Windows、macOS、Linux 实操指南
电脑网络变慢、命令网页打不开、行查远程连不上服务器时,看网很多人第一反应是络连重启路由器,但真正的接状问题往往藏在"当前有哪些连接、连到哪、态用卡在哪个状态"里。命令图形界面能看的行查信息有限,命令行查看网络连接状态反而更快更全:一条命令就能列出本机所有活动的看网 TCP/UDP 连接、监听端口和对端地址。络连本文按 Windows、接状macOS、态用Linux 三个平台,命令把常用命令、行查参数含义和排查思路讲清楚,看网照着敲即可。
需要先说明:不同系统版本、不同发行版的命令输出字段略有差异,个别参数可能需要管理员权限。涉及具体端口用途或安全判断时,请以本机系统界面、软件官方文档或所在单位的网络管理规定为准,本文只做操作指引,不替代专业结论。
先搞清楚三个概念:连接、监听、状态
不管哪个系统,网络连接信息大体分三类。第一类是"已建立"的连接,表示本机和对端正在通信,比如你正在看的网页、正在同步的网盘。第二类是"监听"(LISTEN),表示某个程序打开了端口等待别人来连,典型如本机的 Web 服务、数据库、远程桌面。第三类是各种中间或异常状态,例如 TIME_WAIT(连接刚关闭、等待回收)、SYN_SENT(发出握手请求但没收到回应,常见于对端不通或被防火墙拦截)。看懂这三类,排查时就能快速区分"是我在连别人"还是"别人在连我"。
另外要区分"连接"和"路由"。连接状态回答的是"谁和谁在通信",路由表回答的是"数据包该往哪走"。网络不通时,先看连接,再看能不能 ping 通,最后才查路由和 DNS,顺序反了容易白忙。
Windows:netstat 与更现代的替代命令
最经典的是 netstat -ano:-a 显示所有连接和监听端口,-n 用数字形式显示地址和端口(不做域名解析,速度快且结果稳定),-o 显示占用该连接对应的进程 PID。拿到 PID 后配合任务管理器"详细信息"标签页就能定位是哪个程序。如果只想看某个端口,可以用 netstat -ano | findstr :8080 过滤,注意 Windows 下过滤命令是 findstr 而不是 grep。
只想看监听端口,用 netstat -an | findstr LISTENING;想定期刷新,可以加间隔参数,例如 netstat -ano 5 表示每 5 秒刷新一次,按 Ctrl+C 退出。较新的 Windows 还提供 Get-NetTCPConnection(PowerShell),输出是结构化对象,可以直接按状态筛选,例如只看处于监听状态的连接,再配合 Get-Process 反查进程名,比 netstat 更好读。
常见失败分支:提示"不是内部或外部命令",通常是路径问题或系统精简;输出里全是 TIME_WAIT 不必惊慌,那是正常回收过程;如果某个端口反复出现大量 SYN_SENT,优先怀疑对端服务没开、地址写错或中间有防火墙拦截。若命令需要更高权限才能看到全部进程信息,请以管理员身份打开终端。
macOS 与 Linux:lsof、ss、netstat 怎么选
macOS 上最顺手的是 lsof -i,列出所有网络文件(即连接)。加参数更精准:lsof -iTCP -sTCP:LISTEN 只看 TCP 监听,lsof -i :5173 只看某个端口,lsof -i -P -n 用数字端口和 IP 显示,避免解析卡顿。macOS 自带的 netstat 也能用,但字段风格和 Linux 不完全一样,看输出时注意表头。
Linux 上推荐 ss,它是 netstat 的现代替代,速度更快。常用组合:ss -tulnp,其中 -t 是 TCP、-u 是 UDP、-l 只看监听、-n 数字显示、-p 显示进程(通常需要 sudo 才能看到别人的进程名)。只想看已建立的连接,用 ss -tn state established。老系统上 netstat -tulnp 依然可用,只是部分新发行版默认不再预装,需要自行安装网络工具包。
这里就是命令行查看网络连接状态的核心价值:ss -tulnp 能在几秒内告诉你"哪些端口被谁占着"。当你启动本地服务报"端口已被占用"时,用它定位 PID,再决定是结束进程还是换端口,比反复重启省事得多。
用输出结果做排查:一份可照做的顺序
排查时建议把输出重定向到文件留档,例如把结果写入文本再对比前后差异,比来回滚动终端可靠。涉及公司内网或生产服务器时,操作前先确认是否有权限,避免误杀进程影响他人。
几个容易踩的坑
一是把端口号当成固定常识。端口是约定,不是定律,很多软件允许自定义,判断用途要看进程名而非只认端口号。二是看到外网地址就紧张。浏览器、更新程序、同步工具都会产生外部连接,判断风险要结合进程来源和实际行为。三是把命令输出当成最终结论。命令行只反映本机视角,对端是否可达、中间链路是否被限速,往往需要结合对端日志或网络管理员的信息。
最后记住一条最小可用组合:Windows 用 netstat -ano,macOS 用 lsof -i -P -n,Linux 用 ss -tulnp。先把这三条敲熟,再按需加过滤条件,你就能在不装任何第三方工具的情况下,把本机网络连接状态看明白。遇到拿不准的端口或异常连接,先记录、再核实,不要急于结束进程。