TencentOS Server 网络诊断指南

在 Linux 中,可使用 ping 命令测试网络连接。该命令向指定 IP 地址或域名发送 ICMP 请求,并显示响应时间与丢包率等信息。以测试与 www.example.com 的网络连接为例。

相关产品
TencentOS Server 产品页,含版本规格、价格与购买入口。

一、使用 ping 命令测试网络连接

ping www.tencent.com

·网络连接正常时,输出示例如下:

PING www.tencent.com.eo.dnse5.com (61.170.66.121) 56(84) bytes of data.64 bytes from 61.170.66.121 (61.170.66.121): icmp_seq=1 ttl=50 time=10.3 ms64 bytes from 61.170.66.121 (61.170.66.121): icmp_seq=2 ttl=50 time=10.1 ms64 bytes from 61.170.66.121 (61.170.66.121): icmp_seq=3 ttl=50 time=9.77 ms64 bytes from 61.170.66.121 (61.170.66.121): icmp_seq=4 ttl=50 time=10.1 ms…

·网络连接异常时,输出示例如下:

ping: www.example.com: Name or service not known

或者:

ping: connect: Network is unreachable

二、使用 traceroute 命令跟踪网络路径

在 Linux 中,可使用 traceroute 命令跟踪网络路径。该命令显示从本地主机到目标主机的网络路径,以及每个路由器的 IP 地址与响应时间等信息。以跟踪到 www.example.com 的网络路径为例:

traceroute www.example.com

·网络连接正常时,输出示例如下:

traceroute to www.example.com (172.217.6.196), 30 hops max, 60 byte packets 1 gateway (192.168.1.1) 1.000 ms 1.000 ms 1.000 ms 2 10.10.10.1 (10.10.10.1) 10.000 ms 10.000 ms 10.000 ms 3 172.16.1.1 (172.16.1.1) 20.000 ms 20.000 ms 20.000 ms 4 172.16.2.1 (172.16.2.1) 30.000 ms 30.000 ms 30.000 ms 5 172.16.3.1 (172.16.3.1) 40.000 ms 40.000 ms 40.000 ms 6 172.16.4.1 (172.16.4.1) 50.000 ms 50.000 ms 50.000 ms……

·网络连接异常时,输出示例如下:

traceroute to www.example.com (172.217.6.196), 30 hops max, 60 byte packets1 gateway (192.168.1.1) 1.000 ms 1.000 ms 1.000 ms2 * * *3 * * *4 * * *5 * * *

三、使用 netstat 命令查看网络连接状态

在 Linux 中,可使用 netstat 命令查看网络连接状态。该命令显示当前系统中的网络连接信息,包括本地 IP 地址、远程 IP 地址与连接状态等。以显示当前系统中的网络连接信息为例:

netstat -a

·网络连接正常时,输出示例如下:

Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.1.100:22 192.168.1.101:12345 ESTABLISHED tcp 0 0 192.168.1.100:22 192.168.1.102:54321 ESTABLISHED …

·网络连接异常时,输出示例如下:

Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 1 192.168.1.100:22 192.168.1.101:12345 SYN_SENT tcp 0 0 192.168.1.100:22 192.168.1.102:54321 CLOSE_WAIT …

注意:说明:

四、使用 ss 命令查看网络连接状态

ss(socket statistics,套接字统计)是 Linux 系统下的网络连接监控与调试工具。与传统的 netstat 命令相比,ss 在性能和信息展示方面更具优势。

常用命令如下:

·显示所有当前连接:

ssNetid State Recv-Q Send-Q Local Address:Port Peer Address:Port Processu_str ESTAB 0 0 /run/systemd/journal/stdout 25077 * 24218u_str ESTAB 0 0 * 20557 * 592u_dgr ESTAB 0 0 * 23602 * 13633……

·显示所有 TCP 连接:

ss -t

·显示所有 UDP 连接:

ss -u

·显示所有监听中的套接字:

