linux网络排查命令 linux网络排错常用命令( 二 )


-c 秒数:指定每隔几秒刷新一次网络状态
-n:使用IP地址和端口号显示,不是用域名和服务名
-p:显示PID和程序名
-t:显示使用TCP协议端口的链接状况
-u:显示使用UDP协议端口的链接状况
-l:加显示监听状态的链接
-r:显示路由表
“tuln”选项:查看本机开启的端口,只能查看监听状态的链接 。
1) Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议 。
2) Recv-Q:表示接收到的数据,已经在本地的缓冲中 , 但是还没有被进程取走 。
3) Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,不具备 ACK 标志的数据包 。
4) Local Address:本机的 IP 地址和端口号 。
5) ForeignAddress:远程主机的 IP 地址和端口号 。
6) State:状态 。常见的状态主要有以下几种 。
-LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听 。
-ESTABLISHED:已经建立连接的状态 。如果使用"-I"选项,则看不到已经建立连接的状态 。
-SYN_SENT:SYN 发起包,就是主动发起连接的数据包 。
-SYN_RECV:接收到主动连接的数据包 。
-FIN_WAIT1:正在中断的连接 。
-FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认 。
-TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束 。
-CLOSED:套接字没有被使用 。
最常用的是LISTEN和ESTABLISHED
10.numtui
语法:numtui
功能:配置网络——centos7独有的功能
11.mount
语法:mount [-t 文件系统] 设备文件名 挂载点
功能:挂载外接设备
浅谈Linux网络故障的解决办法 浅谈Linux网络故障的解决办法
Linux继承了Unix以网络为核心的设计思想 , 是一个性能稳定的多用户网络操作系统 。我告诉大家,Linux网络故障排除应当遵循先硬件后软件的方法 。因为硬件如果出现物理损坏那么如何设定网络都不能解决故障 。解决问题的方法可以从自身Linux计算机的网卡查起,然后到服务器、集线器、路由器等硬件 。如果确定硬件没有问题了,再来考虑软件的设定 。
1、检查网卡工作状况
(1)使用cat /proc/modules查看网卡的模块是否已被加载,驱动硬件是操作系统最基本的功能 , 操作系统通过各种驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMs Loadable Kernel Modules),就是将最基本的核心代码编译在内核中,而我们常见的驱动程序就是作为内核模块动态加载的,比如网卡驱动 。Windows系统中我们一般“控制面板”的“设备管理器”查看硬件列表,在Linux中可以在命令行下输入:cat /proc/modules 即可显示Linux系统检测到的所有硬件设备 。运行cat /proc/modules需要超级用户的权限,你可以使用su命令实现 。
我Linux计算机中两块网卡模块:NE2000和8139已经加载 。如果没有检测到硬件,用硬件检测程序Kuduz检测网卡,它和Windows中添加新硬件差不多 。kudzu程序是通过查看/usr/share/hwdata/目录下的文件识别各种硬件设备的 。如果核心支持该硬件,并且有该驱动程序就可自动装载 。首先说明的是Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.比如我的Top link网卡,就不存在Linux的驱动,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的驱动程序之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等.这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了 。对于ISA接口的NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.很多现在的网卡缺省都是PnP模式,这在Windows下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该程序将网卡设为 Jumpless 。对于PCI网卡,可以使用如下命令来查看:less/proc/pci 。在显示的列表中找到“Ethernet Controller”,记下厂商和型号 。然后使用modprobe尝试加载正确的模块,比如modprobe 3c509 。如果出现错误,说明该模块不存在 。这时候你应该找到正确的模块并且重新编译 。如果显示说该设备不存在 , 那也是因为没有正确的模块 。找到正确的模块 , 并且编译,问题一般即可解决 。

推荐阅读