netstat命令详细说明

本文详细介绍了netstat命令的使用方法及参数,包括显示路由表、网络接口表、各种联机状态等功能。通过具体实例展示了如何利用netstat进行网络监控。

netstat命令是监视网络非常有用的工具,支持TCP/IP协议。它可以显示网络的路由表(route table)、实际的网络连接和每个网络接口设备的状态信息。

 

参数说明:

-r: 显示路由表

-n:不使用主机名称与服务名称,使用IP与Port number

 

-a:列出所有的联机状态,包括tcp/udp/unix socket等

-t:仅列出TCP数据包的联机

-u:仅列出UDP数据包的联机

-l:仅列出在listen(监听)的服务之网络状态

-p:列出PID和program的文件名

-c:可以设置几秒后自动更新一次,列入-c 5每5秒更新一次网络状态的显示

 

1)先说说它显示路由表的功能

     netstat -rn

     一般加上n,直接用IP和Port号显示,这样的话,速度也快。

     例子:

     Kernel IP routing table
     Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
     192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
     169.254.0.0     0.0.0.0         255.255.0.0       U         0 0          0 eth0
     0.0.0.0             192.168.1.1     0.0.0.0          UG        0 0          0 eth0

 

2)显示网络接口表

     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        99      0            0             0            93      0            0          0        BMRU
        lo        16436    0         4      0             0            0             4        0            0          0        LRU

 

     B 已经设置了一个广播地址。
    L 该接口是一个回送设备。
    M 接收所有数据包(混乱模式)。
    N 避免跟踪。
    O 在该接口上,禁用A R P。
    P 这是一个点到点链接。
    R 接口正在运行。
    U 接口处于“活动”状态。

      

3)列出所有联机状态

     netstat -an

    

     命令的返回有两个部分,第一部分是TCP/IP的网络接口部分,第二部分的传统的Unix Socket部分。

 

 4)仅输出tcp链接

      netstat -atnp

 

 5)仅输出udp链接

      netstat -aunp

 

 6)仅列出正在监听的链接,类型限于tcp和udp

      netstat -ltunp

 

 

 

netstat 命令是 Linux 系统中一个非常强大的网络诊断工具,可以用于查看网络连接、路由表、接口统计信息、协议统计信息等。它广泛应用于网络状态监控和故障排查。 ### 常用使用方法 1. **查看所有连接** 使用 `-a` 参数可以显示所有连接和监听端口,包括 TCP、UDP 以及其他类型的连接。 ```bash netstat -a ``` 2. **以数字形式显示地址和端口号** 使用 `-n` 参数可以避免进行 DNS 解析,加快输出速度,适合排查问题时使用。 ```bash netstat -n ``` 3. **显示 TCP 或 UDP 连接** 使用 `-t` 查看 TCP 连接,使用 `-u` 查看 UDP 连接。可以结合 `-n` 和 `-a` 参数使用。 ```bash netstat -t netstat -u ``` 4. **显示进程信息** 使用 `-p` 参数可以显示与网络连接相关的进程 ID(PID)和程序名称,但需要 root 权限才能查看其他用户的进程。 ```bash netstat -p ``` 5. **查看监听端口** 使用 `-l` 可以只显示处于监听状态的端口。 ```bash netstat -l ``` 6. **组合使用示例** 例如,查看所有 TCP 连接并以数字形式显示地址和端口号: ```bash netstat -ant ``` 查看所有 UDP 连接并显示进程信息: ```bash netstat -anup ``` ### 输出字段说明 - **Proto**:连接的协议类型,例如 TCP 或 UDP。 - **Recv-Q**:接收队列中的数据量,表示等待被应用程序读取的数据字节数。 - **Send-Q**:发送队列中的数据量,表示等待被发送的数据字节数。 - **Local Address**:本地地址和端口号,`*` 表示服务器正在监听所有接口。 - **Foreign Address**:远程地址和端口号,对于监听端口,此字段通常为 `*` 或 `0.0.0.0`。 - **State**:连接状态,如 `ESTABLISHED`(已建立)、`LISTEN`(监听)、`TIME_WAIT`(等待关闭)等。 - **PID/Program name**:使用 `-p` 参数时显示,表示与连接相关的进程 ID 和程序名称。 ### 示例输出 以下是一些典型的输出示例: 1. **查看所有 TCP 连接** ```bash netstat -ant ``` 输出可能如下: ``` Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.1.10:54321 192.168.1.1:80 ESTABLISHED ``` 2. **查看所有 UDP 连接** ```bash netstat -anu ``` 输出可能如下: ``` Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:5353 0.0.0.0:* udp 0 0 192.168.1.10:123 0.0.0.0:* ``` 3. **查看所有监听端口** ```bash netstat -l ``` 输出可能如下: ``` Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:22 *:* LISTEN udp 0 0 *:68 *:* ``` 4. **查看特定进程的网络连接** 例如,查看 PID 为 1234 的进程的网络连接: ```bash netstat -antp | grep 1234 ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值