将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
(1)主机名
(2)IP/netmask
(3)路由:默认网关
(4)DNS服务器 ,主DNS服务器, 次DNS服务器 ,第三个DNS服务器
网络配置命令
1.ifconfig
来自于 net-tools 包
基础用法:
在不带任何选项和参数执行 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 | 取消网卡设置 |
ifconfig -s | 查看通讯消息 |
示例:
(1)ifconfig 查看所有开启的网卡
ens33: flags=4163<UP, BROADCAST,RUNNING,MULTICAST> mtu 1500
# 该接口 已启用,支持广播,正在运行 ,支持组播 最大传输单元1500字节
inet 192.168.91.100 netmask 255.255.255.0 broadcast 192.168.91.255
inet6 fe80::fe7:ca03:81f:2887 prefixlen 64 scopeid 0x20<link>
# IPV6地址 子网长度 作用域 link表示仅该接口有效
ether 00:0c:29:fe:e5:bf txqueuelen 1000 (Ethernet)
# mac地址 传输队列长度(传输缓存大小) 接口类型
RX packets 2211 bytes 182146 (177.8 KiB)
# 接收 报文个数 总和字节数
RX errors 0 dropped 0 overruns 0 frame 0
# 接收 错误 丢弃 溢出 冲突帧数
TX packets 1317 bytes 294334 (287.4 KiB)
# 发送 报文个数 总字节数
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 错误 丢失 溢出 载荷数 冲突数
(2)ifconfig -a 显示所有网卡包括未开启的
(3)查看单个网卡信息,和开启关闭网卡
2.route 路由
查看或设置主机中路由表信息
格式 :route [-n]
route -n #显示路由信息 -n 数字形式显示
route add -net 网段 gw 网关 #添加静态路由
route del -net 网段 #删除路由
示例:
(1)route -n 显示路由信息
(2)删除路由
(3)临时添加默认路由
(4)永久添加路由
进入到配置文件,编辑配置文件
保存后重新启动network 可以看到路由添加完成
3.hostname
查看或设置当前主机名
示例:
(1)临时修改主机名
(2)永久更改主机名
方法一:通过修改/etc/hostname文件来修改主机名
方法二:通过hostnamectl来修改主机名
4.网络链接端口状态(ss和netstat)
netstat和ss(socket statistics)区别:
netstat速度慢,ss速度快
4.1 查看网络连接情况 netstat
-a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n:以数字的形式显示相关的主机地址、端口等信息
-r:显示路由表信息
-l:显示处于监听(Listening)状态的网络连接及端口信息
-t:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
示例:
4.2 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软件包的一部分,默认已经安装。
常用选项:
-t: tcp协议相关 只显示 tcp协议
-u: udp协议相关 只显示 udp
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有状态
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。 dns 服务
示例:
ss -natp
5.nslookup
域名解析 nslookup dns cdn 电商 平台
格式:nslookup 域名
6.scp
远程拷贝
[root@zhou opt]#scp /opt/passwd lisi@192.168.240.11:/opt/passwd
命令字 本地文件地址 对方用户名@地址冒号对面地址
[root@zhou opt]#scp root@192.168.240.11:/opt/passwd /opt/
zhouxiansen命令字 对方用户名@地址冒号对面地址 本地地址
7.ethtool
查看网卡信息
示例:ethtool -i ens33
ethtool -p ens33 #让ens33 网卡快速闪烁
8.永久修改网卡配置文件
进入网卡配置文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33
双网卡实验
实验步骤:
(1)查看ens36没有ip地址
(2)切换到/etc/sysconfig/network-scripts/下将ifcfg-ens33复制到ifcfg-ens36
(3)进入到ifcfg-ens36配置文件,修改配置文件,将多余的删除
(4)重新启动network
修改ifcfg-ens36配置文件
9.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 端口范围
常用选项:
-i :指定监听网络监听端口
-w :将捕获信息保存到文件中,且不分析核打印在屏幕上
-r : 读取上面存储的文件
-n :不把ip转换成域名,直接显示ip
-nn : 直接显示ip和端口号
-t :在每行的输出中,不显示时间
-tt :输出一个时间戳
时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。
-ttt :每行之间的时间间隔
-tttt : 详细日期
-v :产生详细的输出
-c :指定收取数据包的数量
-C : 需要与w 配合使用 指定单个文件的大小 百万字节
-Q :过滤数据包的方向 in out inout
-q :简洁的输出
-D :显示所有可用的列表
-s :指定数据包的大小
示例:
直接使用tcpdump
tcpdump -i 指定网卡
第一列:时分毫秒 11:53:55.288476
第二例:网络协议ip
第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向
第四列:主机名协议 主机名:localhost.localdomain 协议:ssh
第五列: seq号 ack号 win窗口长度 tcp的标志位
(2)tcpdump -D 显示所有可用的列表
(3)host选项
主机一 ping 主机二
使用 tcpdump -i ens33 host 192.168.240.1
host选项
主机2 ping 主机1
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 端口号 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
protocal
协议种类:ip arp icmp tcp udp
应用层协议不可以直接抓取
[root@localhost ~]#ping www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp
10.bond 多网卡绑定
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
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个口只占了小部分流量
常用的模式为 0,1,3,6
mode 1、5、6 不需要交换机设置
mode 0、2、3、4需要交换机设置
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需
要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模
式4中需要 LACP和 EtherChannel
bond实验
(1)切换到/etc/sysconfig/network-scripts/下将ifcfg-ens33复制到ifcfg-bond0
编辑bond0配置文件
(2)编辑ifcfg-ens33配置文件
(3)编辑ifcfg-ens36配置文件
(4)重新启动network ,此时需要重新连接
使用ssh命令连接bond0配置文件中地址192.168.240.100
最后使用 cat /proc/net/bonding/bond0 查看网卡信息
使用命令方法:
#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.240.100/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