‘’
1. ping命令
ping 最简单的功能就是传送 ICMP 数据包
[root@node-1 ~]# ping 192.168.31.19
PING 192.168.31.19 (192.168.31.19) 56(84) bytes of data.
64 bytes from 192.168.31.19: icmp_seq=1 ttl=64 time=0.201 ms
64 bytes from 192.168.31.19: icmp_seq=2 ttl=64 time=0.200 ms
64 bytes from 192.168.31.19: icmp_seq=3 ttl=64 time=0.177 ms
64 bytes from 192.168.31.19: icmp_seq=4 ttl=64 time=0.209 ms
64 bytes from 192.168.31.19: icmp_seq=5 ttl=64 time=0.190 ms
^C
--- 192.168.31.19 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.177/0.195/0.209/0.016 ms
-
64 bytes:表示这次传送的 ICMP 数据包大小为 64 bytes 这么大,这是默认值, 在某些特殊场合中,例如要搜索整个网络内最大的 MTU 时,可以使用 -s 2000 之类的数值来取代
-
icmp_seq=1:ICMP 所侦测进行的次数,第一次编号为 1
-
ttl=49:TTL 与 IP 数据包内的 TTL 是相同的,每经过一个带有 MAC 的节点时,例如 router、bridge 时, TTL 就会减少一,预设的 TTL 为 255 , 你可以通过 -t 150 之类的方法来重新设定预设 TTL 数值
-
time=0.209 ms:响应时间,单位有 ms(0.001秒)及 us(0.000001秒), 一般来说,越小的响应时间,表示两部主机之间的网络联机越良好.
2. traceroute
跟踪主机之间的网络路径情况
$ traceroute to 114.114.114.114 (114.114.114.114), 30 hops max, 60 byte packets
1 XiaoQiang (192.168.31.1) 3.873 ms 3.717 ms 3.609 ms
2 192.168.1.1 (192.168.1.1) 3.547 ms 3.515 ms 3.489 ms
3 172.16.64.1 (172.16.64.1) 15.171 ms 15.145 ms 15.112 ms
4 183.233.109.157 (183.233.109.157) 10.108 ms 10.079 ms 10.047 ms
5 221.179.3.240 (221.179.3.240) 14.984 ms 21.735 ms 18.334 ms
6 221.183.39.149 (221.183.39.149) 14.872 ms 10.394 ms 10.325 ms
7 221.183.41.42 (221.183.41.42) 40.900 ms * 40.832 ms
3. ip命令
通过 ip add区查看主机的ip信息情况,检查网卡状态、IP地址,网络位、MAC地址、MTU是否正确
[root@node-1 ~]# ip add
1: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:74:a2:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.31.250/24 brd 192.168.31.255 scope global noprefixroute dynamic ens33
valid_lft 92163sec preferred_lft 92163sec
inet6 fe80::20c:29ff:fe74:a2d2/64 scope link
valid_lft forever preferred_lft forever
通过 ip route 去看主机路由情况,多网卡情况下,检查默认路由是否正确,静态路由是否正确
[root@node-1 ~]# ip route
default via 192.168.31.1 dev ens33 proto dhcp metric 100
192.168.31.0/24 dev ens33 proto kernel scope link src 192.168.31.250 metric 100
通过ip route get 查看地址192.168.31.19走的是哪条路由出去
[root@node-1 ~]# ip route get 192.168.31.19
192.168.31.19 dev ens33 src 192.168.31.250
cache
4. telnet命令
telnet命令通常用来远程登录,我们可以利用它来检查目的服务器网络端口情况
[root@node-1 ~]# telnet 192.168.31.250 22
Trying 192.168.31.250...
Connected to 192.168.31.250.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
4. ss命令
通过ss命令查询一下自己的网络接口所监听的端口 (port) 来看看是否真的有启动
[root@node-1 ~]# ss -ntlpu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:68 *:* users:(("dhclient",pid=913,fd=6))
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=1094,fd=3))
tcp LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1319,fd=13))
tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1094,fd=4))
tcp LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1319,fd=14))
stat:状态栏,主要的状态含有:
-
ESTABLISED:已建立联机的状态
-
SYN_SENT:发出主动联机 (SYN 标志) 的联机数据包
-
SYN_RECV:接收到一个要求联机的主动联机数据包
-
FIN_WAIT1:该插槽服务(socket)已中断,该联机正在断线当中
-
FIN_WAIT2:该联机已挂断,但正在等待对方主机响应断线确认的数据包
-
TIME_WAIT:该联机已挂断,但 socket 还在网络上等待结束
-
LISTEN:通常用在服务的监听 port
5. nslookup
nslookup用来作为 IP 与主机名对应的检查, 使用 /etc/resolv.conf 这个文件来作为 DNS 服务器的来源选择。
[root@node-1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.31.1
[root@node-1 ~]#
[root@node-1 ~]# nslookup baidu.com
Server: 192.168.31.1
Address: 192.168.31.1#53
Non-authoritative answer:
Name: baidu.com
Address: 110.242.68.66
Name: baidu.com
Address: 39.156.66.10
tcpdump
在云生产环境,虚拟机通常遇到网络不通,可通过tcpdump or ovs-tcpdump工具进行抓包判断ip在哪个节点处于网络不可达。
# 抓取ens33的包
$ tcpdump -i ens33 [arp or icmp] host [vm_ip or vm_gateway] -nne
# 抓取ovs br-int的包
$ ovs-tcpdum -i br-int [arp or icmp] host [vm_ip or vm_gateway] -nne
# 抓取ens33的[in or out]的包
$ tcpdump -i ens33 [arp or icmp] host [vm_ip or vm_gateway] -Q [in or out] -nne
# 抓取ens33 的vxlan包
$ tcpdump -i ens33 dst 172.18.70.72(目的pod物理业务网卡IP) and udp