linux 网络设置

查看linux基础的网络配置        命令

网关 route    -n
ip 地址 ifconfig      /  ip   a
DNS  服务器 cat  /etc/resolv.conf
主机名 hostname
路由 route   -n
网络连接状态 ss          /  netstat

一,ifconfig 查看网络接口信息

(一)ifconfig    具体含义

linux 网络设置_第1张图片

linux 网络设置_第2张图片

(二) 网卡名称详解

ens33:第一块以太网卡的名称详解:

“ens33”中的“en”是“EtherNet”的缩写,表示网卡 以太网(局域网中的一种) 互联网

类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽 编号

centos6 之前都叫eth0,eth1 (生产环境也用)

(三)ifconfig   常用格式

linux 网络设置_第3张图片

1,ifconfig 具体网卡名称

#只显示具体网卡的详细信息(无论该网卡是否使用)

linux 网络设置_第4张图片

2,ifconfig -a

#表示显示所有网卡包括没有启动的网卡

3,ifconfig 网卡名称 [up|down]

#表示开启或关闭网卡

4,ifconfig 网络接口 ip地址 [netmask 子网掩码] ifconfig 网络接口 ip地址[/子网掩码长度]

临时修改网卡 ip ,及时生效

5,ifconfig ens33:0 地址

#表示虚拟网卡

linux 网络设置_第5张图片

(四) 临时修改网卡名字

1,先关网卡

2, 改名字,再打开

linux 网络设置_第6张图片

(五)永久修改网卡名字

1,修改grub  配置文件

vim /etc/default/grub
 


 

2,在 这一行加  ifnames=0linux 网络设置_第7张图片

 3,重新加载grub  配置文件

grub2-mkconfig  -o  /boot/grub2/grub.cfg
 

linux 网络设置_第8张图片

 4,此时发现断网了

linux 网络设置_第9张图片

 5, vim  /etc/sysconfig/network-scripts/ifcfg-ens33     打开网卡的配置文件

linux 网络设置_第10张图片

 6,网络此时通,重启后网卡名改了

linux 网络设置_第11张图片

(六)永久修改网络其他配置

1,永久修改网卡,需写入文件 

  vim  /etc/sysconfig/network-scripts/ifcfg-ens33 

2,文件详细介绍:

linux 网络设置_第12张图片

3,改完要重启网卡服务

systemctl  restart network          重启网卡服务

(七)双网卡实验

1,实验目的,给虚拟机新加一个网卡并让他可以使用

2,给虚拟机加一块网络适配器

linux 网络设置_第13张图片

3,cd  /etc/sysconfig/network-scripts/     

linux 网络设置_第14张图片

4,复制ifcfg-en33    作为模板   改成网卡ens36  的文件

5, vim ifcfg-ens36

6,将设备名和名字改正确

将ip设为可用

linux 网络设置_第15张图片

7, ifconfig   -a  可以看到两个网卡都是开的

linux 网络设置_第16张图片

二,ethtool

ethtool   -i ens33       

查看网卡信息      

ethtool  -p

让网口的灯快速闪烁         方便去辨认

三,hostname

主机名   hostname

主机名文件     /etc/hostname

hostname 查看主机名
hostname  名字 临时修改主机名
hostnamectl  set-hostname   主机名 永久修改主机名
vim  /etc/hostname

将名字写入此文件,也是永久修改

只有在第一行有用

1,临时修改主机名

hostname  名字

exit

2,永久修改主机名

vim  /etc/hostname

linux 网络设置_第17张图片

四,route  路由

route   -n 数字形式显现路由表
route add   -net  10.0.0.0/8  gw  192.168.91.2 添加一条  去往10.0.0.0段的路由,通过网关192.168.91.2转发
route   del   -net   10.0.0.0/8 删除去往10.0.0.0   段的路由
route  add   -net    0.0.0.0      gw   192.168.91.2 添加默认路由
route   del    -net   0.0.0.0(default) 删除默认路由

 (一)路由表具体含义

