netsta命令是一个监控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;kay:~# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8091 0.0.0.0:* LISTEN 5567/nginx: worker tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 5567/nginx: worker tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 1642/lua5.1
列出所有端口情况
[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的统计信息
显示核心路由信息
[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;kay:~# netstat -antp | grep api tcp 0 0 127.0.0.1:33268 127.0.0.1:3306 ESTABLISHED 3883/apitest1 tcp6 0 0 :::13340 :::* LISTEN 3883/apitest1 tcp6 0 0 :::51616 :::* LISTEN 3883/apitest1 tcp6 0 0 :::3340 :::* LISTEN 3897/api1 tcp6 0 0 :::61616 :::* LISTEN 3897/api1 tcp6 0 0 172.28.3.44:13340 58.199.133.26:61091 ESTABLISHED 3883/apitest1 tcp6 0 0 172.28.3.44:13340 58.199.133.26:51008 ESTABLISHED 3883/apitest1 tcp6 0 0 172.28.3.44:13340 58.199.133.26:61072 ESTABLISHED 3883/apitest1 tcp6 0 0 172.28.3.44:13340 58.199.133.42:46380 ESTABLISHED 3883/apitest1 tcp6 0 0 172.28.3.44:13340 58.199.133.26:51001 ESTABLISHED 3883/apitest1 tcp6 0 0 172.28.3.44:13340 58.199.133.42:46378 ESTABLISHED 3883/apitest1
套接字是和IP地址;软件端口和协议结合起来使用的;而端口号对传输控制协议(TCP)和用户数据报协议(UDP)都适用,TCP和UDP都可以使用0到65535之间的端口号进行通信
以下是端口分配类别;
在 Linux 上的 /etc/services 文件可以查看到更多关于保留端口的信息。
可以使用以下六种方法查看端口信息;
一般用于转储套接字统计信息。它能够输出类似于 netstat 输出的信息;但它可以比其它工具显示更多的 TCP 信息和状态信息。
它还可以显示所有类型的套接字统计信息;包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。
# ss -tnlp | grep ssh LISTEN 0 128 *:22 *:* users:((;sshd;,pid=997,fd=3)) LISTEN 0 128 :::22 :::* users:((;sshd;,pid=997,fd=4)) # ss -tnlp | grep ;:22; LISTEN 0 128 *:22 *:* users:((;sshd;,pid=997,fd=3)) LISTEN 0 128 :::22 :::* users:((;sshd;,pid=997,fd=4))
默认情况下;netstat 会列出打开的套接字。如果不指定任何地址族;则会显示所有已配置地址族的活动套接字。但 netstat 已经过时了;一般会使用 ss 来替代。
# netstat -tnlp | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 997/sshd tcp6 0 0 :::22 :::* LISTEN 997/sshd # netstat -tnlp | grep ;:22; tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1208/sshd tcp6 0 0 :::22 :::* LISTEN 1208/sshd
root;kay:/etc# lsof -i -P | grep 8899 runner-bu 27770 root 35u IPv6 6031196 0t0 TCP *:8899 (LISTEN) runner-bu 27770 root 36u IPv6 6035507 0t0 TCP iZodby5csuw6b2Z:8899->58.199.133.26:52427 (ESTABLISHED)
root;kay:/etc# fuser -v 8899/tcp USER PID ACCESS COMMAND 8899/tcp: root 27770 F.... runner-build root;kay:/etc#
nmap 使用原始 IP 数据包来确定网络上可用的主机;这些主机的服务;包括应用程序名称和版本;、主机运行的操作系统;包括操作系统版本等信息;、正在使用的数据包过滤器或防火墙的类型;以及很多其它信息。
nmap -sV -p 22 localhost
systemctl 是 systemd 系统的控制管理器和服务管理器。它取代了旧的 SysV 初始化系统管理;目前大多数现代 Linux 操作系统都采用了 systemd。