博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中与网络相关的命令及常见用法
阅读量:2722 次
发布时间:2019-05-13

本文共 22684 字,大约阅读时间需要 75 分钟。


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


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

效果 命令
查看本机网口信息 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
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 0ens33: flags=4163
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 0lo: flags=73
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
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]# ifconfigens33: flags=4163
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 0ens33:0: flags=4163
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
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 ~]# routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         gateway         0.0.0.0         UG    100    0        0 ens33192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 docker0-------------------------------------------------[root@k8s-master ~]# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         192.168.10.2    0.0.0.0         UG    100    0        0 ens33192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33192.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:表示子网掩码地址,即netmaskFlags:路由标记信息 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 ~]# routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33192.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 tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         gateway         0.0.0.0         UG    0      0        0 ens33192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33192.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 ~]# routeKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         gateway         0.0.0.0         UG    0      0        0 ens3310.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 ens33192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33192.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.localroute 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 ~]# arpAddress                  HWtype  HWaddress           Flags Mask            Ifacegateway                  ether   00:50:56:f1:1a:ab   C                     ens33192.168.10.1             ether   00:50:56:c0:00:08   C                     ens33[root@k8s-master ~]# arp -nAddress                  HWtype  HWaddress           Flags Mask            Iface192.168.10.2             ether   00:50:56:f1:1a:ab   C                     ens33192.168.10.1             ether   00:50:56:c0:00:08   C                     ens33FLAG字段的C表示arp高速缓存中的条目,M表示静态配置的arp条目

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

[root@k8s-master ~]# arp -n 192.168.10.1Address                  HWtype  HWaddress           Flags Mask            Iface192.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 -nAddress                  HWtype  HWaddress           Flags Mask            Iface192.168.10.99            ether   00:50:56:c1:01:81   CM                    ens33192.168.10.2             ether   00:50:56:f1:1a:ab   C                     ens33192.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 -anActive 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      ESTABLISHEDtcp6       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   Pathunix  2      [ ACC ]     STREAM     LISTENING     39936    /run/gssproxy.sockunix  2      [ ]         DGRAM                    69923    /var/run/chrony/chronyd.sockunix  2      [ ACC ]     STREAM     LISTENING     88883    /var/run/docker.sockunix  2      [ ACC ]     STREAM     LISTENING     39935    /var/lib/gssproxy/default.sockunix  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 -lnutpActive 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 -rnKernel IP routing tableDestination     Gateway         Genmask         Flags   MSS Window  irtt Iface0.0.0.0         192.168.10.2    0.0.0.0         UG        0 0          0 ens33172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

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

[root@k8s-master ~]# netstat -iKernel Interface tableIface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flgdocker0          1500        0      0      0 0             0      0      0      0 BMUens33            1500      340      0      0 0           141      0      0      0 BMRUlo              65536       32      0      0 0            32      0      0      0 LRU

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

根据服务查找PID[root@k8s-master ~]# netstat -luntp | grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2040/nginx: master  或者使用ps[root@k8s-master ~]# ps -ef | grep nginxroot       2040      1  0 08:57 ?        00:00:00 nginx: master process /application/nginx-1.6.3/sbin/nginxnginx      2041   2040  0 08:57 ?        00:00:00 nginx: worker processroot       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 -anss -an | columt -t ###将上面的输出进行格式化,不然显示会有点乱

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

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

3.显示socket统计

[root@k8s-master ~]# ss -sTotal: 523 (kernel 1020)TCP:   6 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0Transport 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.comtraceroute 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.2ARPING 192.168.10.2 from 192.168.10.10 ens33Unicast reply from 192.168.10.2 [00:50:56:F1:1A:AB]  0.846msSent 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_bthis one is from [root@k8s-master test]# nc 192.168.10.10 12345 

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.8Address:	8.8.8.8#53Non-authoritative answer:www.baidu.com	canonical name = www.a.shifen.com.Name:	www.a.shifen.comAddress: 182.61.200.6Name:	www.a.shifen.comAddress: 182.61.200.7

2.非交互式查询

[root@k8s-master ~]# nslookup www.baidu.comServer:		8.8.8.8Address:	8.8.8.8#53Non-authoritative answer:www.baidu.com	canonical name = www.a.shifen.com.Name:	www.a.shifen.comAddress: 61.135.169.121Name:	www.a.shifen.comAddress: 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.10Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:08 CSTNmap scan report for k8s-master (192.168.10.10)Host is up (0.0000050s latency).Not shown: 997 closed portsPORT    STATE SERVICE22/tcp  open  ssh80/tcp  open  http111/tcp open  rpcbind

