linux网络问题排查必须要懂的命令

2024-08-25 12:20

本文主要是介绍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网络问题排查必须要懂的命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105542

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField