1、网卡命名方式

自动化的前提是标准化、规范化

1.1 传统命名规则

第一块网卡eth0
第二块网卡eth1
第三块网卡eth2

1.2 网卡回归传统名

网卡回归传统名的步骤
1、修改网卡配置文件的名字并改其内容

[root@JLin ~]# cd /etc/sysconfig/network-scripts/
[root@JLin network-scripts]# mv ifcfg-ens160 ifcfg-eth0
[root@JLin network-scripts]# vim ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.122.133
NETMASK=255.255.255.0
GATEWAY=192.168.122.2
DNS1=114.114.114.114

2、编辑 /etc/default/grub,在rhgb前面加上net-ifnames=0 biosdevname=0

[root@JLin ~]# vim /etc/default/grub
vim /etc/default/grub.cof
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap ifnames=0 biosdevname rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

3、生成配置文件grub2-mkconfig -o /etc/grub2.cfg

[root@jlin ~]# grub2-mkconfig -o /etc/grub2.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-3c9ab33527ab4484b00377dadda9e5f5
Found initrd image: /boot/initramfs-0-rescue-3c9ab33527ab4484b00377dadda9e5f5.img
done

4、重启电脑

reboot

2、网络管理常用命令

2.1 ifconfig命令

ifconfig命令,查看当前处于活动状态的所有网络接口(网卡)的信息,也可以临时修改网络接口(网卡)的配置。

