进阶学习——Linux网络

发布时间:2024年01月09日

目录

一、网络配置命令

1.ifconfig——IP地址

1.1ifconfig的基础用法

1.1.1ifconfig命令详解

1.2常用格式

1.3修改网卡名称

1.3.1临时修改

1.3.2永久修改

1.4临时修改网卡

1.4.1设置虚拟网卡

1.4.2延伸——ethtool

1.5永久修改网卡

1.6实验? ——? 双网卡配置

1.6.1添加新的网卡

1.6.2将ens33的配置文件拷给ens36

1.6.3进入ens36进行配置文件修改

1.6.4测试

?2.ip

2.1ip link——数据链路层

2.2ip address——网络层

2.3ip路由

3.hostname——主机名

3.1临时性修改主机名

3.2永久性修改主机名

4.route——查看路由表条目

4.1如何查看路由

4.2添加/删除路由

4.3永久添加路由——重点!!!!

5.ss/netstat——网络连接状态

5.1ss与netstat最主要的区别

6.ping——测试网络连通性

7.traceroute——路由追踪

8.nslookup——域名解析

8.1延伸——dig

?8.2怎么验证DNS服务器是否可以解析域名

8.3域名解析文件

8.3.1hosts文件和DNS服务器的比较

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

9.scp——远程同步

10.bond——网卡聚合(多网卡)

10.1bond的作用

10.2Bonding聚合链路工作模式

10.2.1网卡聚合实验一(通过手写配置文件操作)

添加网卡

切换到配置文件目录下

进入bood0进行配置

修改ens33网卡配置

修改ens36配置

重启网卡

测试

11.tcpdump——数据抓包

11.1格式

11.2选项及说明

11.3演示

11.3.1tcpdump -D? 查看网卡

11.3.2tcpdump -i ens33? ?指定查看ens33 网卡

11.3.3tcpdump host 192.168.241.11?-i ens33

11.3.4tcpdump src host hostname——监听特定来源的包

11.3.5tcpdump dst host hostname——监听特定地址的包

11.3.6延伸


?

将Linux主机接入到网络,需要配置网络相关设置

一般包括如下内容:

  • 主机名
  • IP/netmask
  • 路由:默认网关
  • DNS服务器 主DNS服务器 次DNS服务器 第三个DNS服务器

一、网络配置命令

1.ifconfig——IP地址

来源于net-tools包

1.1ifconfig的基础用法

在不带任何选项和参数执行ifconfig 命令时, 将显示当前主机中已启用(活动)的网络接口信息

ifconfig -a可以查看所有网卡信息(包括被关闭的网卡)?

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

ens33中:“en”是”EtherNet“的缩写,表示网卡类型为以太网

“s”表示热插拔插槽上的设备(hot-plug-Slot)

数字“33”表示插槽编号?

1.1.1ifconfig命令详解
内容含义

ens33

第一块以太网卡的名称
flags=4163该接口
<UP已启用
BRADCAST支持广播
RUNNING正在运行
MULTICAST支持组播
mtu 1500最大传输单元1500字节
?inet 192.168.241.11IP地址
netmask 255.255.255.0子网掩码
broadcast 192.168.241.255广播地址
inet6 fe80::de6f:32c8:5a64:a6b2Ipv6地址
prefixlen 64子网长度
scopeid 0x20<link>作用域 link表示仅该接口有效
ether 00:0c:29:51:4b:b5mac地址
txqueuelen 1000传输队列长度(传输缓存大小) ?接口类
RX接收
packets? 213报文个数
bytes 24393总和字节数
errors错误
dropped丢弃
overruns溢出
frame冲突帧数
carrier载荷数
collisions冲突数

1.2常用格式

  • ifconfig? ? ? ? ? ? ? ? #默认显示活动的网卡
  • ifconfig? ?? 具体网卡名称? ? ? ? ? ?#只显示具体网卡的详细信息(无论该网卡是否启用)
  • ifconfig? ?-a? ? ? ? ? ? ? #显示所有的网卡
  • ifconfig ? ? ? ? ?网卡名称 ? ? ? ?[up|down]? ? ?(ifup? 网卡、ifdown? 网卡)? ? ? ? ? ?#表示开启或关闭网卡
  • ifconfig ? ? ens33:0? ? ? ? ? ip地址/子网掩码? ? ? ? ? ? ? ? ? ? ? ? ?#设置虚拟网卡

1.3修改网卡名称

