网络是运维中非常重要的一环,所以笔者就把比较常见的与网络相关的命令及一些技巧总结一下
首先我们将我们常常要得到的网络状况和命令简单的做一个对照,下面将会有对命令详细的介绍
效果 | 命令 |
---|---|
查看本机网口信息 | 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数据包