Linux网络基础

发布时间:2024年01月09日

目录

一、Linux 网络相关概念和修改 IP 地址的方法

(一)网卡的命名规则

(二)ifconfig的使用方法

(三)修改IP地址

(四)删除临时IP地址

(五)网络相关的配置文件

(六)双网卡

(七)修改网卡名称

(八)多网卡绑定

二、主机名

(一)临时修改主机名

(二)永久修改主机名

1.使用命令

2.修改配置文件

三、配置路由

(一)基本信息

(二)添加路由

(三)删除路由

(四)路由追踪

四、检查网络环境

五、查询域名

六、数据抓包


一、Linux 网络相关概念和修改 IP 地址的方法

(一)网卡的命名规则


centos6之前的命名方式都是以网络接口使用连续号码命名:如eth0、eth1等,当增加或者删除网卡时,名称可能会发生变化

centos7,使用dmidecode采集命名方案

规则1:

对于板载设备命名合并固件或 BIOS 提供的索引号,如果来自固件或 BIOS 的信息可读就命名,比如eno1,这种命名是比较常见的,否则使用规则2。

规则2:

命名合并固件或 BIOS 提供的 PCI-E 热插拔口索引号,比如 ens1,如果信息可读就使用,否则使用规则3。

规则3:

命名合并硬件接口的物理位置,比如 enp2s0,可用就命名,失败直接到方案5。

规则4:

命名合并接口的 MAC 地址,比如 enx78e7d1ea46da,默认不使用,除非用户选择使用此方案。

规则5:

使用传统的方案,如果所有的方案都失败,使用类似 eth0 这样的样式。

输入cd ?/etc/sysconfig/network-scripts回车运行脚本,再输入ls查看网卡名称

直接输入ifconfig 查看网卡信息

enX(X 常见有下面 3 种类型) :

o:主板板载网卡,集成设备的设备索引号。?

p:独立网卡,PCI 网卡

s:热插拔网卡,usb 之类,扩展槽的索引号

nnn (数字)表示:MAC 地址+主板信息计算得出唯一的序列

(二)ifconfig的使用方法


1.ifconfig是linux系统查看本机网络地址的命令,与windows系统的ipconfig一字之差

2.输入ifconfig查看网卡信息

上图信息表示:

第一行

ens33: (第一块以太网卡的名称)

en:标识ethernet

s:热插拔网卡,USB之类的扩展槽索引号

33:网卡的一个编号

UP:网络接口被启用 (若没被启用就是down)

BROADCAST:主播地址或广播地址

RUNNING:网卡设备已连接

MULTICAST:支持组播

mtu 1500:(Maximum Transmission Unit)最大传输单元大小为 1500 字节

第二行:该网卡的 IP 地址,子网掩码,广播地址

inet:网卡的IP地址

netmask:子网掩码

broadcast:广播地址

第三行:IPV6 的配置信息

第四行:网卡的 MAC 地址《ether 表示连接类型为以太网 ?txqueuelen 1000 -->传输队列的长度

ether:网卡的Mac地址

?第五行代表了接收数据包的个数和大小的统计信息

?第六行代表了异常接收的数据包的个数,包括丢包丢几个和错误信息

?第七行代表了发送数据包的个数和大小的统计信息

第八行代表了异常接收的数据包的个数,包括丢包丢几个和错误信息

(RX表示接收) ? ? ? (TX表示发送)

(三)修改IP地址


1.临时修改IP地址

输入ifconfig ens33 +新的IP地址 ?(network ?255.255.255.0)括号里的是子网掩码,可输可不输,不输的话就是默认

注释:

①修改地址后,当前连接会中断,如果你连接了xshell这类软件,此时会断开连接,需要重新输入新的ip地址进行连接

②新的IP地址网卡重启后失效:输入systemctl restart network回车

如果不想查看多余信息,可以输入 ifconfig ens33只看网卡地址

2.添加多个临时IP地址

ifconfig 网卡名称:0第一个IP地址 (network 子网掩码)------增加第一个IP地址

ifconfig 网卡名称:1第一个IP地址 (network 子网掩码)------增加第一个IP地址

注释:

①在这里也是一样的,括号内容是子网页码,可以输也可以不输,不输的话就是默认

②网卡名称后面也可以从1开始添加,但是需要依次添加

2.永久修改IP地址方法

通过修改网卡配置文件改 IP 地址

配置网卡信息vim? ?/etc/sysconfig/network-scripts/ifcfg-ens33

重启网卡后生效

(四)删除临时IP地址


两种方法?

?1.想保留一些信息的,删除指定的IP地址,输入ifconfig 网卡名称:网卡序号 del 相应的IP地址

2.重启网卡:systemctl restart network

? (五)网络相关的配置文件

1 ? IP 地址,子网掩码等配置文件 ?:ls /etc/sysconfig/network-scripts/ifcfg-ens33

2 ?网络回环地址 : ls /etc/sysconfig/network-scripts/ifcfg-lo

3 ?DNS配置文件 :cat /etc/resolv.conf

4 ?主机和 IP 绑定信息:cat ?/etc/hosts ? ? ? ?

5 主机名:cat /etc/hostname

(六)双网卡

首先添加一块网卡

打开它的配置文件去进行设置

删除UUID,防止网卡冲突

重启网卡后就会生效

(七)修改网卡名称

1.临时修改网卡名称

先down掉:ifconfig ?网卡名 down

修改网卡名:ip ?link ?set ens36 ?name kysw,开启网卡:ifconfig ???kysw ?up

这是因为网卡的配置文件还没有改??vim ?/etc/sysconfig/network-scripts/ifcfg-ens36

修改完毕之后,重启一下网卡服务就可以了

