|原因|说明|
|-|-|
|网络抖动或操作系统层面问题|请求到达但未完成会话三次握手,可能是网络抖动或者操作系统层面原因导致无法完成三次握手|
|网卡配置错误|网卡没有正确配置开启,例如基于Debian的Linux的(永久)网络配置文件在/etc/network/interfaces,基于Red Hat的Linux的(永久)网络配置文件在/etc/sysconfig/network_scripts/ifcfg
|网关设置问题|如果网卡已经正常启动,需要确认目标网络接口是否正确配置网关,同时主机和网关之间的连接没有问题。如果无法ping通网关,可能是网关限制了ICMP数据包,或者交换机设置的问题|
|DNS故障或配置不当|通常很多网络问题是DNS故障或配置不当造成的。如果nslookup命令无法解析目标域名,则很有可能是DNS配置不当。/etc/resolv.conf文件是临时即刻生效的DNS服务器配置,想要永久配置DNS服务器的地址,可以在/etc/networks/interfaces(基于Debian)中通过 “dns
|无法正常路由到远程主机|互联网是通过大量路由器中继连接起来的,网络的访问就是在这些节点间一跳一跳最终到达目的地。如果ping不通目标主机,traceroute命令可以查看从当前主机到目标主机的全部“跳”的过程,“”是因为网络不通或者某个网关限制了ICMP协议包|
|远程主机端口未开放|telnet命令是检查端口开放情况的利器,或者nmap工具。当防火墙存在时,telnet无法连接包含两种可能:1是端口确实没有开放,2是防火墙过滤了连接|
|网络硬件问题|如网线没有连接好,或者链路不通等。如果网卡处于down状态,尝试手动启动后,需要再次运行检查命令,如果仍然处于down状态,则说明是网络硬件问题|
|IP地址配置问题|如果网卡已经处于up状态,但仍无法上网,则需要查看网卡是否配置好ip地址。如果没有或者ip,就需要配置ip。如果是通过dhcp服务自动获取ip的,则可手动运行dhclint获取ip;如果无法获取ip,且网卡处于up状态,则可能是链路问题,无法连接远程DHCP服务器|
二、排查Linux网络不通的基本步骤
1. 检查网络连接状态
2. 检查网线和网卡设置
3. 检查IP地址和子网掩码设置
4. 检查网关和路由设置
5. 检查DNS设置
6. 检查防火墙设置
7. 使用网络诊断工具
三、使用命令行工具排查Linux网络不通
|命令|功能|示例|
|-|-|-|
|`ifconfig`|查看当前系统的网卡和IP地址信息|`ifconfig` 或 `ifconfig -s`(显示网卡信息的精简列表)|
|`ip`|查看和配置网络接口|`ip link ls eth0`(查看eth0网卡状态),`ip addr add 172.16.0.2/24 dev eth0`(添加IP地址到eth0网卡)|
|`ping`|测试网络连通性|`ping ip地址/域名`,如 `ping ` |
|`traceroute`|跟踪数据包从本机到目标主机所经过的路由器路径|`traceroute www.` |
|`netstat`|显示当前系统的网络连接状态、路由表、接口状态等信息|`netstat -tun`(显示所有TCP和UDP连接)|
|`ss`|显示当前系统所有的套接字信息|`ss -tnl`(显示所有TCP监听端口)|
|`arp`|显示和修改本地ARP缓存表中的内容|`arp -a`(显示所有ARP缓存表项)|
|`tcpdump`|捕获网络数据包并将其显示出来|`tcpdump -i eth0 port 80 -n -v -X`(捕获eth0网卡上80端口的数据包)|
|`nmap`|扫描目标主机上开放了哪些端口|`nmap -sS`(进行TCP SYN扫描)|
|`iptables`|控制Linux系统上所有流入和流出的数据包|`iptables -L`(列出所有iptables规则)|
|`dig`|DNS查询工具|`dig ` |
四、网络配置文件检查方法
1. 检查网卡配置文件
2. 检查DNS配置文件
五、硬件连接检查方法
1. 检查网线连接
2. 检查网卡状态
3. 检查网卡指示灯
4. 检查路由器或交换机
确保路由器或交换机工作正常,网络连接没有问题。可以尝试重启路由器或交换机。