将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
- 主机名
- ip/network
- 路由:默认网关
- DNS服务器 主DNS服务器 次DNS服务器 第三个DNS服务器
网络相关的文件
文件类型 | 文件位置 | 文件作用 |
网卡文件 | /etc/sysconfig/network-scripts/ifcfg-* | 修改ip地址 dns 网关 获取方式等设置 |
主机名 | /etc/hostname | 永久修改主机名 注意只有第一行生效 |
dns文件 | /etc/resolv.conf | 记录了dns 服务的地址, |
路由 | /etc/sysconfig/network-scripts/route-ens33 | 永久记录路由 |
挂载 | /etc/fstab | 挂载 |
用户 | /etc/passwd | 用户 |
密码 | /etc/shadow | 密码 |
网络配置命令
ifconfig
基础用法
在不带任何选项和参数执行 ifconfig 命令时, 将显示当前主机中已启用(活动)的网络接口信息
网卡名称详解:
eth0 eth1
ens33:第一块以太网卡的名称详解:
“ens33”中的“en”是“EtherNet”的缩写,表示网卡 以太网(局域网中的一种) 互联网
类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽 编号
临时修改
ifconfig | 默认是查看所有开启的网卡 |
ifconfig 网卡名 | 查看单个的网卡 |
ifconfig 网卡名 up | 开启网卡 |
ifconfig 网卡名 down | 关闭网卡 |
ifconfig -a | 显示所有网卡,包括未开启的 |
ifconfig 网卡名:0 ip/子网 | 设置临时网卡 |
ifconfig 网卡名 IP地址/子网 | 临时设置地址 |
ifconfig 网卡名 0 |
[root@localhost ~]#ifconfig ens36 down
#关闭
[root@localhost ~]#ifconfig ens36 up
#开启
[root@localhost ~]#ifconfig ens33:0 172.16.88.10
#设置临时虚拟网卡
[root@localhost ~]#ifconfig ens33:0 down
#关闭虚拟网卡
[root@localhost ~]#ifconfig -a
#查看所有网卡包括为开启的
[root@localhost ~]#ifconfig -s
#网络通讯情况
临时修改网卡名称
先把ens36网卡关掉
关掉之后改名
永久修改网卡名称
先修改eth0的配置文件并且把ifcfg-ens33删掉
2.修改grub的配置文件
[root@localhost:~# ]vim /etc/default/grub
3重新生成grub的配置文件
4重启设备,并用ifconfig查看
ip
ip link 数据链路层
拔掉网线,可以看到网卡状态
ip addr 网络层
route 路由
#路由表主要构成:
#Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路
由,优先级最低
#Genmask:目标网络对应的netmask
#Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
#Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
#Metric: 开销cost,值越小,路由记录的优先级最高
route del -net | 网段地址 删除指定网段的路由记录 |
route add default gw lP地址 | 向路由表中添加默认网关记录 |
route del default gw lP地址 | 删除路由表中默认的网关记录 |
route -n | 显示路由信息-n数字形式显示 |
route add -net 网段 gw 网关 | 添加静态路由 |
route del -net 网段 | 删除路由 |
临时性修改
添加静态路由
删除路由
永久性修改
[root@localhost ~]#vim /etc/sysconfig/network-scripts/route-ens33
#修改route网卡配置文件
172.16.0.0/16 via 172.16.88.2
目标网段/子网掩码 via 网关
[rootalocalhost ~l#systemctl restart network
重启网卡
####################################################################
[root@localhost ~l#vim /etc/sysconfig/static-routes
any net 172.16.0.0/16 gw 172.16.88.2
[root@localhost ~#systemctl restart network
hostname
查看或设置当前主机名
hostname [主机名]
主机名
hostname | 查看主机 |
hostname 主机名 | 临时修改主机名 |
vim /etc/hostname | 将主机名添加到该文件中可以永久修改主机名,但是只有在第一行生效 |
hostnamectl se-hostname 主机名 | 永久修改 |
例子:
临时修改主机名
注意:重启之后就会变回来
永久修改主机名
1.通过修改/etc/hostname文件来修改主机名
[root@localhost ~]# vim /etc/hostname
123
2.通过hostnamectl来修改主机名
[root@localhost ~]# hostnamectl set-hostname 123
[root@localhost ~]# bash
[root@123 ~]# hostname
123
查看链路状态
netstat命令
查看网络连接情况
netstat选项:
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n:以数字的形式显示相关的主机地址、端口等信息
-r:显示路由表信息
-l:显示处于监听(Listening)状态的网络连接及端口信息
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
ss( socket statistics)
ss 命令:也可以查看网络连接情况,主要用于获取 socket (内核态)统计信息,它可以显示和 netstat 命令类似的输出内容。
但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装
ss的选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
netstat与ss的对比
ss:速度快
netstat:速度慢
可以使用time命令来比较
ping
测试网络连通性
格式:
ping [选项] 目标主机
#-c 选项是发送多少个包
# -W 表示等待10秒
-w 如果ping 不通 2秒后返回 不会再ping
nslookup
域名解析 nslookup dns cdn 电商 平台
格式:
nslook 域名
dig 可以显示出更多详细信息
scp
远程同步
ethtool
查看 网卡信息
[root@localhost ~]#ethtool -p ens33
#让ens33 网卡快速闪烁
tcpump 抓包工具
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 端口范围
输出格式讲解:
第一列:时分毫秒 19:37:31.057918
第二例:网络协议ip
第三列:发送方IP地址+端口号 ip地址:172.16.88.1 端口号:62686 >表示数据流向
第四列:主机名协议 主机名: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
基于端口过滤
port 端口号
[root@localhost ~]#tcpdump -i ens33 port 80
多端口
[root@localhost ~]#tcpdump -i ens33 port 80 or port 22
#80 和 22 端口
范围端口
[root@localhost ~]#tcpdump -i ens33 portrange 80-8080
#80 到8080 端口
基于协议
protocal
协议种类:ip arp icmp tcp udp
应用层协议不可以直接抓取
常见参数
-i 指定监听网络监听端口
-w 将捕获信息保存到文件中,且不分析核打印在屏幕上
-r 读取上面存储的文件
-n 不把ip转换成域名,直接显示ip
-nn 直接显示ip和端口号
-t 在每行的输出中,不显示时间
-tt 输出一个时间戳
-ttt 每行之间的时间间隔
-tttt 详细日期
-v 产生详细的输出
-c 指定收取数据包的数量
-C 需要与w 配合使用 指定单个文件的大小 百万字节
-Q 过滤数据包的方向 in out inout
-q 简洁的输出
-D 显示所有可用的列表
-s 指定数据包的大小
bond多网卡绑定
Bonding聚合链路工作模式
- mod=0,即:(balance-r) Round-robin poicy(轮询)聚合口数据报文按包轮询从物理接口转发。负载均衡一所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。性能问题一一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无席到达的问题,而无序到以的教据包需要重新要求被发送,这样网络的吞叶量就会下降。Bond0在大压力的网络传输下,性能增长的并不是很理想。需要交换机进行端口绑定。
- mod=1,即:(active-backup) Active-backup policy(主一备份策略)只有Acive状态的物理接口才转发数据报文,容错能力一只有一个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) EEE 802.3ad Dynamic ink aggregation(IEE802.3ad动态链接聚合)在动态聚合模式下,聚合组内的成员端口上均启用LACP(链路汇聚控制协议)协议,其端口状态通过该协议自动进行维护。负载均衡一基于指定的传输HASH策略传输数据包。默认算法与blance-xor一样。容错能力一这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。对比blance-xor,这种模式定期发送LACPDU报文维护链路聚合状态,保证链路质量要西衣扬机支持LACD协沙
- mod=5,即:(balance-t) Adaptive transmit load balancing(适配器传输负载均衡)在每个物理接口上根据当前的负载(根据速度计算)分配外出流量。如果正在接收数据的物理接口口出故障了,另一个物理接口接管该故障物理口的MAC地址。需要ethtool支持获取每个slave的速率
- mod=6,即:(balance-alb)Adaptiveload balancing(适配器适应性负载均衡)该模式包含了balance-tb模式,同时加上针对1PV4流量的接收负载均衡,而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个物理接口的唯-硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。mod=6与mod=0的区别:mod=6,先把eth0流量占满,再占eth1,.ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量
常用的模式为0,1,3,6
mode 1、5、6不需要交换机设置
mode 0、2、3、4需要交换机配置
active-backup、balance-t1b 和 balance-a1b 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco交换机需要在模式0、2和3中使用Etherchanne1,但在模式4中需要 LACP和 Etherchanne]
实际操作创建
bonding设备的配置文件
[root@localhost:~# ]cd /etc/sysconfig/network-scripts/
[root@localhost:/etc/sysconfig/network-scripts# ]vim ifcfg-bond0
miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
fail_over_mac=1" 永远使用活着的 网卡的mac地址
[root@localhost:/etc/sysconfig/network-scripts# ]vim ifcfg-ens33
[root@localhost:/etc/sysconfig/network-scripts# ]vim ifcfg-ens36
查看bond0状态:
删除bond0
ifconfig bond0 down
rmmod bonding
用nmcli实现bonding
添加bonding接口
添加从属接口
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
要启动绑定,则必须首先启动从属接口
启动绑定
时间同步
[root@localhost ~]#date -s '1 year'
2023年 12月 14日 星期四 12:02:02 CST
[root@localhost ~]#ntpdate ntp.aliyun.com
# 阿里云ntp同步
DHCP服务
DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门指定IP地址
- 动态分配:使用完后释放该IP,供其它客户机使用
查看dhcp的配置文件
dhcp实验
设置DHCP
以两台linux设备做演示,设备1为DHCP服务器,设备2为客户端
因为如果没有例子的话是无法写出dhcp的配置文件的所以直接把例子复制到dhcpd.conf下进行改动就行了
修改配置文件
第8行 修改默认的全局dns地址
直接修改32-34 行
重新启用dhcp服务,并查看dhcp服务是否有保存
验证结果
先调整虚拟的网络编辑器
修改设备2网卡ens33配置文件
将静态改成dhcp获取
#号是注释,可以让其命令无法运用
最后ip a查看
虚拟机的ip 172.16.88.4变成172.16.88.20
dhcp固定IP地址实验
以两台linux设备做演示,设备1为DHCP服务器,设备2为固定IP的客户端
注意:该实验是以设置好DHCP为前提
1.查看设备2mak地址并复制
ifconfig 查看
修改设备1dhcp的配置文件
vim /etc/dhcp/dhcp.cof
重启dhcp服务
回到设备2重启网卡并重新查看ens33网卡
systemctl restart network