ss -l

·显示所有已建立(ESTABLISHED)的连接:

ss -t state established

·按多个状态过滤(例如:已建立且正在关闭的连接):

ss -t state established state closing

·显示进程信息。如需查看使用套接字的对应进程,请使用 -p 选项:

ss -t -p

·显示更多详细信息,使用 -e 选项显示扩展信息(例如滑动窗口大小、丢包统计等):

ss -t -e

·显示套接字摘要统计信息,使用 -s 选项显示套接字摘要统计信息,如 TCP/UDP/RAW 以及连接数量等:

ss -s

·结合常用过滤器,如需查看特定端口的连接情况,可结合 grep 命令进行过滤。以查看端口 80 上的所有连接为例:

ss -t -a | grep ':80'

在日常网络监控与故障排查中,可根据实际需求灵活组合各选项。如需查看完整的选项列表及详细说明,请参考 ss 命令的手册页(man page)。

五、使用 ethtool 查询和控制网络设备驱动和硬件设置

ethtool 是一个用于查询和控制网络设备驱动和硬件设置的实用工具。若系统未安装 ethtool,请执行以下命令安装该软件包。

dnf install ethtool

以下介绍在其他网络工具中不常见或无法被替代的 ethtool 的高级功能和硬件设置。

六、网络设备速度、双工模式和自动协商查询与设置

·查询网络设备速度、双工模式和自动协商查询与设置(以网卡 ens18 示例):

ethtool ens18 #以网卡 ens18 举例

输出示例:

Settings for ens18: …… Speed: 1000Mb/s Duplex: Full Auto-negotiation: on ……

·修改网络设备速度、双工模式和自动协商设置:

ethtool -s ens18 speed 100 duplex full autoneg off

七、流量控制设置

·查看网络设备的流量控制设置

ethtool -a ens18Pause parameters for eno1:Autonegotiate: onRX: offTX: off

·修改网络的流量控制设置:

ethtool -A ens18 rx on tx off

八、Wake-on-LAN 功能设置

·查询网络设备的 Wake-on-LAN 功能:

ethtool ens18

输出示例:

Settings for ens18: …… Wake-on: g …..

·开启网络设备的 Wake-on-LAN 功能:

ethtool -s ens18 wol g

·关闭网络设备的 Wake-on-LAN 功能:

ethtool -s ens18 wol d

九、网络设备的硬件特性

·查看网络设备的硬件特性:

ethtool -k ens18

输出示例:

Features for ens18:rx-checksumming: ontx-checksumming: on tx-checksum-ipv4: off [fixed] tx-checksum-ip-generic: on tx-checksum-ipv6: off [fixed]……

·更改网络设备的硬件特性,如启用通用接收分散,通用分组传输:

ethtool -K ens18 tso on gso on

十、网络设备的统计信息

查看网络设备的统计信息:

ethtool -S ens18

输出示例:

NIC statistics: rx_packets: 399566 tx_packets: 257685 rx_bytes: 215936573 tx_bytes: 55115699 rx_broadcast: 9854 tx_broadcast: 92 ……

十一、网络设备自检

执行网络设备的自检:

ethtool -t ens18

输出示例:

The test result is PASSThe test extra info:Register test (offline) 0Eeprom test (offline) 0Interrupt test (offline) 0Loopback test (offline) 0Link test (on/offline) 0

如果自检中出现故障,可以根据显示的错误信息检查相应的驱动程序、固件和硬件,以便解决问题。

十二、使用 tcpdump 命令诊断网络问题

tcpdump 是一款功能强大的网络抓包工具,可用于捕获网络数据包并显示其内容。以下为 tcpdump 的常用使用示例:

十三、按目标主机捕获数据包

使用以下命令捕获特定目标主机的数据包:

tcpdump -i eth0 host www.example.com

其中, -i 参数指定要捕获的网络接口, host 参数指定要捕获的目标主机。