linux 网络设置_第18张图片路由表主要构成:


#Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路
由,优先级最低
#Genmask:目标网络对应的netmask
#Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
#Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
#Metric: 开销cost,值越小,路由记录的优先级最高

(二)临时添加路由

1,查看自己的路由表

linux 网络设置_第19张图片

 2,route add   -net  10.0.0.0/8  gw  192.168.217.2

添加一条  去往10.0.0.0段的路由,通过网关192.168.217.2转发

 3,再次route  -n  可查看更新后的路由表

重启后就会消失

(三)永久添加路由

linux 网络设置_第20张图片

1,去到网卡的配置文件

vim /etc/sysconfig/network-scripts/route-ens33

2,添加路由

linux 网络设置_第21张图片

3,重启网络,并查看路由表

linux 网络设置_第22张图片

 五,网络连接状态  ss    netstat

(一)ss  netstat  区别

但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。 ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

总结就是:ss 更靠近内核       netstat 他要去遍历文件查看状态

(二)ss   使用

ss   -natp

n 数字显示      a 详细显示        t tcp        p 进程pid

ss   -naup

n 数字显示      a 详细显示        u  udp        p 进程pid

(三)基于netstat遍历文件的特性,压测观察

六,ping

1,只ping三个包

2,一秒钟就回(小w)

linux 网络设置_第23张图片

七,traceroute 路由追踪

traceroute   ip地址

linux 网络设置_第24张图片

八,nslookup

(一)过程

dns 域名解析将域名翻译成 ip地址,然后封装数据包

linux 网络设置_第25张图片

(二)域名原理

1,域名存放处

linux 网络设置_第26张图片

2,域名起作用前提

 这个文件里要有nameserver dns域名解析才能用

(三)拓展

1,如何验证dns  服务器是否可以解析域名

nslookup     

dig

host

ping

2,域名解析文件

/etc/hosts    

注意:此文件优先级大于域名服务器(比如你在此文件写入192.169.1.100  www.baidu.com)就是你访问www.baidu.com  就去访问192.169.1.100 

3,windos 的域名解析文件:

linux 网络设置_第27张图片

4,查看服务器上的域名 是否生效

linux 网络设置_第28张图片

九,bond  多网卡绑定

 网卡备胎

1,主备模式,可以解决单点故障(mode1)

2,双主模式,可以分摊流量

(一)常见模式

Bonding 聚合链路工作模式

  • mod=0 ,即:(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。负载均衡—所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。性能问题—一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。Bond0在大压力的网络传输下,性能增长的并不是很理想。需要交换机进行端口绑定。

  • mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。容错能力—只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。无负载均衡—此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

  • mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口数据报文按源目MAC、源目IP、源目端口进行异或HASH运算得到一个值,根据该值查找接口转发数据报文负载均衡—基于指定的传输HASH策略传输数据包。容错能力—这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。性能问题—该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。既然目的地是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。如果所有流量是通过单个路由器,由于只有一个网关,源和目标mac都固定了,那么这个算法算出的线路就一直是同一条,那么这种模式就没有多少意义了。需要交换机配置为port channel

  • mod=3,即:broadcast(广播策略)这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,感觉不到任何downtime,但此法过于浪费资源;不过这种模式有很好的容错机制。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。

  • mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合)在动态聚合模式下,聚合组内的成员端口上均启用LACP(链路汇聚控制协议)协议,其端口状态通过该协议自动进行维护。负载均衡—基于指定的传输HASH策略传输数据包。默认算法与blance-xor一样。容错能力—这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。对比blance-xor,这种模式定期发送LACPDU报文维护链路聚合状态,保证链路质量。需要交换机支持LACP协议

  • mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)在每个物理接口上根据当前的负载(根据速度计算)分配外出流量。如果正在接收数据的物理接口口出故障了,另一个物理接口接管该故障物理口的MAC地址。需要ethtool支持获取每个slave的速率

  • mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个物理接口的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量

(二)实验模拟 主备模式

第一种方法,修改配置文件

