Linux网络设置
主要思路
查
临时设置
永久设置
网络相关的文件
文件类型 | 文件位置 | 文件作用 |
---|---|---|
网卡文件 | /etc/sysconfig/network-scripts/ifcfg-* | 修改IP地址,dns网关获取方式等设置 |
主机名文件 | /etc/hostname | 永久修改主机名,注意只有第一行生效 |
DNS文件 | /etc/resolv.conf | 记录了dns服务的地址 |
路由 | /etc/sysconfig/network-scripts/route-* | 永久记录路由信息 |
配置网络的相关设置
-
主机名
-
IP/netmask
-
路由:默认网关
-
DNS服务器,主DNS服务器,次DNS服务器和第三个DNS服务器
临时修改网卡名称
ip link set ens36 down #将ens36的网卡下线 ip link set ens36 name abc #将名称为ens36的网卡改名为abc ipconfig - a #显示所有网卡 ip link set abc up #开启名称为abc的网卡 ipconfig abc #查看网卡abc的状态
修改网卡配置
-
永久修改网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-* 1 TYPE=Ethernet 2 PROXY_METHOD=none 3 BROWSER_ONLY=no 4 BOOTPROTO=static #地址获取方式,static或none为静态获取,dhcp为动态获取 5 DEFROUTE=yes 6 IPV4_FAILURE_FATAL=no 7 IPV6INIT=yes 8 IPV6_AUTOCONF=yes 9 IPV6_DEFROUTE=yes 10 IPV6_FAILURE_FATAL=no 11 IPV6_ADDR_GEN_MODE=stable-privacy 12 NAME=ens33 #网卡描述 13 UUID=53593b7f-abff-424f-8d60-d0f67220993e 14 DEVICE=ens33 #必须和ifconfig命令中显示的网卡名一致 15 ONBOOT=yes #是否开启 16 IPADDR=192.168.137.200 #手动分配本机IP地址 17 NETMASK=255.255.255.0 #子网掩码 18 GATEWAY=192.168.137.2 #当前网段的网关 19 DNS1=8.8.8.8 #DNS地址1 200 DNS2=114.114.114.114 #DNS地址2 :wq #保存退出 systemctl restart network #重启网络 #其中第4,12,14,15-21为重要配置信息
模拟网卡配置实验
[root@localhost network-scripts]# ifconfig -a ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.137.200 netmask 255.255.255.0 broadcast 192.168.137.255 inet6 fe80::8401:d75:75b3:11aa prefixlen 64 scopeid 0x20<link> ether 00:0c:29:18:1a:2c txqueuelen 1000 (Ethernet) RX packets 2706 bytes 210978 (206.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 338 bytes 38229 (37.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 00:0c:29:18:1a:36 txqueuelen 1000 (Ethernet) RX packets 3 bytes 180 (180.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #ens37为新增网卡,网卡配置中没有ip地址等信息,目前状态为未开启状态 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# ls ifcfg-ens33 ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort ifcfg-lo ifdown-isdn ifup ifup-plip ifup-tunnel ifdown-post ifup-aliases ifup-plusb ifup-wireless ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6 ifdown-ib ifdown-Team ifup-ippp ifup-sit ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team #/etc/sysconfig/network-scripts/中没有ens37的配置文件 [root@localhost network-scripts]# vim ifcfg-ens37 TYPE=Ethernet BOOTPROTO=static NAME=ens37 DEVICE=ens37 ONBOOT=yes IPADDR=192.168.137.201 NETMASK=255.255.255.0 GATEWAY=192.168.137.2 DNS1=8.8.8.8 DNS2=114.114.114.114 #新建一个ens37的配置文件,注意IP地址不能与ens33的重复,否则导致网络故障 [root@localhost network-scripts]# ifconfig ens37 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.137.201 netmask 255.255.255.0 broadcast 192.168.137.255 inet6 fe80::20c:29ff:fe18:1a36 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:18:1a:36 txqueuelen 1000 (Ethernet) RX packets 379 bytes 25361 (24.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 104 bytes 11290 (11.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ping www.baidu.com PING www.a.shifen.com (180.101.50.188) 56(84) bytes of data. 64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=1 ttl=128 time=0.544 ms 64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=2 ttl=128 time=0.801 ms 64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=3 ttl=128 time=0.809 ms 64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=4 ttl=128 time=0.750 ms
-
查看网卡信息,临时修改网卡配置
-
ifconfig默认是看所有开启的网卡
-
ifconfig 网卡名:查看单独网卡
-
ifconfig 网卡名 up :开启网卡
-
ifconfig 网卡名 down:关闭网卡
-
ifconfig -a:显示所有网卡,包括未开启的
-
ifconfig 网卡名:0 ip/子网:设置临时网卡
-
ifconfig 网卡名 ip地址/子网:临时设置ip地址
-
ifconfig 网卡名0 :取消网卡设置
-
路由route
-
临时添加路由
-
route:显示路由信息
-
route -n:数字形式显示路由信息(默认网关)
-
route del -net 网段:删除静态路由
-
route add -net 网段 gw+网关:添加静态路由
-
-
永久添加路由
-
vim /etc/sysconfig/network-scripts/route-ens33 10.0.0.0/24 via 192.168.91.100 systemctl restart network
-
vim /etc/sysconfig/static-routes any net 172.16.0.0/24 gw 192.168.91.100 systemctl restart network
-
主机名
hostname:查看主机名
-
临时修改主机名
-
hostname 新建主机名称
-
-
永久修改主机名
-
vim /etc/hostname:将主机名添加到该文件中,但只有第一行生效
-
hostnamectl set-hostname ky36:永久修改主机名
-
查看网络链接状态
-
ss
-
格式
ss [选项]
-
-t: tcp协议相关
-
-u: udp协议相关
-
-w: 裸套接字相关
-
-x:unix sock相关
-
-l: listen状态的连接
-
-a: 所有
-
-n: 数字格式
-
-p: 相关的程序及PID
-
-e: 扩展的信息
-
-m:内存用量
-
-o:计时器信息
-
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。 dns 服务
-
-
netstat
-
格式
netstat [选项]
-
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-
-n:以数字的形式显示相关的主机地址、端口等信息
-
-r:显示路由表信息
-
-l:显示处于监听(Listening)状态的网络连接及端口信息
-
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
-
-
常用ss,选项常用-natp和-naup。
-
ss和netstat的区别
-
ss速度比netstat速度快
-
ss是内核态,netstat是用户态,内核态更接近底层,所以速度更快
-
ping
测试网络连通性
格式:
ping [选项] 目标主机
#-c 选项是发送多少个包
[root@localhost ~]#ping -c 3 192.168.91.1
PING 192.168.91.1 (192.168.91.1) 56(84) bytes of data.
64 bytes from 192.168.91.1: icmp_seq=1 ttl=128 time=0.311 ms
64 bytes from 192.168.91.1: icmp_seq=2 ttl=128 time=0.671 ms
64 bytes from 192.168.91.1: icmp_seq=3 ttl=128 time=0.444 ms
--- 192.168.91.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 0.311/0.475/0.671/0.149 ms
# -W 表示等待10秒
[root@localhost ~]#ping 192.168.91.3 -W 10
PING 192.168.91.3 (192.168.91.3) 56(84) bytes of data.
From 192.168.91.100 icmp_seq=1 Destination Host Unreachable
From 192.168.91.100 icmp_seq=2 Destination Host Unreachable
From 192.168.91.100 icmp_seq=3 Destination Host Unreachable
From 192.168.91.100 icmp_seq=4 Destination Host Unreachable
--- 192.168.91.3 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3002ms
pipe 4
-w 如果ping 不通 2秒后返回 不会再ping
traceroute
路由追踪
格式:
traceroute IP地址
[root@kgc ~]#traceroute 192.168.91.101
traceroute to 192.168.91.101 (192.168.91.101), 30 hops max, 60 byte packets
1 192.168.91.101 (192.168.91.101) 0.752 ms 0.644 ms 0.635 msnslookup
域名解析 nslookup
格式:
nslook 域名
[root@kgc ~]#nslookup www.baidu.com
Server: 8.8.8.8
Address: 8.8.8.8#53
dig 可以显示出更多详细信息
[root@kgc ~]#dig www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40371
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 390 IN CNAME www.a.shifen.com.
www.a.shifen.com. 30 IN A 14.215.177.39
www.a.shifen.com. 30 IN A 14.215.177.38
;; Query time: 77 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: 四 9月 23 22:02:04 CST 2021
;; MSG SIZE rcvd: 101
scp
远程同步
[root@kgc opt]#scp /opt/passwd lisi@192.168.91.101:/opt/passwd
命令字 本地文件地址 对方用户名@地址冒号对面地址
[root@kgc opt]#scp root@192.168.91.101:/opt/passwd /opt/
命令字 对方用户名@地址冒号对面地址 本地地址
域名解析配置文件
本地主机映射文件
/etc/resolv.conf dns
保存的是你DNS服务器的地址
/etc/hosts 文件 保存主机名与IP地址的映射记录
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.
192.168.91.100 www.yun.com
[root@kgc ~]#ping www.yun.com
PING www.yun.com (192.168.91.100) 56(84) bytes of data.
64 bytes from www.yun.com (192.168.91.100): icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=4 ttl=64 time=0.062 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=5 ttl=64 time=0.071 ms
64 bytes from www.yun.com (192.168.91.100): icmp_seq=6 ttl=64 time=0.130
hosts文件和DNS服务器的比较
-
默认情况下,系统首先从 hosts 文件查找解析记录
-
hosts 文件只对当前的主机有效
-
hosts 文件可减少 DNS 查询过程,从而加快访问速度
ethtool
查看 网卡信息
[root@localhost ~]#ethtool -i ens33
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[root@localhost ~]#ethtool -p ens33
#让ens33 网卡快速闪烁
tcpdump 抓包工具
tcpdump option proto dir type
选项 协议 数据的方向 抓取的数据类型
proto(协议):**
1. tcp udp icmp
2. ip ipv6
3. arp
dir(方向):
1. src:
2. dst:
3. src and dst:
type(类型)
1. host 主机
2. net 网段
3. port 端口
4. port range 端口范围
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<
数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络接口> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。
直接使用tcpdump
-i 指定网卡
实例
[root@localhost data]#tcpdump -i ens33
输出格式
11:53:55.288476 IP 192.168.91.1.47496 > localhost.localdomain.ssh: Flags [P.], seq 261:313, ack 1688848, win 4106, length 52
输出格式讲解:
第一列:时分毫秒 11:53:55.288476
第二例:网络协议ip
第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向
第四列:主机名协议 主机名:localhost.localdomain 协议:ssh
第五列: seq号 ack号 win窗口长度 tcp的标志位
过滤规则
基于ip地址/网段过滤
host选项
主机2 ping 主机1
[root@localhost data]#tcpdump -i ens33 host 192.168.91.101
#只关心 和 192.168.91.101 有关的流量
dst 选项 目的地址
src 选项 源地址
[root@localhost ~]#tcpdump -i ens33 dst 192.168.91.101
[root@localhost ~]#tcpdump -i ens33 src 192.168.91.101
net 选项 tcpdump net 192.168.91.0/24
[root@localhost ~]#tcpdump net 192.168.91.0/24 -i ens33
控制方向
[root@localhost ~]#tcpdump -i ens33 src net 192.168.91.0/24
[root@localhost ~]#tcpdump -i ens33 dst net 192.168.91.0/24
1.2基于端口过滤
port 端口号 tcpdump port 80
[root@localhost ~]#tcpdump -i ens33 port 80
or
[root@localhost ~]#tcpdump -i ens33 port 80 or port 22
#80 和 22 端口
[root@localhost ~]#tcpdump -i ens33 src port 80 or port 22
[root@localhost ~]#tcpdump -i ens33 dst port 80 or port 22
范围的端口
[root@localhost ~]#tcpdump -i ens33 portrange 80-8080
#80 和 22 端口
[root@localhost ~]#tcpdump -i ens33 src portrange 80-8080
[root@localhost ~]#tcpdump -i ens33 dst portrange 80-8080
1.3基于协议
protocal
协议种类:ip arp icmp tcp udp
应用层协议不可以直接抓取
[root@localhost ~]#ping www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp
常见参数
-i 指定监听网络监听端口
[root@localhost ~]#tcpdump -i ens33
[root@localhost ~]#tcpdump -i any
-w 将捕获信息保存到文件中,且不分析核打印在屏幕上
[root@localhost ~]#tcpdump -i any -w test.cap
#将文件后缀改成cap 或者pcap形式可以直接用wireshark打开
-r 读取上面存储的文件
[root@localhost ~]#tcpdump -r test
reading from file test, link-type LINUX_SLL (Linux cooked)
01:58:09.960457 IP localhost.localdomain.ssh > 192.168.91.1.16603: Flags [P.], seq 993857661:993857809, ack 1860109721, win 274, length 148
01:58:09.960854 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 148, win 4101, length 0
01:58:20.585572 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [P.], seq 1:53, ack 148, win 4101, length 52
-n 不把ip转换成域名,直接显示ip
[root@localhost ~]#tcpdump -i ens33
02:03:27.480712 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [P.], seq 53:105, ack 168336, win 4100, length 52
[root@localhost ~]#tcpdump -i ens33 -n
#主机名变成了IP地址
02:03:57.921893 IP 192.168.91.1.16603 > 192.168.91.100.ssh: Flags [P.], seq 1:53, ack 150592, win 4106, length 52
-nn 直接显示ip和端口号
[root@localhost ~]#tcpdump -i ens33
02:03:27.480712 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [P.], seq 53:105, ack 168336, win 4100, length 52
[root@localhost ~]#tcpdump -i ens33 -n
#ssh 变成了端口号
02:03:57.921893 IP 192.168.91.1.16603 > 192.168.91.100.22: Flags [P.], seq 1:53, ack 150592, win 4106, length 52
-t 在每行的输出中,不显示时间
[root@localhost ~]#tcpdump -i ens33 -t
-tt 输出一个时间戳
时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。
[root@localhost ~]#tcpdump -i ens33 -tt
-ttt 每行之间的时间间隔
[root@localhost ~]#tcpdump -i ens33 -ttt
-tttt 详细日期
[root@localhost ~]#tcpdump -i ens33 -tttt
-v 产生详细的输出
[root@localhost ~]#tcpdump -i ens33 -v [root@localhost ~]#tcpdump -i ens33 -vv [root@localhost ~]#tcpdump -i ens33 -vvv #v越多 信息越详细
-c 指定收取数据包的数量
[root@localhost ~]#tcpdump -i ens33 -c 20 #指定抓取 20 个包后退出
-C 需要与w 配合使用 指定单个文件的大小 百万字节
[root@localhost data]#tcpdump -i ens33 -C 1 -w test tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes [root@localhost data]#yum install epel-release.noarch -y # 制造流量 模拟环境
-Q 过滤数据包的方向 in out inout
[root@localhost data]#tcpdump -i ens33 -Q in #只有in方向 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 02:24:55.547329 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 1002982309, win 4105, length 0 02:24:55.591780 IP dns.google.domain > localhost.localdomain.52360: 33034 NXDomain 0/0/0 (45) 02:24:55.636957 IP dns.google.domain > localhost.localdomain.50352: 58856 NXDomain 0/0/0 (43) 02:24:55.678358 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 165, win 4104, length 0 02:24:55.682818 IP dns.google.domain > localhost.localdomain.60698: 16333 1/0/0 PTR dns.google. (62) 02:24:55.723179 IP 192.168.91.1.16603 > localhost.localdomain.ssh: Flags [.], ack 617, win 4102, length 0 [root@localhost data]#tcpdump -i ens33 -Q out #只有out方向
-q 简洁的输出
[root@localhost data]#tcpdump -i ens33 -q
-D 显示所有可用的列表
[root@localhost data]#tcpdump -D #回环 usb 等接口 1.virbr0 2.nflog (Linux netfilter log (NFLOG) interface) 3.nfqueue (Linux netfilter queue (NFQUEUE) interface) 4.usbmon1 (USB bus number 1) 5.usbmon2 (USB bus number 2) 6.ens33 7.any (Pseudo-device that captures on all interfaces) 8.lo [Loopback]
-s 指定数据包的大小
[root@localhost data]#tcpdump -i ens33 -s 50 02:39:09.016238 IP localhost.localdomain.ssh > 192.168.91.1.16603: [|tcp] 02:39:09.018305 IP 192.168.91.1.16603 > localhost.localdomain.ssh: [|tcp] 02:39:09.018337 IP localhost.localdomain.ssh > 192.168.91.1.16603: [|tcp] 02:39:09.018715 IP 192.168.91.1.16603 > localhost.localdomain.ssh: [|tcp] [root@localhost data]#tcpdump -i ens33 -s 50 tcp port 53 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 50 bytes #大小为50 #默认为262144
多网卡绑定bond
bond(网络绑定或链路聚合),将多个网络接口绑定在一起,形成一个虚拟的网络接口。
bond技术可以增加带宽、提高链接可靠性和实现负载均衡。
-
bonding聚合链路工作模式
-
mod=0:数据包轮流通过不同的网络接口发送,实现负载均衡
-
mod=1:一个接口正常工作,其他备用接口处于待命状态。当主接口故障时,备份接口接管工作
-
mod=2:XOR,根据源和目标MAC地址,对接口进行散列,以选择发送数据包的接口,提供负载均衡和failover功能
-
mod=3:broadcast广播策略,一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,感觉不到任何downtime,有很好的容错机制
-
mod=4:动态链路聚合,根据网络交换机的LACP协议进行动态链路聚合,实现负载均衡和故障切换
-
mod=5:传输负载均衡,按照发送数据包的一组源和目标IP地址进行散列,实现负载均衡
-
mod=6:自适应负载均衡,该模式使用转发散列算法基于源和目标IP地址、源和目标端口号,以及传输协议进行数据包散列,这样,不同的数据流可以通过不同的接口进行传输,实现负载均衡。此模式能够根据数据流的特性进行动态调整,并提供较好的父爱均衡效果
-
-
模拟实现bond mod=1
使用ifconfig命令查看当前网卡信息
[root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.137.101 netmask 255.255.255.0 broadcast 192.168.137.255 inet6 fe80::691b:8f41:1ed1:2b58 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:f6:4b:b1 txqueuelen 1000 (Ethernet) RX packets 164 bytes 19345 (18.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 136 bytes 19249 (18.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::f6b:a7db:86ad:9e48 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:f6:4b:bb txqueuelen 1000 (Ethernet) RX packets 34 bytes 2040 (1.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 24 bytes 3984 (3.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
修改ens33和ens37网络配置文件
[root@localhost network-scripts]# vim ifcfg-ens33 BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes MASERT=bond0 SLAVE=yes [root@localhost network-scripts]# vim ifcfg-ens37 NAME=ens37 DEVICE=ens37 BOOTPROTO=static MASTER=bond0 SLAVE=yes PNBOOT=yes [root@localhost network-scripts]# vim ifcfg-bond0 NAME=bond0 TYPE=bond DEVICE=bond0 BOOTPROTO=none IPADDR=192.168.137.101 NETMASK=255.255.255.0 GATEWAY=192.168.137.2 DNS1=8.8.8.8 DNS2=114.114.114.114 BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1" #注意,这里DNS可以不写,但会导致无法解析外网网址 systemctl restart network #重启网络服务,应用修改 [root@localhost network-scripts]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active) Primary Slave: None Currently Active Slave: ens33 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens33 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:f6:4b:b1 Slave queue ID: 0 Slave Interface: ens37 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:f6:4b:bb Slave queue ID: 0 #查看bond0状态 #模拟网卡故障,查看bond0状态 [root@localhost network-scripts]# ifconfig ens33 down # [root@localhost network-scripts]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active) Primary Slave: None Currently Active Slave: ens37 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens33 MII Status: down Speed: 1000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: 00:0c:29:f6:4b:b1 Slave queue ID: 0 Slave Interface: ens37 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:f6:4b:bb Slave queue ID: 0 #ens33网卡故障后,ens37作为主网卡继续提供网络服务