文章目录
1. ping
1.1 概述
- p i n g ping ping( P a c k e t I n t e r n e t G r o p e r Packet Internet Groper PacketInternetGroper)是 W i n d o w s 、 U N I X 和 L i n u x Windows、UNIX和Linux Windows、UNIX和Linux系统下的一个命令
- p i n g ping ping也属于一个通信协议,是 T C P / I P TCP/IP TCP/IP协议的一部分
- 利用ping命令可以检查网络是否连通,可以很好地帮助分析和判断网络故障
- 原理:利用网络上机器 I P IP IP地址地唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连通以及时延是多少
- 应用格式: p i n g ping ping 空格 I P IP IP地址
1.2 ping的使用
-
1. w i n d o w s windows windows使用
ipconfig/all
观察本地网络设置是否正确, L i n u x Linux Linux使用ifconfig
查看
-
2.
ping 127.0.0.1
,检查本地的TCP/IP协议有没有设置好
-
3.
ping
本机 I P IP IP地址,检查本机的IP地址是否设置有误
-
4.
ping
本网网关或本网 I P IP IP地址,这样是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常(在非局域网中这一步骤可以忽略) -
5.
ping
本地DNS
地址,检查本地DNS
服务器是否工作正常
之前使用ipconfig/all
得到的DNS
服务器地址:
ping DNS
服务器地址:
- 6.
p
i
n
g
ping
ping远程
I
P
IP
IP地址,主要检查本网或本机与外部的连接是否正常,还可以用来测试网络延时,这里
p
i
n
g
ping
ping百度:
1.3 ping常用参数
2. tcpdump
2.1 概述
- t c p d u m p tcpdump tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析,支持针对协议、主机、网络或端口的过滤,并提供了 a n d 、 o r 、 n o t and、or、not and、or、not等逻辑语句来帮助去掉无用的信息
- t c p d u m p tcpdump tcpdump根据使用者的定义对网络上的数据包进行截获和分析
- t c p d u m p tcpdump tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,利用这些参数定义的过滤规则就能达到迅速定位故障的目的
- t c p d u m p tcpdump tcpdump采用命令行格式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx] [-c 数量] [-F 文件名]
[-i 网络接口] [-r 文件名] [-s snaplen]
[-T 类型] [-w 文件名] [表达式]
表达式是一个正则表达式, t c p d u m p tcpdump tcpdump利用它作为过滤报文的条件
2.2 tcpdump使用
- 1)默认启动
tcpdump
默认情况下,直接启动 t c p d u m p tcpdump tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。这样抓取的结果会非常多,滚动非常快
- 2)监视指定网络接口的数据包
tcpdump -i eth1
如果不指定网卡,默认 t c p d u m p tcpdump tcpdump只会监视第一个网络接口,如 e t h 0 eth0 eth0。
- 3)监视指定主机的数据包,例如所有进入或离开 h o s t n a m e hostname hostname的数据包
tcpdump host hostname
- 4)打印 h e l i o s helios helios<–> h o t hot hot或 h e l i o s helios helios<–> a c e ace ace之间通信的数据包
tcpdump host helios and \( hot or ace \)
- 5)打印 a c e ace ace与任何其他主机之间通信的 I P IP IP数据包,但不包括与 h e l i o s helios helios之间的数据包
tcpdump ip host ace and not helios
- 6)截获某端口相关的包
tcpdump port 6666
- 7)监视指定主机和端口的数据包
tcpdump tcp port 22 and host hostname
了解更多相关命令tcpdump
3. netstat
3.1 概述
- n e t s t a t netstat netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于校验本机各端口的网络连接情况
- n e t s t a t netstat netstat是在内核中访问网络及相关信息的程序,它能提供 T C P TCP TCP连接、对 T C P TCP TCP和 U D P UDP UDP的监听及获取进程内存管理的相关报告
- n e t s t a t netstat netstat的命令格式:
netstat [-acCeFghilMnNoprstuvVwx] [-A< 网络类型>] [--ip]
3.2 常见参数
参数 | 说明 |
---|---|
− a -a −a | 显示所有选项,默认不显示 L I S T E N LISTEN LISTEN相关 |
− t -t −t | 仅显示 T C P TCP TCP相关选项 |
− u -u −u | 仅显示 U D P UDP UDP相关选项 |
− n -n −n | 拒绝显示别名,能显示数字的全部转化为数字 |
− l -l −l | 仅列出有在 l i s t e n listen listen(监听)的服务状态 |
− p -p −p | 显示建立相关链接的程序名 |
− r -r −r | 显示路由信息,路由表 |
− e -e −e | 显示扩展信息,例如 u i d uid uid等 |
− s -s −s | 按各个协议进行统计 |
− c -c −c | 每隔一个固定时间,执行该 n e t s t a t netstat netstat命令 |
3.3 参数使用
- 1.列出所有端口:
netstat -a
- 2.列出所有
T
C
P
TCP
TCP端口:
netstat -at
- 3.列出所有
U
D
P
UDP
UDP端口:
netstat -au
- 4.列出所有处于监听状态的
s
o
c
k
e
t
socket
socket:
netstat -l
- 5.列出所有监听
T
C
P
TCP
TCP端口的
s
o
c
k
e
t
socket
socket:netstat -lt
- 6.列出所有监听
U
D
P
UDP
UDP端口的
s
o
c
k
e
t
socket
socket:netstat -lu
- 7.列出所有监听
U
N
I
X
UNIX
UNIX端口的
s
o
c
k
e
t
socket
socket:netstat -lx
- 8.在
n
e
t
s
t
a
t
netstat
netstat输出中显示
P
I
D
PID
PID和进程名称:
n
e
t
s
t
a
t
netstat
netstat
−
p
-p
−p
更多 n e t s t a t netstat netstat参数详解netstat
4. lsof
4.1 概述
- lsof是一个是一个列出当前系统打开文件的工具
- 在 L i n u x Linux Linux下,任何事物皆是以文件形式存在的,并且系统在后台都为该应用程序分配了一个文件描述符,通过该文件描述符能掌握大量关于该应用程序的信息,因此通过 l s o f lsof lsof查看这个列表对系统监测以及排错将是有很大帮助的
- 执行
l
s
o
f
lsof
lsof命令,输出结果如下:
1) C O M M A N D COMMAND COMMAND:进程的名称
2) P I D PID PID:进程标识符
3) U S E R USER USER:进程所有者
4) F D FD FD:文件描述符,应用程序通过文件描述符识别该文件,如 c w d cwd cwd、 t x t txt txt等
5) T Y P E TYPE TYPE:文件类型,如 D I R 、 R E G DIR、REG DIR、REG等
6) D E V I C E DEVICE DEVICE:指定磁盘的名称
7) S I Z E SIZE SIZE:文件的大小
8) N O D E NODE NODE:索引节点(文件在磁盘上的标识)
9) N A M E NAME NAME:打开文件的确切名称
4.2 常见参数列表
lsof filename 显示打开指定文件的确切名称
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中所包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
4.3 常用命令
- 1.查看6666端口现在运行情况,命令:
lsof -i :6666
- 2.查看所属
r
o
o
t
root
root用户进程所打开的文件,文件类型为
.
t
x
t
.txt
.txt:
lsof -a -u root -d txt
- 3.监控打开的文件和设备。查看设备
/
d
e
v
/
t
t
y
1
/dev/tty1
/dev/tty1被哪些进程占用的命令:
lsof /dev/tty1
- 4.监控程序,如查看指定程序
s
e
r
v
e
r
server
server打开的文件:
lsof -c server
- 5.监控用户。比如查看指定用户
u
b
u
n
t
u
ubuntu
ubuntu打开的文件:
lsof -u ubuntu
5. ss
5.1 概述
- ss是Socket Statistics的缩写,顾名思义用于显示socket状态的统计(可以显示 P A C K E T s o c k e t s 、 T C P s o c k e t s 、 U D P s o c k e t s 、 D C C P s o c k e t s PACKET sockets、TCP sockets、UDP sockets、DCCP sockets PACKETsockets、TCPsockets、UDPsockets、DCCPsockets、 R A W s o c k e t s 、 U N I X RAW sockets、UNIX RAWsockets、UNIX d o m a i n s o c k e t s domain sockets domainsockets等统计)
- 它可以显示和 n e t s t a t netstat netstat类似的内容。但 s s ss ss的优势在于它能够显示更多更详细的有关 T C P TCP TCP和连接状态的信息,而且比 n e t s t a t netstat netstat更快速更高效
- $ss的命令格式:
ss [option]
ss [option] [过滤]
5.2 详细参数
root@VM-0-2-ubuntu:/home/ubuntu# ss -h
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message //帮助信息
-V, --version output version information //程序版本信息
-n, --numeric don't resolve service names //不解析服务名称
-r, --resolve resolve host names //解析主机名
-a, --all display all sockets //显示所有套接字
-l, --listening display listening sockets //显示监听状态的套接字
-o, --options show timer information //显示计时器信息
-e, --extended show detailed socket information //显示详细的套接字信息
-m, --memory show socket memory usage //显示套接字的内存使用情况
-p, --processes show process using socket //显示使用套接字的进程
-i, --info show internal TCP information //显示TCP内部信息
-s, --summary show socket usage summary //显示套接字使用概况
-b, --bpf show bpf filter socket information //显示BPF过滤器套接字信息
-E, --events continually display sockets as they are destroyed //在被破环时不断显示套接字
-Z, --context display process SELinux security contexts //显示SELinux的安全上下文过程
-z, --contexts display process and socket SELinux security contexts //显示过程和Socket SELinux的安全上下文
-N, --net switch to the specified network namespace name //切换到指定的网络命名空间名称
-4, --ipv4 display only IP version 4 sockets //仅显示IPV4的套接字
-6, --ipv6 display only IP version 6 sockets //仅显示iPV6的套接字
-0, --packet display PACKET sockets
-t, --tcp display only TCP sockets
-S, --sctp display only SCTP sockets
-u, --udp display only UDP sockets
-d, --dccp display only DCCP sockets
-w, --raw display only RAW sockets
-x, --unix display only Unix domain sockets
--vsock display only vsock sockets
-f, --family=FAMILY display sockets of type FAMILY //示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink
FAMILY := {inet|inet6|link|unix|netlink|vsock|help}
-K, --kill forcibly close sockets, display what was closed
-H, --no-header Suppress header line
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink|vsock_stream|vsock_dgram}[,QUERY]
-D, --diag=FILE Dump raw information about TCP sockets to FILE
-F, --filter=FILE read filter information from FILE //从文件中去过滤器的信息
FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listening|closing}
connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
bucket := {syn-recv|time-wait}
big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listening|closing}
5.3 常见用法
- 1.显示所有网络连接
ss -a -n
- 2.显示
T
C
P
TCP
TCP连接:
ss -t -a
- 3.显示
S
o
c
k
e
t
s
Sockets
Sockets摘要信息:
ss -s
- 4.列出所有处在
l
i
s
t
e
n
i
n
g
listening
listening状态的
s
o
c
k
e
t
socket
socket:
ss -l
- 5.列出每个进程名及其监听的端口:
ss -lp
- 6.显示所有
U
D
P
UDP
UDP
S
o
c
k
e
t
s
Sockets
Sockets:
ss -u -a
- 7.显示所有状态为
e
s
t
a
b
l
i
s
h
e
d
established
established的
S
M
T
P
SMTP
SMTP连接:
ss -o state established '( dport = :smtp or sport = :smtp )'
- 8.显示所有状态为
E
s
t
a
b
l
i
s
h
e
d
Established
Established的
H
T
T
P
HTTP
HTTP连接:
ss -o state established '( dport = :http or sport = :http )'
了解更多详细有关ss命令可以参考:(感谢评论区的同学@凡晨_雪杰介绍)
Linux网络状态工具
s
s
ss
ss命令使用详解
每天一个linux命令(57):ss命令
--------------------------------------- m o o d mood mood--------------------------------------------
2019 2019 2019,也要一个人勇敢的走下去。