1,先去到     网卡配置文件的地方

cd   /etc/sysconfig/network-scripts/

 2,复制出ifcfg-bond0    和ens36

linux 网络设置_第29张图片

 3, 编辑这三个文件

 4,详细介绍一下   ifcfg-bond0

NAME=bond0:定义了这个网络接口的名称为bond0。

TYPE=bond:表示这是一个绑定类型的网络接口,即它是由多个物理网卡通过绑定技术聚合而成的逻辑接口。

DEVICE=bond0:再次指明网络设备的名称为bond0。

BOOTPROTO=static:与之前解释的一样,意味着在启动时不会使用DHCP或静态配置来自动获取IP地址,而是根据本配置文件中的设置来配置网络参数。

IPADDR=192.168.217.79    设置了bond0接口的IP地址为192.168.217.79

PREFIX=24:表示子网掩码是24,即255.255.255.0。

BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1":

mode=1:指定绑定模式为负载均衡模式(balance-rr,Round-Robin Policy)。这意味着数据包会轮流从各个成员接口发送出去。
miimon=100:MIIMonitor(Media Independent Interface Monitor)间隔设置为100毫秒,用来检查成员接口的链路状态,如果发现某个接口失效,则切换到其他可用接口。
 

linux 网络设置_第30张图片

 5,详细介绍  ifcfg-ens33

BOOTPROTO="static":表示这个网络接口(ens33)在启动时不会尝试通过DHCP或静态配置获取IP地址,而是依赖于其他方式来设置其网络参数。

NAME="ens33":指定了网络接口的名称,这里是ens33,这是Linux内核识别该物理网卡的方式。

DEVICE="ens33":与NAME相同,也是指明了网络设备的名称为ens33。

ONBOOT="yes":表明当操作系统启动时,应自动启动并激活此网络接口。

MASTER=bond0SLAVE=yes:这两个选项说明 ens33 网络接口被配置为一个bonding主/从接口的一部分,其中MASTER=bond0表示 ens33 是 bond0 的从接口(slave),而 SLAVE=yes也进一步确认了它是作为绑定接口的从属部分
 

linux 网络设置_第31张图片

 6,将ens36   网卡得配置文件也改掉

linux 网络设置_第32张图片

 7,重启网络

 8,查看  bond  状态

 /proc/net/bonding/bond0

可以看到目前ens33  在工作

linux 网络设置_第33张图片linux 网络设置_第34张图片

 9,当我们手动把ens33 网卡关闭,模拟故障,可以通过查看bond  发现,ens36 备用网卡顶上来了

linux 网络设置_第35张图片

 10,另一端的服务器      与bond0通讯  不会断,因为ens36在工作了

linux 网络设置_第36张图片

第二种方法 nmcli实现bonding

#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.91.123/24 
#添加从属接口
nmcli con add type bond-slave ifname ens33 master bond0
nmcli con add type bond-slave ifname ens36 master bond0
#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
#要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-ens33
nmcli con up bond-slave-ens36
#启动绑定
nmcli con up mybond0

 1,输入以下命令

 2,查看bond  ens33在工作

linux 网络设置_第37张图片

 3,断开ens33     ens36  工作linux 网络设置_第38张图片

 (三)查看bond0状态:

/proc/net/bonding/bond0

(四)删除bond

ifconfig bond0 down
rmmod bonding

十,tcpdump  抓包工具

(一)网络检测工具

linux 网络设置_第39张图片

(二)tcpdump   的使用

1,通式

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 端口范围

2,直接使用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^C

输出格式讲解:

第一列:时分毫秒 11:53:55.288476

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

3,过滤规则

3.1基于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
3.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 -
3.3基于协议

protocal  

协议种类:ip   arp  icmp  tcp   udp

应用层协议不可以直接抓取

root@localhost ~]#ping  www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp

(三)tpcdump  常见参数


参数说明:
-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<数据包文件> 把数据包数据写入指定的文件。

你可能感兴趣的:(linux,网络,运维)