2.扫描主机的指定端口

[root@k8s-master ~]# nmap -p 1024-65535 192.168.10.10Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:12 CSTNmap 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 closedNmap done: 1 IP address (1 host up) scanned in 0.79 seconds

3.扫描局域网内所有IP

[root@k8s-master ~]# nmap 192.168.10.0/24Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:13 CSTNmap scan report for 192.168.10.1Host is up (0.00045s latency).Not shown: 993 closed portsPORT     STATE SERVICE135/tcp  open  msrpc139/tcp  open  netbios-ssn443/tcp  open  https445/tcp  open  microsoft-ds902/tcp  open  iss-realsecure912/tcp  open  apex-mesh5357/tcp open  wsdapiMAC Address: 00:50:56:C0:00:08 (VMware)Nmap scan report for 192.168.10.2Host is up (0.00035s latency).Not shown: 999 closed portsPORT   STATE SERVICE53/tcp open  domainMAC 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 portsPORT    STATE SERVICE22/tcp  open  ssh80/tcp  open  http111/tcp open  rpcbindNmap done: 256 IP addresses (3 hosts up) scanned in 3.37 seconds

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

[root@k8s-master ~]# nmap -O -sV 192.168.10.10Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-21 15:15 CSTNmap scan report for k8s-master (192.168.10.10)Host is up (0.000096s latency).Not shown: 997 closed portsPORT    STATE SERVICE VERSION22/tcp  open  ssh     OpenSSH 7.4 (protocol 2.0)80/tcp  open  http    nginx 1.6.3111/tcp open  rpcbind 2-4 (RPC #100000)Device type: general purposeRunning: Linux 3.XOS CPE: cpe:/o:linux:linux_kernel:3OS details: Linux 3.7 - 3.9Network Distance: 0 hopsOS 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 ens33tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes15:26:39.153988 IP k8s-master.ssh > 192.168.10.1.56207: Flags [P.], seq 311182213:311182401, ack 2647658138, win 254, length 18815: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 015: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 filter0 packets dropped by kernel

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

[root@k8s-master ~]# tcpdump -i ens33 -qtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes^C15:30:13.144435 IP k8s-master.ssh > 192.168.10.1.56207: tcp 1881 packet captured7 packets received by filter0 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 decodelistening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes15:32:20.742921 IP 192.168.10.10.ssh > 192.168.10.1.56207: Flags [P.], seq 312239901:312240089, ack 2647662106, win 254, length 18815:32:20.743064 IP 192.168.10.10.ssh > 192.168.10.1.56207: Flags [P.], seq 188:360, ack 1, win 254, length 17215: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 decodelistening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes15:34:46.448924 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 313054325:313054513, ack 2647667642, win 254, length 18815:34:46.449130 IP 192.168.10.1.56207 > 192.168.10.10.22: Flags [.], ack 188, win 4104, length 015:34:46.449231 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 188:360, ack 1, win 254, length 17215:34:46.449299 IP 192.168.10.10.22 > 192.168.10.1.56207: Flags [P.], seq 360:604, ack 1, win 254, length 24415: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数据包

转载地址:http://bwttd.baihongyu.com/

你可能感兴趣的文章
【转】How to check HBA host and its corresponding WWPN on RHEL 5, 6 or 7?
查看>>
【转】How can I check the port status of my fibre channel HBA?
查看>>
【转】rhel内核版本和HBA卡驱动版本之间的对应关系
查看>>
【转】How can I get firmware version of a Qlogic HBA card?
查看>>
大数据开发工程师面试主要面试哪些内容
查看>>
Java 抽象类是什么
查看>>
JavaScript中Nodejs中事件循环和js 事件循环差异
查看>>
什么是双亲委派模型?
查看>>
Vue的生命周期的钩子函数?
查看>>
hadoop中combiner的作用是什么?
查看>>
spark streaming和flink的区别
查看>>
Python环境下对于字符串排序的方式
查看>>
python-csv文件删除行或者删除列
查看>>
深度压缩技术总结
查看>>
服务器模型分析与验证
查看>>
新版 Microsoft Edge 将带来垂直标签和密码监视器
查看>>
MySQL 8.0来了,逆之者亡...
查看>>
在ASP.NET Core中使用的ML.NET模型构建器入门
查看>>
Windows 10 下一版本更新代号为“Manganese”
查看>>
使用VSTS为ASP.NET Core构建DevOps CI/CD管道
查看>>