Linux中与网络相关的命令及常见用法


网络是运维中非常重要的一环,所以笔者就把比较常见的与网络相关的命令及一些技巧总结一下


首先我们将我们常常要得到的网络状况和命令简单的做一个对照,下面将会有对命令详细的介绍

效果 命令
查看本机网口信息 ifconfig,ip
网络接口的开关 ifup,ifdown
查看路由表 route,netstat(-r)
arp相关 arp
探测网络中主机是否存在 ping,nmap,arping
查看网络tcp,udp的连接状态还有端口信息 netstat,ss
测试主机间连通性 ping
简单的TCP连接模拟 nc
探测目标主机的端口 nmap
域名解析 nslookup,dig,host
监听网络流量 tcpdump

ifconfig:配置或显示网络接口信息

一.功能
用于配置网卡地址或显示当前网络的接口状态,类似Windows下的ipconfig命令,如果系统中没有ifconfig命令,可以使用yum -y install net-tools来安装
二.参数选项说明

参数选项 说明
-a 显示所有的网络接口信息,包括活动的和非活动的
up 激活指定的网络接口
down 关闭指定的网络接口
hw 设置网络接口的物理地址

三.使用案例
1.查看接口信息-----ifconfig

[root@k8s-master bin]# ifconfig     ###查看所有
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:e7:34:80:20  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:ea:68:85  txqueuelen 1000  (Ethernet)
        RX packets 329590  bytes 477267888 (455.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 45283  bytes 4272717 (4.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 32  bytes 2592 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 2592 (2.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

-------------------------------------------------------
[root@k8s-master bin]# ifconfig ens33  ###查看指定接口的信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:ea:68:85  txqueuelen 1000  (Ethernet)
        RX packets 329649  bytes 477271938 (455.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 45306  bytes 4275859 (4.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.启动/关闭指定网卡—ifconfig < 网卡名称 > up | down

[root@k8s-master bin]# ifconfig docker0 down
[root@k8s-master bin]# ifconfig docker0 up

除了使用这个方法外,还可以世界使用ifup和ifdown来开启和关闭网络接口

[root@k8s-master bin]# ifup ens33
[root@k8s-master bin]# ifdown ens33
在这里插入代码片

3.为指定网卡配置IP地址—ifconfig < 网卡名称 >

[root@k8s-master bin]# ifconfig docker0 192.168.20.1/24

4.为指定网卡配置别名IP—ifconfig < 网卡名称 >:<编号>

[root@k8s-master bin]# ifconfig ens33:0 192.168.10.80
[root@k8s-master bin]# ifconfig ens33:1 192.168.10.90
[root@k8s-master bin]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:ea:68:85  txqueuelen 1000  (Ethernet)
        RX packets 330158  bytes 477309271 (455.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 45533  bytes 4297033 (4.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.80  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:ea:68:85  txqueuelen 1000  (Ethernet)

ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.90  netmask 255.255.255.0  broadcast 192.168.10.255
        ether 00:0c:29:ea:68:85  txqueuelen 1000  (Ethernet)

route:显示或管理路由表

一.功能
route命令可以显示或管理Linux系统的路由表,route命令设置的路由主要是静态路由
二.参数选项说明

参数选项 说明
-n 直接使用IP地址,不进行DNS解析
add 添加路由信息
del 删除路由信息
-net 到一个网络的路由,后面接的是一个网络号地址
-host 到一个主机的路由,后面接的是一个主机地址
netmask NM 为添加的路由指定网络掩码
gw GW 为发往目标网络/主机的任何分组指定网关
dev IF 指定由哪个网络设备发出去,后面接网络设备,如eth0

三.使用案例
1.查看路由信息—route | route -n
不加n的话,默认会将地址转换为域名显示出来,如果加上-n选项就会直接显示IP地址,而且显示速度会更快一些

[root@k8s-master ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0
-------------------------------------------------
[root@k8s-master ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0
-------------------------------------------------
字段解释
Destination:表示网络号
Gateway:连出网关地址,0.0.0.0表示由本机转发出去,如果有IP显示,则表示本条路由必须经过该IP才能发送出去
Genmask:表示子网掩码地址,即netmask
Flags:路由标记信息
 U:表示此路由为启动状态
 H:表示为是主机路由
 G:表示需要外部主机(Gateway)来转发数据
 M:表示路由已经被修改了
 D:已经由服务设定为动态路由
Metric:需要经过几个网络节点才能到达目标网络地址
Ref:参考到此路由规则的数目
Use:有几个转送数据包参考到了此路由规则
Iface:路由对应的网络设备接口

2.添加或删除默认网关—route del default | route add default gw <地址>

[root@k8s-master ~]# route del default
[root@k8s-master ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0
[root@k8s-master ~]# route add default gw 192.168.10.2
[root@k8s-master ~]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0

3.配置网络路由

1.去往某一网段的路由
[root@k8s-master ~]# route add -net 10.10.10.0/24 dev ens33 ###指定接口的写法
[root@k8s-master ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 ens33
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0

其他写法
route add -net 10.10.10.0/24 gw 192.168.10.2  ###指定网关的写法

使用route add配置的路由,再计算机重启之后,就找不到了,如果想要开机还保持存在,可以使用以下方法

方法一:
添加内容到/etc/sysconfig/static-routes (默认这个文件不存在)
any net 10.10.10.0/24 gw 192.168.10.2

方法二:
将route命令加到开机自启执行的命令里
/etc/rc.local
route add -net 10.10.10.0/24 gw 192.168.10.2
去往主机的路由
route add -host 10.10.10.10/24 dev ens33

arp:管理系统的arp缓存

一.功能
arp命令用于操作本机的arp缓存区,可以显示arp缓存区中的所有条目,删除指定的条目或者静态的添加IP地址与MAC地址对应的关系
二.参数选项说明

参数选项 说明
-n 显示数字IP地址
-s <主机><MAC地址> 设置指定主机的IP地址和MAC地址的映射
-d 从arp缓存区中删除指定主机的arp条目
-v 显示详细的arp缓存区条目,包括缓冲区条目的统计信息

三.使用案例
1.查看arp缓存

[root@k8s-master ~]# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
gateway                  ether   00:50:56:f1:1a:ab   C                     ens33
192.168.10.1             ether   00:50:56:c0:00:08   C                     ens33
[root@k8s-master ~]# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.10.2             ether   00:50:56:f1:1a:ab   C                     ens33
192.168.10.1             ether   00:50:56:c0:00:08   C                     ens33


FLAG字段的C表示arp高速缓存中的条目,M表示静态配置的arp条目

2.查看指定的IP地址在本地对应的缓存

[root@k8s-master ~]# arp -n 192.168.10.1
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.10.1             ether   00:50:56:c0:00:08   C                     ens33

3.静态绑定IP地址与MAC地址

[root@k8s-master ~]# arp -s 192.168.10.99 00:50:56:c1:01:81
[root@k8s-master ~]# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.10.99            ether   00:50:56:c1:01:81   CM                    ens33
192.168.10.2             ether   00:50:56:f1:1a:ab   C                     ens33
192.168.10.1             ether   00:50:56:c0:00:08   C                     ens33

netstat:查看网络状态

一.功能
用于显示本机网络的连接状态(TCP,UDP),运行端口和路由表等信息
二.参数选项说明

参数选项 说明
-n 显示数字形式的地址而不是去解析主机,端口或用户名,默认情况下netstat命令会尝试解析并显示主机的主机名
-a 显示处于监听状态和非监听状态的socket信息
-t 显示所有的TCP连接情况
-u 显示所有的UDP连接情况
-p 显示socket所属进程的PID和名称

三.使用案例
1.常见组合一,显示所有连接的信息

[root@k8s-master /]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0     36 192.168.10.10:22        192.168.10.1:53811      ESTABLISHED
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:887             0.0.0.0:*                          
udp6       0      0 :::111                  :::*                               
udp6       0      0 ::1:323                 :::*                               
udp6       0      0 :::887                  :::*                               
raw6       0      0 :::58                   :::*                    7          
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     39936    /run/gssproxy.sock
unix  2      [ ]         DGRAM                    69923    /var/run/chrony/chronyd.sock
unix  2      [ ACC ]     STREAM     LISTENING     88883    /var/run/docker.sock
unix  2      [ ACC ]     STREAM     LISTENING     39935    /var/lib/gssproxy/default.sock
unix  2      [ ACC ]     STREAM     LISTENING     89419    /var/run/docker/metrics.sock


整个显示分为两部分,上边的部分是活动的TCP/IP连接,下边的部分是unix socket连接

对各列信息进行分析

名称 含义
Proto socket使用的协议(TCP,UDP,RAW)
Recv-Q 接受到但是还未处理的字节数
Send-Q 已经发送但是未被远程主机确认收到的字节数
Local Address 本地主机地址和端口
Foreign Address 远程主机地址和端口
State socket的状态,通常仅仅有TCP的状态,状态值可能有ESTABLISHED,SYN_SENT,SYN_RECV,FIN_WAIT1,FIN_WAIT2,TIME_WAIT等

对各个状态的详细解释

状态 含义
ESTABLISHED socket已经建立连接,表示处于连接状态,一般认为有一个ESTABLISHED是一个服务的并发连接,该连接状态在生产场景中很重要
SYN_SENT socket正在积极建立一个连接,即处于发送后连接前的一个等待但未匹配进入连接状态
SYN_RECV 已经从网上收到一个连接请求
FIN_WAIT socket已经关闭,连接正在或正要关闭
FIN_WAIT2 连接已经关闭,并且socket正在等待远端结束
TIME_WAIT socket正在等待关闭处理仍在网络上的数据报,这个连接状态在生产场景中很重要,需要重点关注
CLOSED socket已经不再被占用了
CLOSED_WAIT 远端已经结束,等待socket关闭
LAST_ACK 远端已经结束,并且socket也已经关闭,等待acknowledgment
LISTEN socket正在监听连接请求
CLOSING socket关闭,但是我们仍旧没有发送数据
UNKNOWN socket状态未知

三次握手过程
在这里插入图片描述
四次挥手
在这里插入图片描述

2.常见组合二:显示所有TCP和UDP正在监听的信息
netstat -lntup
-l:显示所有监听状态的网络连接
-n:显示ip地址,不进行DNS解析成主机名,域名
-t:显示所有TCP连接
-u:显示所有UDP连接
-p:显示进程号和进程名

[root@k8s-master ~]# netstat -lnutp
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:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1129/sshd           
tcp6       0      0 :::111                  :::*                    LISTEN      809/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      1129/sshd           
udp        0      0 0.0.0.0:983             0.0.0.0:*                           809/rpcbind         
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd           
udp        0      0 127.0.0.1:323           0.0.0.0:*                           826/chronyd         
udp6       0      0 :::983                  :::*                                809/rpcbind         
udp6       0      0 :::111                  :::*                                809/rpcbind         
udp6       0      0 ::1:323                 :::*                                826/chronyd 

3.显示当前路由表

[root@k8s-master ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG        0 0          0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

4.使用选项-i显示网络的接口状况

[root@k8s-master ~]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0          1500        0      0      0 0             0      0      0      0 BMU
ens33            1500      340      0      0 0           141      0      0      0 BMRU
lo              65536       32      0      0 0            32      0      0      0 LRU

5.使用netstat查找指定服务名称的进程号

根据服务查找PID
[root@k8s-master ~]# netstat -luntp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2040/nginx: master  

或者使用ps
[root@k8s-master ~]# ps -ef | grep nginx
root       2040      1  0 08:57 ?        00:00:00 nginx: master process /application/nginx-1.6.3/sbin/nginx
nginx      2041   2040  0 08:57 ?        00:00:00 nginx: worker process
root       2114   1728  0 08:59 pts/0    00:00:00 grep --color=auto nginx

SS:查看网络状态

一.功能:
ss是类似并取代netstat的一条命令,他能用来查看网络状态信息,包括TCP.UDP连接,端口等。他的优点是能够显示更多更详细的有关网络连接状态的信息,而且比netstat更快速更高效
二.ss的参数使用大致和netstat一样,这里就不再赘述
ss命令属于iproute包,因此安装命令是yum -y install iproute
三.使用案例
1.显示所有的socket连接

ss -an
ss -an | columt -t ###将上面的输出进行格式化,不然显示会有点乱

2.显示所有正在监听的TCP和UDP连接

ss -lntup | cloumn -t  ###显示所有正在监听的TCP和UDP连接

3.显示socket统计

[root@k8s-master ~]# ss -s
Total: 523 (kernel 1020)
TCP:   6 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*	  1020      -         -        
RAW	  1         0         1        
UDP	  6         3         3        
TCP	  6         4         2        
INET	  13        7         6        
FRAG	  0         0         0      

Ping:测试主机之间网络的连通性

一.功能:
ping命令可用于测试主机之间网络的连通性。执行ping命令会使用ICMP传输协议,发出要求回应的消息,若远端主机的网络功能没有问题,就会回应该信息,因而可以得知该主机运作正常
二.参数选项说明

参数选项 说明
-c <次数> 指定发送ICMP报文的次数,否则ping命令将会一致发送报文
-I 相邻两次发送报文的时间间隔,默认为1S
-s <数据包大小> 设置发送数据包的大小,默认大小为56字节,再加上8字节的ICMP头,一共是64字节的ICMP包
-t <生存期> 设置发送的数据报其生存期(TTL)的值

traceroute:追踪数据传输路由状况

一.功能
traceroute命令用于显示网络数据包传输到指定主机的路径信息,追踪数据传输路由状况
二.参数选项说明

参数 说明
-q 设置每一跳的探测包数量
-I 使用ICMP echo探测,即ping
-n 直接使用IP地址而不使用主机名
-m 设置最大的跳数,默认为30

三.使用案例
1.查看某主机的路由状态

[root@k8s-master ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 60 byte packets
 1  gateway (192.168.10.2)  0.151 ms  0.102 ms  0.092 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
会有***号,一般为路由器关闭了,应答teaceroute消息,因为会暴露出许多安全问题,导致安全问题的产生

2.加快查询时间,traceroute默认使用的是UDP协议,有时候性能可能不是很好,加-I选项调用icmp协议,可以有效的提高速度,因为icmp是网络层的协议,更加高效一些

arping:发送arp请求

一.功能
arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包检测局域网内所有设备的硬件地址。除此之外,还可以使用arping来探测目的主机是否存活
二.参数选项说明

参数选项 说明
-c 发送指定次数的arp报文后退出命令
-f 当收到第一个应道报文时,立即退出命令,此选项用于判断目的主机是否存在或者正常运行
-I <网络接口> 指定网络接口发送arp报文
-w <截至时间> 设置命令的执行截至时间

三.使用案例
1.探测目的主机是否存活

[root@k8s-master ~]# arping -f -I ens33 192.168.10.2
ARPING 192.168.10.2 from 192.168.10.10 ens33
Unicast reply from 192.168.10.2 [00:50:56:F1:1A:AB]  0.846ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

nc:多功能网络工具

一.功能
nc是一个简单,可靠,强大的网络工具,它可以建立TCP连接,发送UDP数据包,监听任意的TCP和UDP端口,进行端口扫描,处理ipv4和ipv6数据包
二.参数选项说明

参数选项 说明
-l 指定监听端口,然后一直等待网络连接
-z 表示zero,表示扫描时不发送任何数据
-v 显示详细输出
-w 设置超时时间,对-l选项失效
-p 指定nc命令使用的端口,不能和-l选项一起使用,可能引起错误
-u 使用UDP连接,默认是TCP连接

三.使用案例
实现以下演示,需要关闭防火墙和selinux,不然可能会出现一些错误
1.模拟TCP连接并传输文本内容

在同一台机器上,开启多个终端(利用Xshhl开打多个对话框)
在第一个终端上执行
创建一个测试文件,然后使用nc -l 命令开放端口供测试
[root@k8s-master ~]# touch test_from_b
[root@k8s-master ~]# nc -l 12345 > test_from_b ###开放端口监听,将收到的内容放入test_from_b这个文件中

在第二台终端上使用netstat可以检测到端口已经开启
[root@k8s-master ~]# netstat -luntp 
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:12345           0.0.0.0:*               LISTEN      6138/nc 

在第三台终端上使用nc命令发送文件(为了看到实验效果,和第一个开启的终端在不同的目录下)
[root@k8s-master test]# cat from_b
this one is from 
[root@k8s-master test]# nc 192.168.10.10 12345 <from_b


然后就可以在第一个终端下看到
[root@k8s-master ~]# cat test_from_b 
this one is from b

2.利用nc进行端口扫描

nc -z 192.168.10.10 20-30 /扫描主机上的20到30端口

wget:命令行下载工具

一.功能:
wget命令用于从网络上下载某些资料,该命令对于能够连接到互联网的Linux系统的作用非常大,可以直接从网络上下载自己所需要的文件
wget特点:
支持断点下载功能
支持FTP和HTTP下载方式
支持代理服务器
二.参数选项说明

参数选项 说明
-o 将命令的执行结果写入文件中
-O 指定保存的文件名后下载文件
–limit-rate 限速下载
-b 转入后台执行程序
–tries=< number > 设置重试的次数
–spider 模拟爬虫访问(可以用来探测网络是否正常)

nslookup:域名查询工具

一.功能
nslookup命令时常用的域名解析查询工具,如果某有该命令则需要安装对应软件,yum -y install bind-utils
二.参数选项说明
nslookup有两种模式
交互模式:用户可以向域名服务器查询各类主机,域名的消息,或者输出域名中的主机列表
非交互模式:针对一个主机或域名仅仅获取特定的名称或所需的信息
三.使用案例
1.交互式查询------直接在命令行中输入nslookup

[root@k8s-master ~]# nslookup
> www.baidu.com      ###在>后键入要查询的域名
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 182.61.200.6
Name:	www.a.shifen.com
Address: 182.61.200.7

2.非交互式查询

[root@k8s-master ~]# nslookup www.baidu.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 61.135.169.121
Name:	www.a.shifen.com
Address: 61.135.169.125

dig和host也是进行域名查询的工具,这里就不再具体列出其使用方法

nmap:网络探测工具和安全/端口扫描工具

一.功能
nmap命令是一款开放源代码的网络探测和安全审核工具,是Network Mapper的缩写,其涉及目标是快速扫描大型网络。nmap可以发现网络上有哪些主机,主机提供了什么服务,并探测操作系统的类型及版本信息
二.参数选项说明

参数 说明
-sS TCP同步扫描(TCP SYN)
-sT TCP连接扫描
-sn 不进行端口扫描,只检查哪些主机正在运行
-sU 扫描UDP端口
-sV 探测服务器版本信息
-v 显示扫描过程中的详细信息
-p <端口> 指定要扫描的端口,可以是一个单独的端口,也可以用逗号分隔开多个端口
-n 不进行DNS解析,加快扫描速度
-O 激活对TCP/IP指纹特征的扫描,获得远程主机的标志,也就是操作系统类型

三.使用案例
1.查看当前主机开放的端口

[root@k8s-master ~]# nmap 192.168.10.10

Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:08 CST
Nmap scan report for k8s-master (192.168.10.10)
Host is up (0.0000050s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
111/tcp open  rpcbind

2.扫描主机的指定端口

[root@k8s-master ~]# nmap -p 1024-65535 192.168.10.10

Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:12 CST
Nmap scan report for k8s-master (192.168.10.10)
Host is up (0.0000050s latency).
All 64512 scanned ports on k8s-master (192.168.10.10) are closed

Nmap done: 1 IP address (1 host up) scanned in 0.79 seconds

3.扫描局域网内所有IP

[root@k8s-master ~]# nmap 192.168.10.0/24

Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:13 CST
Nmap scan report for 192.168.10.1
Host is up (0.00045s latency).
Not shown: 993 closed ports
PORT     STATE SERVICE
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
902/tcp  open  iss-realsecure
912/tcp  open  apex-mesh
5357/tcp open  wsdapi
MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 192.168.10.2
Host is up (0.00035s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
53/tcp open  domain
MAC Address: 00:50:56:F1:1A:AB (VMware)

Nmap scan report for k8s-master (192.168.10.10)
Host is up (0.0000050s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
111/tcp open  rpcbind

Nmap done: 256 IP addresses (3 hosts up) scanned in 3.37 seconds

4.探测目标主机的服务和操作系统的版本

[root@k8s-master ~]# nmap -O -sV 192.168.10.10

Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:15 CST
Nmap scan report for k8s-master (192.168.10.10)
Host is up (0.000096s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 7.4 (protocol 2.0)
80/tcp  open  http    nginx 1.6.3
111/tcp open  rpcbind 2-4 (RPC #100000)
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.7 - 3.9
Network Distance: 0 hops

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.66 seconds

tcpdump:监听网络流量

一.功能说明
tcpdump命令是一个截获网络数据包的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来以提供分析。它支持针对网络层,协议,主机,端口等的过滤,并支持与,或,非逻辑语句协助过滤有效信息
二.参数选项说明

选项 说明
-c <数据包数目> 接收到指定的数据包数目后退出命令
-i<网络接口> 指定要监听数据包的网络接口
-n 不进行DNS解析,加快显示速度
-nn 不将协议和端口数字等转换成名字
-q 以快速输出的方式运行,此选项仅显示数据包的协议概要信息,输出信息较短

三.使用案例
1.不加任何参数运行tcpdump监听网络,将监视第一个网络接口上所有流过的数据包(可以指定参数 -i 监听指定网卡上收到的数据包)

[root@k8s-master ~]# tcpdump -i ens33
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
15:26:39.153988 IP k8s-master.ssh > 192.168.10.1.56207: Flags [P.], seq 311182213:311182401, ack 2647658138, win 254, length 188
15:26:39.154314 IP k8s-master.46736 > dns.google.domain: 58810+ PTR? 1.10.168.192.in-addr.arpa. (43)
15:26:39.154614 IP 192.168.10.1.56207 > k8s-master.ssh: Flags [.], ack 188, win 4104, length 0
15:26:39.198762 IP dns.google.domain > k8s-master.46736: 58810 NXDomain 0/0/0 (43)
.....
.....  ###此处省略掉一些内容
163 packets captured  ###当使用CTRL+C结束抓捕流量时,最后会显示出一共抓捕了多少包
163 packets received by filter
0 packets dropped by kernel

2.精简输出信息 -q选项

[root@k8s-master ~]# tcpdump -i ens33 -q
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
^C15:30:13.144435 IP k8s-master.ssh > 192.168.10.1.56207: tcp 188

1 packet captured
7 packets received by filter
0 packets dropped by kernel
###会有一定的包被过滤掉

3.监听指定主机的数据包(对IP数据包的源地址进行检测)

[root@k8s-master ~]# tcpdump -n -i ens33 host 192.168.10.1 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
15:32:20.742921 IP 192.168.10.10.ssh > 192.168.10.1.56207: Flags [P.], seq 312239901:312240089, ack 2647662106, win 254, length 188
15:32:20.743064 IP 192.168.10.10.ssh > 192.168.10.1.56207: Flags [P.], seq 188:360, ack 1, win 254, length 172
15:32:20.743136 IP 192.168.10.10.ssh > 192.168.10.1.56207: Flags [P.], seq 360:508, ack 1, win 254, length 148

4.监听指定端口的数据包

[root@k8s-master ~]# tcpdump -nn -i ens33  port 22 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
15:34:46.448924 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 313054325:313054513, ack 2647667642, win 254, length 188
15:34:46.449130 IP 192.168.10.1.56207 > 192.168.10.10.22: Flags [.], ack 188, win 4104, length 0
15:34:46.449231 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 188:360, ack 1, win 254, length 172
15:34:46.449299 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 360:604, ack 1, win 254, length 244
15:34:46.449448 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 604:752, ack 1, win 254, length 148

5.多个过滤条件混合使用

[root@k8s-master ~]# tcpdump -n  -i ens33  host 192.168.10.10 and ! 192.168.10.1
###获取主机192.168.10.10与除了192.168.10.1之间的所有通信的IP数据包
发布了24 篇原创文章 · 获赞 10 · 访问量 2363

猜你喜欢

转载自blog.csdn.net/flat0809/article/details/103148690