• Linux - 网络管理


    系统网络重要概念

    • 设备 主机内的网卡
    • 广播地址 到达本网段上所有主机的地址
    • 接口 为使用设备,驱动程序在设备上创建的接口
    • 子网掩码 将IP地址划分成网络地址和主机地址两部分的掩码
    • 路由 IP包跨网段访问时候的下一跳地址
    • 链路 设备到网络的连接

    Linux设备信息示例

    使用ip addr / ip a查看设备,包含没有配置的网络设备
    在这里插入图片描述

    网卡配置文件

    网络设备默认的配置路径:/etc/sysconfig/network-scripts/
    配置文件:ifcfg-*
    在这里插入图片描述
    在这里插入图片描述
    其中参数值不分大小写,可以不用引导。
    在这里插入图片描述

    修改配置文件

    使用编辑器直接修改配置文件,修改前做好备份;配置修改后不会立即生效,需要重启 NetworkManger 服务进程或者重启系统。

    # 备份配置文件:
    cp ifcfg-eth1 ifcfg-eth1.bak
    
    # 重启 NetworkManager 服务进程:
    systemctl reload NetworkManager
    
    • 1
    • 2
    • 3
    • 4
    • 5

    网卡最小配置文件示例

    一份可用的网卡配置文件并不需要列出所有的配置选项,有时过多配置项反而会增加网络排障难度,最小配置如下:

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=enp0s3
    DEVICE=enp0s3  
    ONBOOT=yes
    IPADDR=192.168.56.100 
    NETMASK=255.255.255.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查看 IP 地址

    使用 ip 命令显示设备和地址信息:
    在这里插入图片描述
    在这里插入图片描述

    显示接口的统计信息

    • ip 命令可以用于显示关于网络性能的统计信息
    • RX 表示接受的数据包信息
    • TX 表示传送的数据包信息
      在这里插入图片描述

    显示套接字信息

    使用 ss 命令查看套接字统计信息,加上参数可过滤不同类型的套接字,如显示所有 TCP 套接字信息:
    在这里插入图片描述

    NetworkManager

    NetworkManager 是系统中动态控制及配置网络的守护进程,用于保持当前网络设备和连接处于工作状态。通过命令行工具 nmcli 可以控制 NetworkManager,nmcli 全面,强大且复杂。

    关键概念:

    • 设备:网络中,设备即网络接口;
    • 连接:连接是供设备使用的配置;
    • 同一个设备可能存在多个连接,但一次只能有一个保持活动状态。

    通过 nmcli 查看网络信息

    con 代表连接,–active 选项可以过滤出活动的连接
    在这里插入图片描述
    显示单个连接的详细信息:ncmcli con show “连接名”,与 ip link 命令相似
    显示设备状态,使用:ncmcli dev status
    显示设备信息,使用:ncmcli dev show [设备名]

    通过nmcli 创建连接

    步骤:

    1. 创建一个名为“Demo”的连接,使用DHCP方式通过enp4s0网口连接
    2. 显示所有连接
    3. 启动刚刚创建的“Demo”连接
    4. 查看当前连接状态

    例如:

    nmcli con add con-name “test” type Ethernet ifname enp3s0
    nmcli con show
    nmcli con up “test”
    nmcli con show
    nmcli con add 中还有很多可选类型,如网桥、绑定、VPN、VxLAN 等,要查看所有选项,使用 nmcli con add help
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    通过nmcli 修改连接

    使用命令 nmcli con mod 修改连接,传入的参数为键值对。键为属性名称,可通过 nmcli con show [连接名] 查询,如:
    在这里插入图片描述

    通过nmcli修改DNS服务器

    配置参数可以增加或删除值,在参数前使用 +/- 符号,如:
    添加辅助 DNS 服务器

    nmcli con mod “test” +ipv4.dns 114.114.114.114
    
    • 1

    修改完成后需要 up 活动中的连接,使之生效:

    nmcli con up “test”
    
    • 1

    nmcli 还有交互式编辑模式和图形界面。
    在这里插入图片描述

    路由

    要让不同子网的两台主机能够相互通讯,就需要有一种能够描述如何从一台主机到另一台主机的机制,这一机制称为:路由选择(Routing),路由选择通过路由项进行描述。

    路由项是一对预先定义的地址,包括:目的地(Destination)和网关(Gateway)。路由项的含义是通过网关能够完成与目的地的通讯;路由表是多个路由项的集合。

    路由管理与配置

    许多Linux中,都使用 route 查看、配置、管理本机路由。除了 route 命令,ip 和 nmcli 命令也可以用来管理系统路由。这些命令作用于系统中的路由表,系统运行时,路由表加载到内存中,由系统内核进行维护。

    route 查看路由表

    在这里插入图片描述
    使用route -n参数显示路由时,Destination字段显示的是IP。采用route命令查看路由时,共有八个字段,字段意义说明如下:

    • U Up表示此路由当前为启动状态
    • H Host,表示此网关为一主机
    • G Gateway,表示此网关为一路由器
    • R Reinstate Route,使用动态路由重新初始化的路由
    • D Dynamically,此路由是动态性地写入
    • M Modified,此路由是由路由守护程序或导向器动态修改
    • ! 表示此路由当前为关闭状态

    route 新增路由

    新增(暂时) 一条到网段或主机的路由,如下:

    route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
    
    • 1
    • 使用route命令可以新增路由数据,新增路由数据保存在内存中,重启后失效。
    • route add -net 192.168.101.0 netmask 255.255.255.0 dev enp3s0,代表新增到192.168.101.0/24网段路由,经由enp3s0发送出去。
    • route add -host 192.168.101.100 dev enp3s0,代表新增到192.168.101.100主机路由,经由enp3s0发送出去。
    • 通过route查看路由表,可知,到主机的路由优先于到网段的路由。

    例如:

    [root@localhost~]# route add -net 192.168.101.0 netmask 255.255.255.0 dev enp4s0
    [root@localhost~]# route add -host 192.168.100.10 dev enp4s0
    [root@localhost~]# route
    Kernel IP routing table
    Destination    	Gateway  	Genmask         	Flags 	Metric 	Ref    Use 	Iface
    default         	_gateway        	0.0.0.0         	UG    	100    	0        0 		enp4s0
    192.168.100.10  	0.0.0.0         	255.255.255.255 	UH    	0      	0        0 		enp4s0
    192.168.101.0   	0.0.0.0         	255.255.255.0   	U     	0      	0        0 		enp4s0
    192.168.110.0   	0.0.0.0         	255.255.255.0   	U     	100   	0        0 		enp4s0
    192.168.122.0   	0.0.0.0         	255.255.255.0   	U     	0      	0        0 		virbr0 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    route 删除路由

    使用route del命令删除到网段或者主机的路由。语法:

    route del [-net|-host] [netmask Nm] [gw Gw] [[dev] If]
    
    • 1
    • route del -net 192.168.101.0 netmask 255.255.255.0 dev enp3s0,代表删除到192.168.101.0/24网段路由。删除网段路由时,网段和掩码这两个参数一定需要携带,dev 参数可以不携带
    • route del -host 192.168.101.100 dev enp3s0,代表删除到192.168.101.100主机路由。后面的dev参数可以不带
    • 删除route文件中的路由,采用vi编辑,然后重启网络即可

    nmcli 配置静态路由

    使用nmcli命令为网络连接配置静态路由,如下:

    # nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 10.10.10.1"
    
    • 1

    使用编辑器配置静态路由,使用交互式命令如下:

    # nmcli con edit type ethernet con-name enp3s0 
    ===| nmcli interactive connection editor |=== 
    Adding a new '802-3-ethernet' connection 
    Type 'help' or '?' for available commands. 
    Type 'describe [.]' for detailed property description. 
    You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb 
    nmcli> set ipv4.routes 192.168.122.0/24 10.10.10.1 
    nmcli> 
    nmcli> save persistent 
    Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. 
    Do you still want to save? [yes] yes 
    Connection 'enp3s0' (1464ddb4-102a-4e79-874a-0a42e15cc3c0) successfully saved. 
    nmcli> quit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    主机名

    主机名是一个局域网中唯一标识一台机器的名称。这台机器不一定是一台物理机器,也可以是一台虚拟机。主机名信息存放在文件 /etc/hostname 中。

    设置主机名

    • 临时设置主机名(直到下次重启前有效):hostname new-name
    • 永久设置主机名:hostnamectl set-hostname new-name
    • 通过修改文件设置主机名:在 /etc/hostname 文件中写入 new-name。

    设置完成后并不会立即生效,重新登陆后才能在命令提示符中看到,或者 source .bashrc。使用 hostname 命令查看当前系统的主机名。

    hosts 文件

    局域网中存在着一些主机,我们可以通过 IP 地址去访问它们。随着局域网中主机数量增加,IP 地址较难记忆,我们希望通过主机名直接访问其他主机。这时我们可以通过一张记录着主机名和 IP 地址的表找到这些主机,这张表就是 hosts。

    hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从hosts文件中寻找对应的 IP 地址,一旦找到,系统就会立即打开对应网页。如果没有找到,则系统会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。

    查看 hosts 文件:cat /etc/hosts
    在这里插入图片描述

    修改hosts 文件

    可以用编辑器修改 hosts 文件内容,格式:

    ip<TAB>domain.com
    192.168.10.20    www.example.com
    #若想去掉某条记录,加#注释即可
    #192.168.10.20    www.example.com
    
    • 1
    • 2
    • 3
    • 4

    hosts 与 DNS

    随着网络中主机数量的增加,单个 hosts 文件难以承载众多的映射关系。当在 hosts 中找不到域名对应的 IP 时,主机会将域名提交给域名解析服务器(DNS),然后 DNS 返回 IP 给主机,这个过程称为:域名解析

    DNS 就像是一个公共的 hosts 文件/分布式数据库

    查询DNS记录

    使用 nslookup 命令查询 DNS 中的记录,并且可以查看域名解析是否正常,帮助诊断网络问题。

    nslookup 的命令格式如下:

    nslookup domain [dns-server]
    
    • 1

    其中 domain 是要查询的域名,
    [dns-server] 是域名解析服务器,非必选参数,常见的如:8.8.8.8,114.114.114.114

    nslookup 未安装,采用如下命令进行安装:
    yum install -y bind-utils

    DNS 解析记录

    DNS中除了将域名解析到一个IP地址之外,还支持其他类型的解析记录
    在这里插入图片描述
    解析记录详解:https://itbilu.com/other/relate/EyxzdVl3.html

    查询其他记录

    直接输入nslookup可进入交互式查询界面。

  • 相关阅读:
    rocketmq-exporter配置为系统服务-自启动
    初始位运算
    【算法挨揍日记】day09——704. 二分查找、34. 在排序数组中查找元素的第一个和最后一个位置
    【操作系统】线程
    leetcode - 1658. Minimum Operations to Reduce X to Zero
    在培训班学网络安全有用吗
    Mybatis-plus的通用Service
    上周热点回顾(10.24-10.30)
    肖sir__linux讲解(2.0)
    vue学习之内容渲染
  • 原文地址:https://blog.csdn.net/qq_51601649/article/details/125999452