·网络连接正常时,输出示例如下:

tcpdump -i eth0 src host 192.168.1.100 and dst host www.example.com

输出示例:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes14:23:45.678901 IP 192.168.1.100.12345 > 93.184.216.34.80: Flags [S], seq 123456789, win 65535, options [mss 1460,nop,nop,sackOK], length 014:23:45.789012 IP 93.184.216.34.80 > 192.168.1.100.12345: Flags [S.], seq 987654321, ack 123456790, win 65535, options [mss 1460,nop,nop,sackOK], length 014:23:45.890123 IP 192.168.1.100.12345 > 93.184.216.34.80: Flags [.], ack 1, win 65535, length 014:23:45.901234 IP 192.168.1.100.12345 > 93.184.216.34.80: Flags [P.], seq 1:101, ack 1, win 65535, length 10014:23:46.012345 IP 93.184.216.34.80 > 192.168.1.100.12345: Flags [.], ack 101, win 65535, length 0…

·网络连接异常时,输出示例如下:

tcpdump -i eth0 src host 192.168.1.100 and dst host www.example.com

输出示例:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes14:23:45.678901 IP 192.168.1.100.12345 > 93.184.216.34.80: Flags [S], seq 123456789, win 65535, options [mss 1460,nop,nop,sackOK], length 014:23:45.789012 IP 93.184.216.34.80 > 192.168.1.100.12345: Flags [R.], seq 0, ack 123456790, win 0, length 0

其中,R 标志表示连接被重置,这意味着网络连接存在问题。

十四、按网段捕获数据包

使用以下命令捕获指定网段的数据包:

tcpdump -i eth0 net 192.168.1.0/24

此命令将仅捕获通过 eth0 的 192.168.1.0/24 网络的数据包。

十五、按端口捕获数据包

使用以下命令捕获通过 eth0 的 HTTP(端口 80)流量:

tcpdump -i eth0 port 80

可以将 80 替换为要监视的其他端口号。

十六、按指定协议捕获数据包

使用以下命令捕获 icmp 协议的流量:

tcpdump -i eth0 'icmp'

可以将 icmp 替换为要监视的其他协议(如 tcp 或 udp)。

十七、指定协议和端口捕获 DNS 或 DHCP 数据包

DNS 通常使用 UDP 协议的 53 端口进行请求。要捕获 DNS 数据包,可以运行以下命令:

tcpdump -i eth0 'udp port 53'

DHCP 请求和响应通常使用 UDP 协议的 67 和 68 端口进行通信。如需捕获与 DHCP 相关的数据包,可执行以下命令:

tcpdump -i eth0 'udp port 67 or udp port 68'

十八、捕获 TCP 三次握手的数据包

可以使用以下命令捕获 TCP 三次握手(SYN、SYN-ACK、ACK)过程中的数据包:

tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'

该命令的-i 参数指定要捕获的网络接口为 eth0,过滤器部分 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0' 用于检测具有 “SYN” 和 “ACK” 标志的 TCP 数据包。

十九、限制捕获的数据包数量

使用 -c 参数指定要捕获的数据包数量:

tcpdump -i eth0 -c 10

此命令将仅捕获通过 eth0 的前 10 个数据包。

20、保存或读取数据包

将捕获的数据包保存到 .pcap 格式文件:

tcpdump -i eth0 -w output.pcap

从 .pcap 格式文件中读取数据包:

tcpdump -r output.pcap

21、检测 IP 和 MAC 地址冲突

IP 地址冲突指同一局域网内两个或多个设备被分配了相同的 IP 地址。该问题通常由以下原因引起:

·静态 IP 地址设置错误:当一个或多个设备静态指定了相同的 IP 地址时,会发生 IP 地址冲突。

·动态主机控制协议(DHCP)问题:例如多个 DHCP 服务器分配相同的地址。

IP 地址冲突会导致如下问题:

·影响设备之间的通信,出现连接问题和丢包现象。

