netstat命令详解

  • 格式:pdf
  • 大小:108.36 KB
  • 文档页数:3

netstat命令详解

引⾔

netstat命令是⼀个监控TCP/IP⽹络的⾮常有⽤的⼯具,它可以显⽰路由表、实际的⽹络连接以及每⼀个⽹络接⼝设备的状态信息。

语法选项

netstat [选项]

-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"参数相同。实例

列出所有 TCP 监听服务器端⼝[root@hdp-01 ~]# netstat -nltp

列出所有端⼝情况

[root@xiesshavip002 ~]# netstat -a # 列出所有端⼝

[root@xiesshavip002 ~]# netstat -at # 列出所有TCP端⼝

[root@xiesshavip002 ~]# netstat -au # 列出所有UDP端⼝

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

[root@xiesshavip002 ~]# netstat -l # 只显⽰监听端⼝

[root@xiesshavip002 ~]# netstat -lt # 显⽰监听TCP端⼝

[root@xiesshavip002 ~]# netstat -lu # 显⽰监听UDP端⼝

[root@xiesshavip002 ~]# netstat -lx # 显⽰监听UNIX端⼝

显⽰每个协议的统计信息

[root@xiesshavip002 ~]# netstat -s # 显⽰所有端⼝的统计信息

[root@xiesshavip002 ~]# netstat -st # 显⽰所有TCP的统计信息

[root@xiesshavip002 ~]# netstat -su # 显⽰所有UDP的统计信息

显⽰ PID 和进程名称[root@xiesshavip002 ~]# netstat -p

显⽰核⼼路由信息

[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 ~]#

查看端⼝和服务[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 命令帮助

[root@xiesshavip002 ~]# netstat --help

usage: netstat [-vWeenNcCF] [] -r netstat {-V|--version|-h|--help}

netstat [-vWnNcaeol] [ ...]

netstat { [-vWeenNac] -I[] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

-r, --route display routing table

-I, --interfaces= display interface table for

-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

={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix}

--ax25 --ipx --netrom

=Use '-6|-4' or '-A ' or '--'; 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)

查看进程占⽤的端⼝号

套接字是和 IP 地址、软件端⼝和协议结合起来使⽤的,⽽端⼝号对传输控制协议(TCP)和⽤户数据报协议(UDP)协议都适⽤,TCP 和

UDP 都可以使⽤ 0 到 65535 之间的端⼝号进⾏通信。以下是端⼝分配类别:

0 - 1023: 常⽤端⼝和系统端⼝

1024 - 49151: 软件的注册端⼝

49152 - 65535: 动态端⼝或私有端⼝

在 Linux 上的 /etc/services ⽂件可以查看到更多关于保留端⼝的信息。可以使⽤以下六种⽅法查看端⼝信息。

ss:可以⽤于转储套接字统计信息。

netstat:可以显⽰打开的套接字列表。

lsof:可以列出打开的⽂件。

fuser:可以列出那些打开了⽂件的进程的进程 ID。

nmap:是⽹络检测⼯具和端⼝扫描程序。

systemctl:是 systemd 系统的控制管理器和服务管理器。

举例

以下将找出 sshd 守护进程所使⽤的端⼝号

⽅法 1:使⽤ ss 命令

⼀般⽤于转储套接字统计信息。它能够输出类似于 netstat 输出的信息,但它可以⽐其它⼯具显⽰更多的 TCP 信息和状态信息。