// 查看当前处于活动状态的所有网络接口
[root@jlin ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.23.180  netmask 255.255.255.0  broadcast 192.168.23.255
        inet6 fe80::a221:f87a:a500:8777  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1c:53:02  txqueuelen 1000  (Ethernet)
        RX packets 525408  bytes 758603438 (723.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 95578  bytes 10771294 (10.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8  bytes 696 (696.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 696 (696.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

// 仅查看ens33网卡状态
[root@jlin ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.23.180  netmask 255.255.255.0  broadcast 192.168.23.255
        inet6 fe80::a221:f87a:a500:8777  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1c:53:02  txqueuelen 1000  (Ethernet)
        RX packets 584234  bytes 843966148 (804.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 106566  bytes 12087228 (11.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

// 查看所有网卡状态信息,包括禁用和启用
[root@jlin ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.23.180  netmask 255.255.255.0  broadcast 192.168.23.255
        inet6 fe80::a221:f87a:a500:8777  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:1c:53:02  txqueuelen 1000  (Ethernet)
        RX packets 646259  bytes 929238178 (886.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 125543  bytes 14841119 (14.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8  bytes 696 (696.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 696 (696.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ifconfig输出结果

第一行网卡基本信息
<UP,BROADCAST,RUNNING,MULTICAST>

信息含义
UP表示该接口已启用
BROADCAST表示该接口支持广播
RUNNING表示接口在工作中
MULTICAST表示支持组播
MTU1500(最大传输单元):1500字节

第二行IPv4地址信息

信息含义
inet网卡的IP地址
netmaskIP地址掩码
broadcast广播地址

第三行IPv6地址信息

信息含义
inet6网卡的IPv6地址
prefixlenIPv6地址掩码长度
scopeid 0x20作用域,link表示仅该接口有效

第四行mac地址信息

信息含义
ether网卡接口的MAC地址
txqueuelen传输队列长度
(Ethernet)接口类型为Ethernet

第五、六行接收报文信息

信息含义
RX packets此接口正确接收数据包个数
bytes此接口正确接收数据包总字节数
RX errors接收时产生错误的数据包个数
dropped接收时丢弃的数据包个数
overruns接收时由于速度过快而丢失的数据包个数
frame接收时发生frame错误而丢失的数据包个数

第七、八行发送报文信息

|TX pakets|表示此接口正确发送的数据包个数|
|bytes|表示此接口正确发送的的数据包总字节数|
|TX errors|发送时产生错的数据包个数|
|dropped|发送时丢弃的数据包个数|
|overruns|发送时由于数据过快而丢失的数据包个数|
|carrier|发送时发生carrier错误而丢失的数据包个数|
|collisions|发送时冲突的数据包个数|

2.2 ip命令

ip命令,查看所有网络接口的信息,也可临时修改网卡配置

// 语法:ip [OPTIONS] OBJECT {COMMAND | help}
OBJECT:
	link 网络设备
	addr 协议地址(IPv4/IPv6)
	route 路由表

OPTIONS
	-s 查看详细信息

COMMAND
	show 显示信息
	set 设置
	add 添加
	del 删除

ip link show

// 查看网络设备属性
[root@jlin ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000

// 显示报文统计信息
[root@jlin ~]# ip -s link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    2592       32       0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    2592       32       0       0       0       0       
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:1c:53:02 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    977956     12484    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    4727743    21068    0       0       0       0 

ip link set 网卡名{up|down}

// 启用或禁用网络设备
[root@jlin ~]# ip link set lo down
[root@jlin ~]# ip link set lo up

ip addr show

// 查看网络接口协议地址(IPv4/IPv6)信息
[root@jlin ~]# ip addr show
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:1c:53:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.180/24 brd 192.168.23.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a221:f87a:a500:8777/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

ip addr show输出结果

信息含义
BROADCAST表示该接口支持广播
MULTICAST表示该接口支持多播
UP表示该网络接口已开启
LOWER_UP表示网络电缆已接入,设备已连接之网络
mtu最大传输单位(数据包大小)
qdisc prifo_fast用于数据包排队
state UP网络接口已开启
qlen传输长度
link/ether接口的MAC(硬件)地址
brdMAC广播地址
inetIPV4地址
brdIPv4广播地址
scope global允许所有人访问此ip地址
dynamic地址是动态分配的
valid_lft forever(永久)IPv4地址的有效使用期限
preferred_lft foreverIPv4地址的首选生存期
inet6IPv6地址
scope link仅在允许此设备上访问此ip地址
valid_lft foreverIPv6地址的有效使用期限
preferred_lft foreverIPv6的首选生存期

ip addr add ip地址 dev网卡名

// 给网卡添加IP地址
[root@jlin ~]# ip addr add 192.168.23.180/24 dev ens33
[root@jlin ~]# ip addr show
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:1c:53:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.180/24 brd 192.168.23.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a221:f87a:a500:8777/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

ip addr del ip地址 dev 网卡名

// 删除网卡的IP地址
[root@jlin ~]# ip addr del 192.168.23.180/24 dev ens33
[root@jlin ~]# ip addr show
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:1c:53:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.181/24 brd 192.168.23.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a221:f87a:a500:8777/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

ip route show

[root@jlin ~]# ip route show
default via 192.168.23.2 dev ens33 proto static metric 100 
192.168.23.0/24 dev ens33 proto kernel scope link src 192.168.23.180 metric 100 

ip route show输出结果

信息含义
default默认路由
via下一跳
dev网卡
proto路由协议
metric度量值
scope有效范围

ip route add 目的地址 via 下一跳 dev 网卡名

[root@jlin ~]# ip route add 192.168.23.0/24 dev 192.168.23.2 dev ens33
[root@jlin ~]# ip route show
default via 192.168.23.2 dev ens33 proto static metric 100 
192.168.23.0/24 dev ens33 proto kernel scope link src 192.168.23.180 metric 100 

ip route del 目的地址 dev 网卡名

[root@jlin ~]# ip route add 192.168.17.0/24 via 192.168.23.180 dev ens33
[root@jlin ~]# ip route show
default via 192.168.23.2 dev ens33 proto static metric 100 
192.168.17.0/24 via 192.168.23.180 dev ens33 
192.168.23.0/24 dev ens33 proto kernel scope link src 192.168.23.180 metric 100 

2.3 route命令

// 查看当前路由表
[root@jlin ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
192.168.23.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

// 以数字方式显示路由表
[root@jlin ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.23.2    0.0.0.0         UG    100    0        0 ens33
192.168.23.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

route命令输出结果

信息含义
Flags:Uup表示此路由启动状态
Flags:Hhost表示网关为以主机
Flags:Ggateway表示网络为一路由器
Flags:Rreinstate route使用动态路由重新初始化的路由
Flags:Ddynamically动态路由
Flags:Mmodified此路由已被修改
Flags:!表示此路由当前为关闭状态
Ref该路由的引用数
Use该路由被使用的次数
Iface接口,也是网卡

route命令添加或删除路由
route命令添加的路由是临时的,重启之后就会失效

// 语法:route add/del [-net或-host] 目的地址 gw 网关地址 dev 网卡名
-net	表示目的地址是一个网段
-host	表示目的地址是一个具体的ip

3、网络检测工具与故障排查

3.1 ping命令

ping命令测试与另一台主机是否可达

// ping命令常用选项:
-c 指定ping的次数
-i 指定ping包的发送时隔
-w 指定ping的时间

// ping 3次后退出
[root@jlin ~]# ping -c 3 www.jlin.red
PING www.jlin.red (116.62.111.221) 56(84) bytes of data.
64 bytes from localhost (116.62.111.221): icmp_seq=1 ttl=128 time=31.4 ms
64 bytes from localhost (116.62.111.221): icmp_seq=2 ttl=128 time=34.1 ms
64 bytes from localhost (116.62.111.221): icmp_seq=3 ttl=128 time=29.3 ms

--- www.jlin.red ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3067ms
rtt min/avg/max/mdev = 29.310/31.609/34.112/1.971 ms

// 每隔两秒ping一次,一共ping3次
[root@jlin ~]# ping -c 3 www.jlin.red
PING www.jlin.red (116.62.111.221) 56(84) bytes of data.
64 bytes from localhost (116.62.111.221): icmp_seq=1 ttl=128 time=31.4 ms
64 bytes from localhost (116.62.111.221): icmp_seq=2 ttl=128 time=34.1 ms
64 bytes from localhost (116.62.111.221): icmp_seq=3 ttl=128 time=29.3 ms

--- www.jlin.red ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3067ms
rtt min/avg/max/mdev = 29.310/31.609/34.112/1.971 ms

// 一共ping 3秒,3秒后退出
[root@jlin ~]# ping -w 3 www.jlin.red
PING www.jlin.red (116.62.111.221) 56(84) bytes of data.
64 bytes from 221.111.62.116.in-addr.arpa (116.62.111.221): icmp_seq=1 ttl=128 time=29.7 ms
64 bytes from 221.111.62.116.in-addr.arpa (116.62.111.221): icmp_seq=2 ttl=128 time=32.8 ms

--- www.jlin.red ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2035ms
rtt min/avg/max/mdev = 29.799/31.319/32.839/1.520 ms

3.2 host与nslookup

host和nslookup命令用于查询DNS记录

// host和nslookup命令需要安装
yum -y install bind-utils

// 使用host命令查询看DNS解析记录
[root@jlin ~]# host www.jlin.red
www.jlin.red has address 116.62.111.221

// 使用nslookup命令查询看DNS解析记录,nslookup命令可以看到查询DNS解析的流程
[root@jlin ~]# nslookup www.jlin.red
Server:         192.168.23.2
Address:        192.168.23.2#53

Non-authoritative answer:
Name:   www.jlin.red
Address: 116.62.111.221

7.3 traceroute命令
traceroute命令用于路由跟踪,检测网络故障出现的ISP运营商或是对端服务无法响应

// traceroute命令需要安装
yum -y install traceroute

// traceroute命令只追踪内网路由
[root@jlin ~]# traceroute www.jlin.red
traceroute to www.jlin.red (116.62.111.221), 30 hops max, 60 byte packets
 1  gateway (192.168.23.2)  0.101 ms  0.038 ms  0.169 ms
 2  * * *
 3  * * *

3.4 netstat命令

netstat命令用于显示IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况

// 语法:netstat [options]
// 常用的options
-r:显示路由表
-t:tcp协议连接
-u:udp协议链接
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及pid

// 显示路由表
[root@jlin ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 ens33
192.168.23.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

// 以数字方式显示路由表
[root@jlin ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.23.2    0.0.0.0         UG        0 0          0 ens33
192.168.23.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

// 常用选项
[root@jlin ~]# netstat -anltup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      756/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1984/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1171/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1168/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1590/master         
tcp        0      0 192.168.23.180:22       192.168.23.1:57370      ESTABLISHED 14568/sshd: root@pt 
tcp6       0      0 :::111                  :::*                    LISTEN      756/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      1171/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1168/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1590/master         
udp        0      0 127.0.0.1:323           0.0.0.0:*                           801/chronyd         
udp        0      0 0.0.0.0:45409           0.0.0.0:*                           799/avahi-daemon: r 
udp        0      0 0.0.0.0:929             0.0.0.0:*                           756/rpcbind         
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           799/avahi-daemon: r 
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1984/dnsmasq        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1984/dnsmasq        
udp        0      0 0.0.0.0:68              0.0.0.0:*                           10028/dhclient      
udp        0      0 0.0.0.0:111             0.0.0.0:*                           756/rpcbind         
udp6       0      0 ::1:323                 :::*                                801/chronyd         
udp6       0      0 :::929                  :::*                                756/rpcbind         
udp6       0      0 :::111                  :::*                                756/rpcbind        

3.5 ss命令

ss是一种网络状态查看工具,取代netstat

// 语法:ss [options]
// 常用的options
-t:tcp协议相关
-u:udp协议相关
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及pid

// 常见的state
	# TCP finite state machine:有限状态机
		listening:监听
		established:已建立的连接

// 以数字格式查看TCP相关信息
[root@jlin ~]# ss -ant

// 以数字格式查看监听的tcp端口
[root@jlin ~]# ss -tanl

// 以数字格式查看监听的tcp端口和进程号
[root@jlin ~]# ss -antlp

// 以数字格式查看udp相关信息
[root@jlin ~]# ss -anu

// 以数字格式查看udp监听的端口
[root@jlin ~]# ss -anul

// 以数字格式查看监听的tcp和udp端口以及进程pid
[root@jlin ~]# ss -anltup

常见端口

服务端口
http80/tcp
https443/tcp
ssh22/tcp
ftp20,21/tcp
mysql3306/tcp
rsync873/rsync
redis6379/tcp

3.6 网络故障排查

  • 网络故障分为硬件、软件故障
    • 网卡损坏
    • 链路故障
    • 网卡驱动不兼容
  • 网络排查思路
    • ping本地回环口,确定本机TCP/IP协议栈是否正常
    • ping本机IP地址,确定本地设备以及驱动是否正常
    • ping同网段主机,确定二层网络是否正常工作
    • ping网关地址,确定本地与网络是否正常
    • ping公网地址,确定本地路由是否正常
    • ping公网域名,确定DNS客户端是否正常
  • 服务故障配查思路
    • 使用telnet检测端口是否开放
    • 检查服务段防火墙以及SElinux
    • 检查相应的权限是否配置正常
    • 检查日志是否有异常
    • 检查完毕后持续测试
Logo

更多推荐