netstat命令使用实例
2013-04-08 20:59 bangerlee 阅读(1127) 评论(1) 编辑 收藏 举报netstat命令用于显示网络相关信息,例如网络连接信息,路由表信息,端口占用情况等,下面介绍netstat的具体用法。
1.显示所有连接信息
-a 选项用于显示全部连接信息:
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:sunrpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 7697 private/error
注意这里所说的“连接信息”包括基于tcp/udp的连接,也包括 Unix domain socket 信息,既包含已建立连接信息,也包括监听状态的端口信息。 -at 选项用于仅显示tcp相关连接,-au 选项用于仅显示udp相关连接。
2.显示监听状态的端口
-l 选项用于显示监听(listening)状态的端口:
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:qmqp *:* Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 7697 private/error
同样,增加 t或u 将仅针对 tcp或udp 显示。
3.显示连接相关进程名和pid
我们查看某连接信息或某端口状态时,如果能查看到建立该连接或占用该端口的进程,这将非常有用,-p 选项完成该功能:
# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 bogon:ssh bogon:49792 ESTABLISHED 4211/1
4.查看某特定端口被哪个进程占用
查看某端口是否被占用,这是经常遇到的情形,可用以下方法查询:
# netstat -an | grep ':22' tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.1.101:22 192.168.1.100:49792 ESTABLISHED tcp 0 0 :::22
反过来,我们也可以查询某进程占用了哪些端口:
# netstat -ap | grep ssh tcp 0 0 *:ssh *:* LISTEN 2792/sshd tcp 0 0 bogon:ssh bogon:49792 ESTABLISHED 4211/1 tcp 0 0 *:ssh *:* LISTEN 2792/sshd
5.不作域名和端口名解析
以上我们用到了 -n 选项,其指示信息显示时不作域名和端口名解析。在/etc/hosts等文件中我们可以指定某ip对应某域名(如192.168.1.100对应bangerlee),若不使用 -n 选项,相应的连接条目将显示 'bangerlee',而加了 -n 选项则显示ip地址;对于周知端口,netstat默认显示周知端口对应的服务,如22号端口为ssh,-n 选项指示netstat显示端口号。
6.显示路由表信息
使用 -r 选项显示路由表信息,与route命令显示结果类似:
# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface bogon * 255.255.255.0 U 0 0 0 wlan0 loopback * 255.0.0.0 U 0 0 0 lo default bogon 0.0.0.0 UG 0 0 0 wlan0
7.显示网口信息
netstat还是用于显示网口信息:
# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 0 0 0 0 0 0 0 0 BMU lo 16436 0 6 0 0 0 6 0 0 0 LRU wlan0 1500 0 29250 0 0 0 3485 0 0 0 BMRU
netstat -ie 将信息网口的详细信息,与ifconfig命令结果类似。
8.针对网络协议显示统计信息
-s 选项用于显示各网络协议相关统计信息:
# netstat -s Ip: 26700 total packets received 3 with invalid addresses 0 forwarded 0 incoming packets discarded 10844 incoming packets delivered 3392 requests sent out Tcp: 33 active connections openings 1 passive connection openings 3 failed connection attempts 0 connection resets received 1 connections established 3171 segments received 3153 segments send out 7 segments retransmited 0 bad segments received. 3 resets sent Udp: 150 packets received 107 packets to unknown port received.
……
Reference: UNIX/Linux: 10 Netstat Command Examples

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架