1.3.1临时修改
ip link set ens36 down
#先将网卡ens36down掉

ip link set ens36 name abc? ? ?
#修改名字

ip link set abc up? 
#启动网卡
1.3.2永久修改
[root@localhost ~]#vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0"

#加入net.ifnames=0

GRUB_DISABLE_RECOVERY="true"

[root@localhost ~]#grub2-mkconfig -o /boot/grub2/grub.cfg

#重新生成grub的配置文件

修改网卡之后连接不上了,可进入终端进行修改

TYPE=Ethernet
#接口类型
BOOTPROTO=static
#地址获取方式 手动配置    dhcp 动态获取

NAME=ens37
#网卡名称
DEVICE=ens37
#网卡
ONBOOT=yes
#开机是否自启 开启
IPADDR=192.168.91.10
#地址
NETMASK=255.255.255.0
#子网掩码
GATEWAY=192.168.91.2
#网关
DNS1=8.8.8.8
#将ip地址转换成 域名

修改之后就可以了

1.4临时修改网卡

1.4.1设置虚拟网卡

1.4.2延伸——ethtool

ethtool -p ens33命令可以让ens33网卡快速闪烁(便于找到该网卡进行操作)

1.5永久修改网卡

永久修改网卡的话,需要将配置写入文件vim /etc/sysconfig/network-scripts/ifcfg-ens33

只保留如下行

类型含义
TYPE=Ethernet网卡的类型
BOOTTPROTO=staticip地址获取方式
NAME=ens33网卡的描述一般和DEVICE一样
DEVICE=ens33网卡的名称,必须和ifconfig中看到的一样
ONBOOT=yes开启自启动
IPADDR=192.168.91.100ip地址
NETMASK=255.255.255.0子网掩码 PREFIX=24
DNS1=8.8.8.8dns服务器1
DNS2=114.114.114.114dns2服务器2

1.6实验? ——? 双网卡配置

1.6.1添加新的网卡

1.6.2将ens33的配置文件拷给ens36

1.6.3进入ens36进行配置文件修改

1.6.4测试

?2.ip

2.1ip link——数据链路层

2.2ip address——网络层

可以输入命令ip a? =ip? address

2.3ip路由

3.hostname——主机名

查看或设置当前主机名

3.1临时性修改主机名

hostname? 主机名

3.2永久性修改主机名

hostnamectl set-hostname cxk

或者进入vim /etc/hostname进行修改

注意:vim /etc/hostname第一行是有效主机名,并且重启后生效

4.route——查看路由表条目

4.1如何查看路由

route命令查看或设置主机中路由表信息

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

4.2添加/删除路由

route add -net 网段地址? gw? IP地址添加指定网段的路由记录
route del -net 网段地址删除指定网段的路由记录
route add default gw IP地址向路由表中添加默认网关记录
route del default gw IP地址删除路由表中默认的网关记录

添加一条去往10.0.0.0段的路由,通过网关localhost.local(本机)进行转发

删除去往10.0.0.0段的路由

添加默认路由

删除默认路由

4.3永久添加路由——重点!!!!

进入vim /etc/sysconfig/network-scripts/route-ens33编辑添加永久路由

重启网卡,查看网卡信息?

5.ss/netstat——网络连接状态

服务不能用,ftp、httpd网页无法访问

1.首先ping? 是否能通;看网络是否通,防火墙是否关闭

2.查看服务是否开启systemctl status? 服务名

3.ss? ?或? netstat? 看服务端口是否被占用

4.查看服务的配置文件是否正确

ss(scket statistics)
-ttcp协议相关
-uudp协议相关
-w套接字相关
-xunix sock相关
-llisten状态的连接
-a所有
-n数字格式
-p相关的程序及PID
-e扩展的信息
-m内存容量
-o计时器信息
-r--resolve 把IP解释为域名,把端口号解释为协议名称

netstat
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n以数字的形式显示相关的主机地址、端口等信息
-r显示路由表信息
-l显示处于监听(Listening)状态的网络连接及端口信息
-t查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)

5.1ss与netstat最主要的区别

ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。 但 ss 的优势在于它能够显示更多更详细的有关 TCP 和UDP连接状态的信息,而且比 netstat 更快速更高效 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

6.ping——测试网络连通性

选项含义
-c指定发送多少个包
-w指定等待时间
-t无终止ping

ping? 地址? 会一直ping? ?Ctrl +? c? 退出?

?ping -c指定ping包

?ping -w? 指定几秒返回

7.traceroute——路由追踪

