查看linux基础的网络配置? ? ? ? 命令
网关 | route? ? -n |
ip?地址 | ifconfig? ? ? /? ip? ?a |
DNS? 服务器 | cat? /etc/resolv.conf |
主机名 | hostname |
路由 | route? ?-n |
网络连接状态 | ss? ? ? ? ? /? netstat |
ens33:第一块以太网卡的名称详解:
“ens33”中的“en”是“EtherNet”的缩写,表示网卡 以太网(局域网中的一种) 互联网
类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽 编号
centos6 之前都叫eth0,eth1 (生产环境也用)
#只显示具体网卡的详细信息(无论该网卡是否使用)
#表示显示所有网卡包括没有启动的网卡
#表示开启或关闭网卡
临时修改网卡 ip ,及时生效
#表示虚拟网卡
1,先关网卡
2,?改名字,再打开
1,修改grub? 配置文件
vim /etc/default/grub
?
2,在?这一行加? ifnames=0
?3,重新加载grub? 配置文件
grub2-mkconfig ?-o ?/boot/grub2/grub.cfg
?
?4,此时发现断网了
?5,?vim ?/etc/sysconfig/network-scripts/ifcfg-ens33? ? ?打开网卡的配置文件
?6,网络此时通,重启后网卡名改了
??vim ?/etc/sysconfig/network-scripts/ifcfg-ens33?
systemctl? restart network? ? ? ? ? 重启网卡服务
1,实验目的,给虚拟机新加一个网卡并让他可以使用
2,给虚拟机加一块网络适配器
3,cd ?/etc/sysconfig/network-scripts/? ? ?
4,复制ifcfg-en33? ? 作为模板? ?改成网卡ens36? 的文件
5,?vim ifcfg-ens36
6,将设备名和名字改正确
将ip设为可用
7,?ifconfig? ?-a? 可以看到两个网卡都是开的
ethtool? ?-i ens33? ? ? ?
查看网卡信息 ? ? ?
ethtool ?-p
让网口的灯快速闪烁 ? ? ? ? 方便去辨认
主机名? ?hostname
主机名文件? ? ?/etc/hostname
hostname | 查看主机名 |
hostname? 名字 | 临时修改主机名 |
hostnamectl? set-hostname? ?主机名 | 永久修改主机名 |
vim? /etc/hostname | 将名字写入此文件,也是永久修改 只有在第一行有用 |
hostname? 名字
exit
vim? /etc/hostname
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) | 删除默认路由 |
#Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路
由,优先级最低
#Genmask:目标网络对应的netmask
#Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
#Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
#Metric: 开销cost,值越小,路由记录的优先级最高
1,查看自己的路由表
?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? 可查看更新后的路由表
重启后就会消失
1,去到网卡的配置文件
vim /etc/sysconfig/network-scripts/route-ens33
2,添加路由
3,重启网络,并查看路由表
但 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? ?-natp
n?数字显示? ? ? a 详细显示 ? ? ? ?t tcp? ? ? ? p 进程pid
ss? ?-naup
n?数字显示? ? ? a 详细显示? ? ? ? u? udp? ? ? ? p 进程pid
traceroute? ?ip地址
dns 域名解析将域名翻译成 ip地址,然后封装数据包
?这个文件里要有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 的域名解析文件:
4,查看服务器上的域名?是否生效
?网卡备胎
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
?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毫秒,用来检查成员接口的链路状态,如果发现某个接口失效,则切换到其他可用接口。
?
?5,详细介绍? ifcfg-ens33
BOOTPROTO="static":表示这个网络接口(ens33)在启动时不会尝试通过DHCP或静态配置获取IP地址,而是依赖于其他方式来设置其网络参数。
NAME="ens33":指定了网络接口的名称,这里是ens33,这是Linux内核识别该物理网卡的方式。
DEVICE="ens33":与NAME相同,也是指明了网络设备的名称为ens33。
ONBOOT="yes":表明当操作系统启动时,应自动启动并激活此网络接口。
MASTER=bond0 和 SLAVE=yes:这两个选项说明 ens33 网络接口被配置为一个bonding主/从接口的一部分,其中MASTER=bond0表示 ens33 是 bond0 的从接口(slave),而 SLAVE=yes也进一步确认了它是作为绑定接口的从属部分
?
?6,将ens36? ?网卡得配置文件也改掉
?7,重启网络
?8,查看? bond? 状态
?/proc/net/bonding/bond0
可以看到目前ens33? 在工作
?9,当我们手动把ens33?网卡关闭,模拟故障,可以通过查看bond? 发现,ens36?备用网卡顶上来了
?10,另一端的服务器? ? ? 与bond0通讯? 不会断,因为ens36在工作了
#添加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在工作
?3,断开ens33? ? ?ens36? 工作
/proc/net/bonding/bond0
ifconfig bond0 down
rmmod bonding
tcpdump ? ?option? ? ? proto? ? ? ? ? dir? ? ? ? ? ? ? ? ? ? type
? ? ? ? ? ? ? ? ? ?选项? ? ? ? 协议 ? ? ?数据的方向 ? ?抓取的数据类型
proto(协议):? ? ? ? ? ? ? ??
tcp udp icmp
ip ipv6
arp
dir(方向):
1. src
2. dst
3. src and ? dst
type(类型)
host 主机
net 网段
port 端口
port range 端口范围
-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的标志位
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 端口号 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 -
protocal ?
协议种类:ip ? arp ?icmp ?tcp ? udp
应用层协议不可以直接抓取
root@localhost ~]#ping www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp
参数说明:
-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<数据包文件> 把数据包数据写入指定的文件。