网络运维
网络问题排查
网络模型
数据传输路径
排查问题路径-自下而上
链路层
-
网线是否正常
# ethtool ens33
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
-
网卡状态
]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:23:a7:0a brd ff:ff:ff:ff:ff:ff
inet 192.168.74.130/24 brd 192.168.74.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::ae29:4ab5:ecb8:118d/64 scope link noprefixroute
valid_lft forever preferred_lft forever
或者检查网卡是否正常工作: ifconfig ethN
* 基于Debian的Linux的(永久)网络配置文件在/etc/network/interfaces,
* 基于Red Hat的Linux的(永久)网络配置文件在/etc/sysconfig/network_scripts/ifcfg-<interface>
网络层
- IP|NETMASK|GATEWAY
]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
UUID=bd385c8f-3c98-4afd-acc9-bc78f744bf16
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.74.130
NETMASK=255.255.255.0
GATEWAY=192.168.74.2
- DNS
- /etc/resolve.conf
- nsloop
- dig
检查dns例子
dig www.baidu.com
nslookup www.baidu.com
DNS配置文件/etc/resolv.conf ,也可以写在网络配置文件中(网络重启后会发现/etc/resolv.conf中的映射关系就是网络配置文件中DNS映射关系)
- 路由
- ip route
- route
注解:route -n和 ping配合使用
route -n 以IP而不是主机名的形式显示网关等信息,一方面更快,另一方面不涉及DNS,通过route命令查看内核路由,检验具体的网卡是否连接到目标网路的路由,之后就可以尝试ping 网关,排查与网关之间的连接。
如果无法ping通网关,可能是网关限制了ICMP数据包,或者交换机设置的问题
3. 是否可以正常路由到远程主机:traceroute
traceroute www.baidu.com
想要查看网络连接,最直接最常用的命令是ping,ping得通,说明路由工作正常,但是如果ping不通,traceroute命令可以查看从当前主机到目标主机的全部“跳”的过程。traceroute和ping命令都是使用ICMP协议包。
传输层
服务端口
- ss
- netstat
- nmap
- telnet
telnet 查看远程主机有没有开放某个端口
nmap 查看远程主机的端口号是否开放或者是被过略(防火墙屏蔽)
telnet 220.181.111.188 80
nmap -p 80 220.181.111.188
本机查看监听端口netstat -lnp | grep :PORT 或者 lsof -i:PORT
netstat常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
应用层
-
应用状态
- ps
- systemctl
- log日志
防火墙
Selinux:一般不会用到,如果有最好关掉,省心
getenforce、setenforce
网络较慢的排查
1. traceroute
前面提到的traceroute不仅可以查看路由的正确性,还可以查看网络中每一跳的延时,从而定位延时最高的网络区段。
2. iftop
iftop命令类似于top命令,查看哪些网络连接占用的带宽较多
3. tcpdump
当一切排查手段都无济于事时仍然不能找到网络速度慢、丢包严重等原因时,往往祭出杀手锏——抓包。抓包的最佳手段是在通信的双方同时抓取,这样可以同时检验发出的数据包和收到的数据包,tcpdump是常用的抓包工具。


浙公网安备 33010602011771号