永久修改网卡名

临时修改网卡名称,重启之后就会失效,想要永久修改网卡名称,需要写道文件当中

vim 打开 /etc/default/grub??

修改后重新加载一下grub文件

可以看到,名字是修改了,但是没有网络,与临时修改一样,需要去重新修改网卡配置文件?

(八)多网卡绑定

bond(绑定)是指将两个或多个物理网卡虚拟化为一个逻辑接口的过程,以实现冗余、负载均衡或增加带宽。这种技术通常被称为“网络接口绑定”或“链路聚合

首先要创建booding设备的配置文件

  • NAME=bond0:定义了这个网络接口的名称为bond0。

  • TYPE=bond:表示这是一个绑定类型的网络接口,即它是由多个物理网卡通过绑定技术聚合而成的逻辑接口。

  • DEVICE=bond0:再次指明网络设备的名称为bond0。

  • BOOTPROTO=static:与之前解释的一样,意味着在启动时不会使用DHCP或静态配置来自动获取IP地址,而是根据本配置文件中的设置来配置网络参数。

  • IPADDR=192.168.83.100:设置了bond0接口的IP地址为192.168.83.100

  • 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毫秒,用来检查成员接口的链路状态,如果发现某个接口失效,则切换到其他可用接口。
    • fail_over_mac=1:启用MAC地址漂移功能,当主接口失效时,将整个bonding接口的MAC地址迁移到当前活动的从接口上。

先来修改第一块网卡的配置

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

再编辑第二块网卡的配置文件

都配置完毕后,重启网卡就会生效

此时,我们来做一个测试

查看一下bond0的信息? cat ?/proc/net/bonding/bond0

将该网卡关闭后,备用网卡就会自动开启

删除bond?

二、主机名

(一)临时修改主机名

hostname? 新主机名

重启之后就会失效

(二)永久修改主机名

1.使用命令

hostnamectl set-hostname 新主机名

2.修改配置文件

重启之后就会生效

三、配置路由

命令之----route

作用:查看或设置主机中路由表信息

(一)基本信息

route ?-n 以数字形式显示路由

Destination:目标网络地址或者子网。可以是单个IP地址、默认路由(0.0.0.0)或特定的网络地址

Gateway:需要通过这个网关(路由器)进行转发。如果为"0.0.0.0" 或同主机地址,则说明直接通过本机接口发送(无须经过其他路由器)。

Genmask:子网掩码,用于确定目的IP地址与Destination字段指定的网络是否匹配。

Flags:标志位,表示路由的特性

Metric:度量值,决定在有多条到达同一目的地的路由时选择哪一条路由。通常情况下,数值越小优先级越高

Ref :参考计数,表示路由更新次数或其他内部引用次数

Use:使用计数,记录了该路由被使用的次数

Iface:数据包将从哪个网络接口发出。这是实际执行数据传输的物理或逻辑网络设备名称

(二)添加路由

添加一条去往10.0.0.0/8段的路由,通过192.168.83.2转发

添加一条默认路由,通过192.168.83.2转发

重启之后生效

可以看到,之前添加的路由信息,重启之后就会失效

(三)删除路由

使用命令删除

或者直接删除配置文件

(四)路由追踪

使用traceroute命令,可以显示数据包从本地主机到目标主机经过的路由路径。通过发送一系列具有不同TTL(Time to Live,生存时间)值的数据包(通常使用ICMP或UDP协议),当数据包达到其TTL值时,沿途路由器会丢弃该数据包并返回一个ICMP超时报文,从而揭示了数据包所经过的每一跳路由器的信息。

去往192.168.83.1只需要经过一个路由,最多只显示30个

四、检查网络环境

命令之-----ss、netstat

这两条命令都是用于查看网络环境情况,

ss:更靠近内核?

netstat:更靠近用户

所以,我们在操作时,一般使用ss命令

?t:tcp协议相关
?u:udp协议相关
?w:裸套接字相关
?x:unix? sock相关
?l:listen状态的连接
?a:所有
?n:数字格式
?p:相关的程序及PID
?e:扩展的信息
?m内存用量
?o计时器信息

?ss? -natp 命令会列出当前系统中所有与TCP相关的连接,并显示它们的详细信息

五、查询域名

nslookup是一个命令行工具,用于查询DNS(域名系统)服务器以获取关于主机名或IP地址的信息。它主要用于诊断网络问题、验证DNS记录的正确性以及了解域名解析的过程。

Name:?www.wshifen.com?Address: 104.193.88.77?和?Name:?www.wshifen.com?Address: 104.193.88.123:最后得到的是A记录,即www.wshifen.com对应的IP地址,分别为104.193.88.77和104.193.88.123。这意味着访问www.baidu.com实际上会连接到这两个IP地址之一。通常情况下,这种设置是为了负载均衡或高可用性目的

六、数据抓包

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

基本语法是:tcpdump? 【选项】 【表达式】

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

实际操作:

1.查看网卡:tcpdump? -D

2.指定查看ens33的网卡:tcpdump? -i? ens33

3.监听特定主机 ,监听与192.168.83.30的数据包

4.监听来源于192.168.83.30的数据

5.监听目标地址为192.168.83.30的数据包

6.只抓来源于192.168.83.40,目的地址是192.168.83.30的icmp协议的包

-nn:禁止将IP地址和端口号转换为主机名和服务名,提高输出速度

-vv:显示更多详细信息

-i? ens33:显示ens33网卡的信息

icmp:代表只显示icmp协议的数据包

and:各表达式之间使用and连接

src? host? ip地址:出发地址

dst? host? IP地址:目标地址

7.抓取到文件后并保存,并进行使用 -r 查看

以上就是tcpdump命令的一些基本用法。

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