linux 网络设置

发布时间:2024年01月10日

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

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

一,ifconfig?查看网络接口信息

(一)ifconfig? ? 具体含义

(二)?网卡名称详解

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

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

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

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

(三)ifconfig? ?常用格式

1,ifconfig 具体网卡名称

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

2,ifconfig -a

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

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

#表示开启或关闭网卡

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

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

5,ifconfig ens33:0 地址

#表示虚拟网卡

(四)?临时修改网卡名字

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,网络此时通,重启后网卡名改了

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

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

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

2,文件详细介绍:

3,改完要重启网卡服务

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

ethtool? ?-i ens33? ? ? ?

查看网卡信息 ? ? ?

ethtool ?-p

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

三,hostname

主机名? ?hostname

主机名文件? ? ?/etc/hostname

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

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

只有在第一行有用

1,临时修改主机名

hostname? 名字

exit

2,永久修改主机名

vim? /etc/hostname

四,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)删除默认路由

?(一)路由表具体含义

路由表主要构成:


#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? ? 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)

七,traceroute?路由追踪

traceroute? ?ip地址

八,nslookup

(一)过程

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

(二)域名原理

1,域名存放处

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 的域名解析文件:

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

九,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

?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=bond0SLAVE=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在工作了

第二种方法?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在工作

?3,断开ens33? ? ?ens36? 工作

?(三)查看bond0状态:

/proc/net/bonding/bond0

(四)删除bond

ifconfig bond0 down
rmmod bonding

十,tcpdump? 抓包工具

(一)网络检测工具

(二)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<数据包文件> 把数据包数据写入指定的文件。

文章来源:https://blog.csdn.net/wyq2070857323/article/details/135480170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。