背景:在裸金属开通过程中,会碰到长时间卡住的问题,此时在底层查询发现是卡在业务网vlan切换的过程上,而网关是配置在交换机上的,若长时间未切换,就是vnet控制器(cnp,vnet控制面)下发有问题。如果vlan切到业务vlan,到网关不通,vnet数据面看bmgw是不是有问题(使用tcpdump命令)。使用各种工具和命令可以帮助我们识别问题,定位瓶颈。以下是一些常用的网络排查命令的详细介绍:
1. nc(Netcat)
- 功能:nc(Netcat)是一款功能非常强大的网络工具,可以用于读写网络连接,测试端口连通性以及传输数据。
- 常用用途:
- 测试端口连通性:通过TCP/UDP协议来测试远程主机指定端口是否开放。
nc -zv <目标主机> <端口号>
- 建立端口监听:可以在指定端口监听连接请求。
nc -l -p <端口号>
- 传输数据:可以将文件通过TCP或UDP传输。
cat file.txt | nc <目标主机> <端口号>nc成功的回显如图所示:
- 测试端口连通性:通过TCP/UDP协议来测试远程主机指定端口是否开放。
2. telnet
- 功能:telnet是一个用于在网络上进行文本通信的协议和工具,主要用于远程登录,但是在网络排查中常用于测试端口连通性。
- 常用用途:
-
测试端口连通性:与远程服务器的某个端口建立连接,用于测试端口是否开放。
telnet <目标主机> <端口号>如果连接成功,则证明端口开放,若失败则证明端口不可达或被防火墙阻挡。
-
区别:与nc相比,telnet更多用于交互式的文本通信,且只支持TCP协议。而nc则支持更多的功能,包括TCP和UDP传输。
-
3. ntpdate
- 功能:ntpdate用于同步服务器时间。通常用于在裸金属服务器或虚拟机中确保服务器的时钟与NTP(网络时间协议)服务器保持一致。
- 常用用途:
-
手动同步时间:
ntpdate <NTP服务器地址>这条命令将本地系统的时间与ntp1.aliyun.com服务器上的时间同步。
-
注意:ntpdate会与NTP服务器进行通信,确保系统时钟的准确性。这对于某些依赖准确时间的网络排查至关重要(如SSL/TLS验证等)。
-
4. ip r (ip route)
- 功能:ip r(或ip route)用于查看和配置系统的路由表,帮助我们了解数据包将通过哪条路径发送到目的地。
- 常用用途:
- 查看当前路由表:
ip r / ip route这将显示当前系统的路由表,帮助判断网络数据包的去向,查看默认网关等。
- 增加/删除路由:
- 添加一条路由:
ip route add <网络> via <网关>
- 删除一条路由:
- 添加一条路由:
- 区别:ip r与前述命令不同,它更多用于查看和管理系统的路由表信息,与网络连通性测试不同,它用于理解数据包传输的路径以及数据转发的逻辑。
- 查看当前路由表:
5. ping
- 功能:ping用于测试目标主机是否可达,基于ICMP协议。有时可以找客户协调一台服务器进行长ping验证盯屏
- 常用用途:
- 测试网络连通性:
ping <目标主机ip>
- 测试网络连通性:
6. traceroute
- 功能:traceroute用于追踪网络数据包的路由路径,帮助定位网络故障点。
- 常用用途:
- 追踪路由跳点:
traceroute <目标主机>
- 追踪路由跳点:
7. mtr(My traceroute)
- 功能:mtr结合了ping和traceroute的功能,提供更实时的路由追踪分析。
- 常用用途:
- 实时追踪并测试网络路径:
mtr <目标主机>
- 实时追踪并测试网络路径:
8. ss
- 功能:ss用于显示当前的网络连接信息,比netstat更高效。
- 常用用途:
- 查看网络连接:
ss -tuln
- 查看网络连接:
9. arp
- 功能:arp用于显示和操作系统的ARP(地址解析协议)表。
- 常用用途:
- 查看ARP缓存表:
arp -a
- 查看ARP缓存表:
- nc 和 telnet:都可以用于测试远程主机端口的连通性,但nc功能更强大,支持TCP和UDP,而telnet通常只用于TCP协议。
- ntpdate:与其他网络工具不同,它用于同步时间,确保系统时间的准确性,而不是直接进行网络连通性测试。
- ip r:用于查看和配置路由表,更多侧重于数据包传输的路径和路由,而不是测试连通性。
- ping、traceroute 和 mtr:都用于测试网络连通性和路径,但ping简单测试可达性,traceroute展示路由跳点,mtr则是动态结合两者。
这些工具通常组合使用,帮助排查网络问题,从最基础的连通性检查到复杂的路径分析和时间同步,最终打通内网或者外网通道,便于云上便捷的资源访问。