格式:tarceroute? IP地址

8.nslookup——域名解析

测试DNS域名解析

nslookup? 目标主机地址? [DNS服务器地址]

同样,Windows也自带着域名解析工具

8.1延伸——dig

dig可以查看更详细的信息

?8.2怎么验证DNS服务器是否可以解析域名

nslookup、dig、host、ping

8.3域名解析文件

vim /etc/hosts

写在配置文件(/etc/hosts)中的优先级大于域名服务(域名服务器是自己设置的DNS1 8.8.8.8);

因此在选择中会选择192.168.91.101解析?

Windows也有自带的hosts解析文件,存放路径为(C:\Windows\System32\drivers\etc)

8.3.1hosts文件和DNS服务器的比较
  • 默认情况下,系统首先从 hosts 文件查找解析记录
  • hosts 文件只对当前的主机有效
  • hosts 文件可减少 DNS 查询过程,从而加快访问速度

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

本地主机映射文件

/etc/resolv.conf dns

保存的是你DNS服务器的地址

/etc/hosts 文件 保存主机名与IP地址的映射记录

9.scp——远程同步

[root@localhost opt]#scp /opt/passwd root@192.168.241.22:/opt/passwd 
The authenticity of host '192.168.241.22 (192.168.241.22)' can't be established.
ECDSA key fingerprint is SHA256:CcASxxV4CvFA+6w68th3aaCYGbGB3UwaAK1xifsM/Pk.
ECDSA key fingerprint is MD5:d6:ee:2e:4d:f6:34:c5:14:0e:ef:99:8c:54:48:c6:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.241.22' (ECDSA) to the list of known hosts.
root@192.168.241.22's password: 
passwd                                          100% 2101     1.6MB/s   00:00    


#scp 命令字
#/opt/passwd 本地文件地址
#root@192.168.241.22   对方用户名@地址
#/opt/passwd   同步到对方用户哪个文件夹下

10.bond——网卡聚合(多网卡)

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的(会引发地址冲突)。

10.1bond的作用

主备模块:可以解决单点故障;

双主模式:可以分摊流量。?

10.2Bonding聚合链路工作模式

  • 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

10.2.1网卡聚合实验一(通过手写配置文件操作)

bond(绑定)是指将两个或多个物理网卡虚拟化为一个逻辑接口的过程,以实现冗余、负载均衡或增加带宽。

添加网卡

切换到配置文件目录下

cd /etc/sysconfig/network-scripts/

进入bood0进行配置

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毫秒,用来检查成员接口的链路状态,如果发现某个接口失效,则切换到其他可用接口。

fail_over_mac=1:启用MAC地址转移功能,当主接口失效时,将整个bonding接口的MAC地址迁移到当前活动的从接口上。

修改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也进一步确认了它是作为绑定接口的从属部分

修改ens36配置

重启网卡

测试

目前ens33是主流量网卡,ens36是从流量网卡

如果关掉一个,那么从会顶替,继续工作

11.tcpdump——数据抓包

tcpdump命令,?是一个强大的网络协议分析器,它主要用于监控和捕获网络流量数据包,并能够以易于阅读的格式显示这些信息。在Linux和其他类Unix系统中广泛使用,是网络管理员、安全专家和开发者进行网络故障排查、性能分析以及安全审计的重要工具。

11.1格式

tcpdump option proto? ? ? ? ? ?dir? ? ? ? ? ? type

? ? ? ? ? ? ? ? ?选项? ?协议 数据的方向 抓取的数据类型

11.2选项及说明

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

11.3演示

11.3.1tcpdump -D? 查看网卡

11.3.2tcpdump -i ens33? ?指定查看ens33 网卡

11.3.3tcpdump host 192.168.241.11?-i ens33

监听特定主机,监听主机10.0.0.100 的通信包

注意:出、入的包都会被监听。

11.3.4tcpdump src host hostname——监听特定来源的包

11.3.5tcpdump dst host hostname——监听特定地址的包

11.3.6延伸

抓取来源于192.168.241.22 目的地址是192.168.241.11的包

其中,

  • -nn:禁止将IP地址和端口号转换为主机名和服务名,提高输出速度
  • -vv:显示更多详细信息
  • -i? ens33:显示ens33网卡的信息
  • icmp:代表只显示icmp协议的数据包
  • and:各表达式之间使用and连接
  • src? host? ip地址:出发地址
  • dst? host? IP地址:目标地址

抓取ens33的22端口的包

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