·局域网中的两个设备无法同时访问网络。

·网络速度变慢、性能降低。

使用 arping 命令检测局域网中其他服务器的 IP 是否存在地址冲突:

arping -c 2 192.168.1.110

输出示例:

ARPING 192.168.1.11042 bytes from 02:99:96:xx:xx:xx (192.168.1.110): index=0 time=128.403 usec42 bytes from 62:10:6d:xx:xx:xx (192.168.1.110): index=1 time=168.765 usec

该命令向指定 IP 地址发送两个 ARP 请求(-c 2 指定发送 2 次)。若收到回复,则显示目标设备的 MAC 地址。通过观察响应结果,可判断是否存在多个 MAC 地址对应同一 IP 地址的情况。如上所示,192.168.1.110 对应两个不同的 MAC 地址,表明存在 IP 地址冲突。

如需检测当前服务器的某个网络接口的 IP 是否存在地址冲突,请使用如下命令:

arping -I ens18 -D 192.168.1.110

输出示例:

ARPING 192.168.1.110 from 0.0.0.0 ens18Unicast reply from 192.168.1.110 [02:99:96:xx:xx:xx] 0.803msSent 1 probes (1 broadcast(s))Received 1 response(s)

示例中,ens18 为待检测的网络接口,192.168.1.110 为待检测的 IP 地址。若响应中显示 1 response(s),表示有 1 个设备与该 IP 地址冲突,冲突设备的 MAC 地址为 02:99:96:xx:xx:xx。若返回 0 response(s),则表示无 IP 地址冲突。

22、ARP 老化和永久条目

ARP 老化时间决定 ARP 缓存中 IP 地址与 MAC 地址映射关系的保留时长。当 ARP 条目的存在时间超过老化时间后,系统将自动从 ARP 缓存中移除该条目,以清除无效或不活跃的地址映射,保持 ARP 缓存的有效性与稳定性。系统默认 ARP 老化时间为 60s。

sysctl net.ipv4.neigh.default.gc_stale_time

输出示例:

net.ipv4.neigh.default.gc_stale_time = 60

永久 ARP 条目由手动创建,不受 ARP 老化机制影响,不会被自动清除。该机制可为 IP 地址和 MAC 地址稳定不变的设备提供持久的地址映射,避免重复发送 ARP 请求获取相同映射。

在大多数场景下,默认的 ARP 老化设置即可满足网络需求。永久 ARP 条目应在特定场景下谨慎使用,且须确保对应设备的 IP 地址与 MAC 地址不会发生变化。

可使用以下命令查看当前的 ARP 缓存:

arp -n

输出示例:

Address HWtype HWaddress Flags Mask Iface192.168.1.111 ether 02:99:96:a7:27:43 CM ens18192.168.2.1 ether c2:fd:0b:bb:a6:9c C ens19192.168.1.1 ether 86:7a:1c:87:a8:35 C ens18192.168.2.111 ether 02:1e:16:7d:cc:50 C ens19

命令输出显示 IP 地址与 MAC 地址的映射关系及 ARP 条目状态。其中,Flags Mask 字段中 C 表示完全可用,M 表示正在使用的永久条目。

若发现 ARP 条目因错误配置为永久条目导致映射不正确,或需重新获取某个 IP 地址与 MAC 地址的映射关系,可使用以下命令删除该 ARP 条目:

sudo arp -d 192.168.1.111

其中,192.168.1.111 即从 ARP 缓存中删除的设备的 IP 地址。

如需创建永久条目, 可使用以下命令:

arp -s 192.168.1.111 02:99:96:xx:xx:xx

以上示例为 IP 地址 192.168.1.111 和 MAC 地址 02:99:96:xx:xx:xx 创建永久 ARP 条目。

创建完成后,可使用 arp -n 命令查看 ARP 缓存,该设备的条目标记为 M,表示永久条目。

赞 (0)
上一篇 4天前
下一篇 4天前