Linux网络异常排查思路与方法

Linux网络异常排查思路与方法,第1张

处理问题时必定不能盲狙,将所有解决办法都试上一遍。这生产环境中,解决出现的问题是最优先的事情,当然前提是这问题会影响用户的使用或即将影响到的。

处理每个问题必然可按具体问题进行分类,根据每一类按对应的解决思路来执行。

但像处理一个网络问题的时候,上至系统防火墙的配置、下至硬件故障。如果处理一个问题都按固定流程来进行的话,那必然效率将非常低下。下为处理网络故障的一般流程。

1、网络硬件问题检查。                     (机率较低)

2、检查网卡能否正常工作。            (较高、主要表现为人为配置错误)

3、检查局域网之间联机是否正常。(非常高)

4、检查DNS是否设定正确。            (较低)

5、服务是否正常打开。                     (低)

6、检查访问权限是否打开。            (较高)

假如从1至6是标准的处理网络问题的流程,这样的处理方式效率低下。处理问题可以有整体的流程,但是实际 *** 作中可先对出现机率更高的步骤进行检查、或采取2分法缩小产生问题的范围,虽然上述较的两个方法不一定对所有问题都试用,但对于大多数的网络问题来说处理效率有者显著的提升。

个人总结的情况如下。

1、lsmod | grep ip            查看相关的网卡模块是否已加载

2、ifconfig -a                    能使用该命令查找到对应网卡配置信息,则说明网卡驱动程序正常

3、使用ping命令、依次ping自己、ping局域网主机、ping网关

        ping自己异常,问题:服务异常、网卡配置未生效

        ping局域网主机异常,问题:配置文件有误、网卡配置未生效、网线损坏

        ping网关异常,问题:配置文件有误、网卡配置未生效

4、当前3步还不能正常上外网的话。所有route查看默认路由表。

        处理方法:删除不必要的路由信息,并保证默认路由是从对应网关地址出去的。

5、临时停止iptables服务、SELinux服务、NetworkManager服务

6、如能上网但访问域名有异常时,那将需要检查/etc/hosts、/etc/resolv.conf两个配置

7、假如以上6步检查完毕之后,还发现不能上网。有如下可能。

        7.1、主机MAC地址被路由器禁止上网

        7.2、外网服务异常。如宽带账号欠费、光纤被挖断等物理攻击。

一、ifconfig

自ubuntu17起,已经不提供这个命令了,要自动安装

sudo apt install net-tools

ifconfig -a :查看当前系统所有的网络接口

ifconfig interface(PS:这里是网络接口的名称) down:禁用当前网络接口

ifconfig interface up :启用网络接口

二、ip命令

1、管理网络接口

1)、ip link list 显示网络设备的运行状态

2)、ip -s link list 显示更详细的网络设备运行状态

4)、ip link set dev ens33 mtu 1600: 改变网络设备最大传输单元 MTU的值为1600

2、管理ip地址

1)、ip a show dev ens33 显示指定网络接口的ip

2)、ip addr ls ens33

5)、ip -4 addr flush ens33

通过id修改的ip地址重启后会消失。如果要永久保存,则需要修改配置文件

3、管理路由表

1)、ip route show 显示main 路由表的路由信息

每行定义一个路由表,前面的数字为路由编号,后面为路由名称

以上的几个路由表为默认路由表,用户不可以修改

默认所有的路由表都会被插入到254的main表中。在进行路由查询时,内核只使用路由表main

3)、ip route show table local 指定显示路由表

4、管理策略路由

1)、ip route list 列出当前系统的策略路由规则

2、添加一条到达网络224.0.0.0/28的路由

route add -net 224.0.0.0/28 netmask 224.0.0.0 dev docker0

3、删除指定的路由记录224.0.0.0

route del -net 224.0.0.0 netmask 224.0.0.0

route -n 查看路由

5、删除默认网关

route del default gw 172.17.0.0 dev docker0

route -n

四、netstat命令

1、netstat(network status) 查看各种网络信息的,包括网络连接、路由表以及网络接口的各种统计数据

netstat [options]

常用的几个选项:

-a :显示所有处于活动状态的套接字

-t :显示TCP/IP协议的连接信息

-l:列出所有处于监听状态的套接字

-n:直接显示ip地址,不转换成域名

-i :列出所有的网络接口

-p:显示使用套接字的进程id和程序名

-r:显示路由表信息

2、netstat -a

显示所有的端口,包含未监听的和监听的

3、nestat -at

只显示TCP/IP协议的连接

4、netstat -tl

只显示处于监听状态的TCP连接

5、netstat -tlanx

显示数字形式的ip地址

6、netstat -anp | grep ":80"

排查处于某个端口被占用导致服务器无法启动

7、netstat -i

列出当前系统的所有网络接口

8、netstat -r

查看路由表信息

该命令是向某台主机( www.baidu.com )发送ICMP数据包,并接收响应

Ctrl+C退出ping 命令

linux nc命令查看端口通不通:当某个服务不能访问,首先要查看服务的端口是否能够访问。如何查看服务器的端口是否处在监听状态,并能被client端访问。服务器网络是否联通,端口有没有ip策略封封掉。

nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

参数说明:

-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。

-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。

-h 在线帮助。

-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。

-l 使用监听模式,管控传入的资料。

-n 直接使用IP地址,而不通过域名服务器。

-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。

-p<通信端口> 设置本地主机使用的通信端口。

-r 乱数指定本地与远端主机的通信端口。

-s<来源位址> 设置本地主机送出数据包的IP地址。

-u 使用UDP传输协议。

-v 显示指令执行过程。

-w<超时秒数> 设置等待连线的时间。

-z 使用0输入/输出模式,只在扫描通信端口时使用。

使用:

#nc -v -z -w 2 10.0.0.1 1-1000 (扫描10.0.0.1 的1-1000端口)

#nc -v -z -w 2 10.0.0.1 80 (扫描10.0.0.1 的80端口)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7553175.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存