netstat 命令详解

本文详细解读了netstat命令的语法选项,展示了如何使用它来监控端口、监听状态、统计信息、PID关联和路由表,适合网络管理员和开发者深入理解网络活动。

一、简介

netstat 命令是一个监控 TCP / IP 网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

二、语法选项

-a 或 --all显示所有连线中的 Socket
-A <网络类型> 或 --<网络类型>列出该网络类型连线中的相关地址
-c 或 --continuous持续列出网络状态                     
-C 或 --cache显示路由器配置的快取信息
-e 或 --extend显示网络其他相关信息
-F 或 --fib显示FIB
-g 或 --groups显示多重广播功能群组组员名单
-h 或 --help在线帮助
-i 或 --interfaces显示网络界面信息表单
-l 或 --listening显示监控中的服务器的 Socket
-M 或 --masquerade显示伪装的网络连线
-n 或 --numeric直接使用ip地址,而不通过域名服务器
-N 或 --netlink或--symbolic显示网络硬件外围设备的符号连接名称
-o 或 --timers显示计时器
-p 或 --programs显示正在使用 Socket 的程序识别码和程序名称
-r 或 --route显示 Routing Table
-s 或 --statistice显示网络工作信息统计表
-t 或 --tcp显示 TCP 传输协议的连线状况
-u 或 --udp显示 UDP 传输协议的连线状况
-v 或 --verbose显示指令执行过程
-V 或 --version显示版本信息
-w 或 --raw显示RAW传输协议的连线状况
-x 或 --unix此参数的效果和指定"-A unix"参数相同
--ip 或 --inet此参数的效果和指定"-A inet"参数相同

三、栗子

1、列出所有端口情况

[root@xiesshavip002 ~]# netstat -a      # 列出所有端口
[root@xiesshavip002 ~]# netstat -at     # 列出所有TCP端口
[root@xiesshavip002 ~]# netstat -au     # 列出所有UDP端口

2、列出所有处于监听状态的 Sockets

[root@xiesshavip002 ~]# netstat -l   # 只显示监听端口
[root@xiesshavip002 ~]# netstat -lt  # 显示监听TCP端口
[root@xiesshavip002 ~]# netstat -lu  # 显示监听UDP端口
[root@xiesshavip002 ~]# netstat -lx  # 显示监听UNIX端口

3、显示每个协议的统计信息

[root@xiesshavip002 ~]# netstat -s     # 显示所有端口的统计信息
[root@xiesshavip002 ~]# netstat -st    # 显示所有TCP的统计信息
[root@xiesshavip002 ~]# netstat -su    # 显示所有UDP的统计信息

 4、显示 PID 和进程名称

[root@xiesshavip002 ~]# netstat -p

 5、显示核心路由信息

[root@xiesshavip002 ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 eth0
192.168.130.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
[root@xiesshavip002 ~]# netstat -rn   # 显示数字格式,不查询主机名称
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.130.1   0.0.0.0         UG        0 0          0 eth0
192.168.130.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
[root@xiesshavip002 ~]#

6、查看端口和服务

[root@xiesshavip002 ~]# netstat -antp | grep ssh
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      734/sshd            
tcp        0     52 192.168.130.20:22       119.129.118.189:58737   ESTABLISHED 1846/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      734/sshd            
[root@xiesshavip002 ~]# netstat -antp | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      734/sshd            
tcp        0     52 192.168.130.20:22       119.129.118.189:58737   ESTABLISHED 1846/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      734/sshd            
[root@xiesshavip002 ~]#

netstat --help 

usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vWnNcaeol] [<Socket> ...]
       netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }

        -r, --route              display routing table
        -i, --interfaces         display interface table
        -g, --groups             display multicast group memberships
        -s, --statistics         display networking statistics (like SNMP)
        -M, --masquerade         display masqueraded connections

        -v, --verbose            be verbose
        -W, --wide               don't truncate IP addresses
        -n, --numeric            don't resolve names
        --numeric-hosts          don't resolve host names
        --numeric-ports          don't resolve port names
        --numeric-users          don't resolve user names
        -N, --symbolic           resolve hardware names
        -e, --extend             display other/more information
        -p, --programs           display PID/Program name for sockets
        -o, --timers             display timers
        -c, --continuous         continuous listing

        -l, --listening          display listening server sockets
        -a, --all                display all sockets (default: connected)
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB
        -Z, --context            display SELinux security context for sockets

  <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}
           {-x|--unix} --ax25 --ipx --netrom
  <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

转载:netstat 命令详解 - xie仗剑天涯 - 博客园

 

(SAW:Game Over!) 

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 ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值