本文主要是介绍linux网络问题排查必须要懂的命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
‘’
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 packets1 XiaoQiang (192.168.31.1) 3.873 ms 3.717 ms 3.609 ms2 192.168.1.1 (192.168.1.1) 3.547 ms 3.515 ms 3.489 ms3 172.16.64.1 (172.16.64.1) 15.171 ms 15.145 ms 15.112 ms4 183.233.109.157 (183.233.109.157) 10.108 ms 10.079 ms 10.047 ms5 221.179.3.240 (221.179.3.240) 14.984 ms 21.735 ms 18.334 ms6 221.183.39.149 (221.183.39.149) 14.872 ms 10.394 ms 10.325 ms7 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 1000link/ether 00:0c:29:74:a2:d2 brd ff:ff:ff:ff:ff:ffinet 192.168.31.250/24 brd 192.168.31.255 scope global noprefixroute dynamic ens33valid_lft 92163sec preferred_lft 92163secinet6 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#53Non-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
这篇关于linux网络问题排查必须要懂的命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!