一、netstat命令:
- 显示本机网络连接、运行端口和路由表等信息的命令
- 用于显示各种网络相关信息,如网络连接,路由表,接口状态,无效连接,组播成员 等等。
-a 列出系统中所有网络连接,包括已经连接的网络服务、监听的网络服务和Socket套接字 -t 列出TCP数据 -u 列出UDP数据 -l 列出正在监听的网络服务(不包含已经连接的网路服务) -n 用端口显示服务,而不用服务名 -p 列出该服务的进程ID(PID) -s 按各个协议进行统计 -c 每隔一个固定时间,执行该命令 -r 路由信息
各字段含义:
Proto 数据包的协议,分为TCP和UDP Recv-Q 表示收到的数据已经在本地接收缓存,但是还没有被进程取走的数据包数量 Send-Q 对方没有收到的数据包,或者没有ACK回复的,还在本地缓冲区的数据包数量 Local Address 本地IP:端口,通过端口可以知道本机开启了那些服务 Foreign Address 远程主机:端口也就是远程那个IP使用那个端口连接到本机 State 连接状态,主要是已经建立连接(ESTABLISED)和监听两种状态(LISTEN) PID/Program name 主要是进程ID和进程命令
各字段含义:
Proto 协议,一般为unix RefCnt 连接到此Socket的进程数量 Flags 连接标识 Type Socket访问类型 State 连接状态,已经建立连接(ESTABLISED)和监听两种状态(LISTEN) I-Node 程序文件的Inode号 Path Socket程序的路径,或者相关数据的输出路径
1.状态说明:
CLOSED 初始(无连接)状态。 LISTEN 侦听状态,等待远程机器的连接请求。 SYN_SEND SYN_SEND 在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包 SYN_RECV 在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。 ESTABLISHED 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可 以进行通信。 FIN_WAIT_1 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。 FIN_WAIT_2 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。 TIME_WAIT 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL 时间,让被动关闭端收到ACK包。 CLOSING 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的 FIN包,此时,进入CLOSING状态。 CLOSE_WAIT 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。 LAST_ACK 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。
- 主动连接端可能的状态有: CLOSED 、SYN_SEND、 ESTABLISHED
- 主动关闭端可能的状态有: FIN_WAIT_1、 FIN_WAIT_2 、TIME_WAIT
- 被动连接端可能的状态有: LISTEN 、SYN_RECV、 ESTABLISHED
- 被动关闭端可能的状态有: CLOSE_WAIT、 LAST_ACK 、CLOSED
练习:
#列出所有的端口,包括监听的和未监听的
#列出所有的tcp协议的端口
#寻找特定程序运行的端口
#查看本机路由信息
二、ss命令:
在Linux下,如果连接数比较大,可以使用效率更高的ss来替代netstat。并发量比较大的情况下可以很明显 对比出两个效率
- 配置网络或显示当前网络接口状态的命令
- ss命令用于显示socket状态.他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets,RAW sockets, Unix domain sockets等等统计.它比其他工具展示等多tcp和state信息.它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具. SS命令可以提供如下信息:
§ 所有的TCP sockets
§ 所有的UDP sockets
§ 所有ssh/ftp/ttp/https持久连接
§ 所有连接到Xserver的本地进程
§ 使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤所有的state FIN-WAIT-1 tcpsocket连接以及更多
常用选项:
-t tcp协议的连接 -u udp协议的链接 -l 监听状态的连接 -a 所有状态的连接 -e 显示扩展信息 -m 显示套接连接使用的内存信息 -p 进程及UDP -n 数字格式显示 -o state (established) ss -o state established ‘( dport = :smtp or sport = :smtp )’ 显示所有已建立的 SMTP连接 ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立的 HTTP连接
三、traceroute命令:
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
- 追踪路由,对网络系统性能分析(traceroute:路由跟踪 host:主机 icmp:控制报文协议)
- 获取当前主机到目标主机所经过的路由(网关)
先检查一下安装了traceroute没有 rpm -qa | grep "traceroute"
然后采用yum 安装 yum install -y traceroute
-n 显示IP地址,不查主机名 -m 设置跳数 -q 4 每个网关发送4个数据包 – – -w 对外发探测包的等待响应时间设置为3秒
四、mtr命令:
- 它可以结合ping nslookup tracert 来判断网络的相关特性
- 追踪路由,对网络系统性能分析,动态
先检查一下安装了traceroute没有 rpm -qa | grep "mtr"
然后采用yum 安装 yum install -y mtr
选项:
mtr -r 已报告模式显示 mtr -S 用来指定pi ng数据包的大小 mtr -n no-dns 对IP地址做域名解析 mtir -a 来设置发送数据包的IP地址这个对一个主机由多个IP地址是有用的 mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒 mtr -4 IPV4 mtr -6 IPV6
五、wget命令:
- 使用wget -O下载并以不同的文件名保存✏✏✏✏wget -O wordpress.zip https://cn.wordpress.org/latest-zh_CN.tar.gz
- 使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续 接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。
- 使用wget -b后台下载✏✏✏✏命令执行后,下载的详细信息不会显示在终端,会在当前目录下生成一个web-log记录下载的详细信息。
六、iproute家族:
iproute | |
---|---|
arp -na | ip neigh |
ifconfig | ip link |
ifconfig -a | ip addr show |
ifconfig --help | ip help |
ifconfig -s | ip -s link |
ifconfig eth0 up | ip link set eth0 up |
ipmaddr | ip maddr |
iptunnel | ip tunnel |
netstat | ss |
netstat -i | ip -s link |
netstat -g | ip maddr |
netstat -l | ss -l |
netstat -r | ip route |
route add | ip route add |
route del | ip route del |
route -n | ip route show |
vconfig | ip link |