麒麟操作系统 (kylinos) 从入门到精通 -高级教程 - 第84篇 网络设置与防火墙管理

231 阅读17分钟

0.基础环境

类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器D2000(ArmV8 指令集)
系统:银河麒麟操作系统 V10 SP1(2303)
关键词:linux,网络,主机名,防火墙,ufw,firewall-cmd

1.主机名设置

Hostname,即主机名,是计算机网络中的基础标识符,其理论核心在于为机器提供一个人类可读且网络可解析的名称,从而替代复杂难记的 IP 地址。在应用层面,主机名是实现网络服务和系统管理的关键:它作为 DNS 解析的基础,使得应用程序和用户能够通过名称找到对应的网络资源;同时,它深入集成到系统安全和配置中,例如在 Kerberos 认证、SSL 证书验证和邮件服务器的反向 DNS 查找中发挥作用。在日常运维中,主机名清晰地出现在 Shell 提示符和系统日志中,是管理员快速识别和诊断分布式环境中设备状态的必要工具,确保了集群协作和系统可靠性。

1.1 图形化修改

一、点击开始菜单,打开设置,切换到关于页面

二、点击计算机名的修改图标

输入更改的名称,确定即可。

1.2 命令行图形化修改

打开命令行,输入nmtui

移动方向键,至设置系统主机名。

1.3 命令行修改

显示主机名

hostname

hostnamectl

hostnamectl 是一个用于查询和控制系统主机名的命令行工具。它是 systemd 软件包的一部分,在几乎所有现代 Linux 发行版(如 Ubuntu, Fedora, CentOS/RHEL, Debian 等)中都是标准配置。

永久修改主机名

这是最常用的操作。它会永久更改 /etc/hostname 文件,并立即在内核中生效。

sudo hostnamectl set-hostname new-name

1.4 直接修改配置文件

sudo vim /etc/hostname

配套修改/etc/hosts映射

sudo vim /etc/hosts

2.网络设置

2.1 基础理论

什么是网络

解释网络就是把两台或更多的设备(电脑、手机等)连接起来,以便共享信息共享资源

  • 网络模型:  简单介绍一下 OSI 或 TCP/IP 模型,重点强调分层的思想,就好比邮政系统,每层只负责一个特定的任务。
概念简单类比技术解释重点强调
IP 地址就像你的家庭地址。互联网上唯一标识一台设备的数字标签,用于数据的寻址和发送。唯一性和寻址。
子网掩码区分你家地址属于哪个小区。用于确定一个 IP 地址的网络部分和主机部分。决定了一个网络的大小。
网关 (Gateway)小区的大门或保安。一个网络的出口或入口。当你需要访问外部网络(比如互联网)时,你的数据包必须先交给网关处理。连接内部与外部网络的关键设备。
  • 数据包 (Packet):  告诉学生,计算机发送数据不是一次性送出,而是切分成小块,每一块就是一个数据包,就像快递包裹

  • 最大传输单元 (MTU):  每一个网络链路(例如以太网)都有它能传输的“最大包裹尺寸”限制,这就是 MTU。

  • IP 分段 (Fragmentation):

    • 当一个数据包太大,超过了下一跳链路的 MTU 时,发送方或路由器会把这个大包裹再切分成更小的包裹,这个过程就是 IP 分段。

    • 类比:你要寄一个大箱子(大包),但快递公司(链路)规定单个包裹不能超过 5kg5 \text{kg},所以你必须把它分成几个小箱子(分段)。

    • 重点:  分段会增加网络的开销(因为要多加几个头部信息),所以通常是尽量避免的。

路由器

  • 角色:  路由器是连接不同网络的设备,它是互联网的核心。
  • 功能:  它的主要职责是根据数据包的目标 IP 地址,选择最佳路径将其转发到目的地。
  • 路由表 (Routing Table):  路由器内部有一个“地图”,记录着去往不同网络的路径信息。它就是依靠这个表来做决策的。
  • 与交换机 (Switch) 的区别:  简单提一下,交换机只在一个局域网内工作(小区内部通信),而路由器是连接不同网络的(跨小区/跨城市通信)。

🌐 5. 网络的“电话簿”:名系统 (DNS)

  • 为什么要用 DNS?

    • 人们记住 www.google.com 比记住 142.250.67.164 容易得多。

    • 类比:我们给朋友打电话记住名字,而不是记住一串电话号码

  • 工作原理:

    • DNS 就是一个巨大的分布式电话簿

    • 当你输入一个网址时,你的计算机就会去询问 DNS 服务器:这个“名字”对应的“IP 地址”是什么?

    • DNS 服务器给出 IP 地址后,你的计算机才能真正开始与目标网站建立连接。

  • 重点:  DNS 实现了 “域名”到“IP 地址”转换/解析

网关

概念类比解释
网关 (Gateway)小区的大门它是一个特殊的设备(通常就是路由器),作为你所在本地网络(小区)的唯一出口。
本地网络你家的小区/校园你的电脑、手机、打印机等设备所在的局域网(LAN)。
外部网络整个城市/互联网本地网络以外的所有网络。
网关的作用总结一句话
决策判断数据包是留在本地还是送往外部。
转发将发往外部网络的数据包接收并转发给下一个路由器。
桥梁连接局域网和广域网的桥梁。

网关、交换机、路由器

特性交换机 (Switch)路由器 (Router)网关 (Gateway)
主要功能连接、隔离。在同一网络内转发数据,隔离碰撞域。连接、路由。连接不同网络,选择最佳路径转发数据包。边界、协议转换。本地网络通往外部网络的唯一出口。
工作范围局域网 (LAN) 内部。连接 LAN 与 WAN,实现跨网络通信。网络的边界(通常是本地网络和互联网之间)。
工作层级数据链路层(第二层,L2)网络层(第三层,L3)逻辑概念,可工作在任何层,通常是 L3 或更高(如应用层)。
寻址依据MAC 地址(物理地址)。IP 地址(逻辑地址)。IP 地址(用于决策转发),有时也涉及协议转换。
数据单位帧 (Frame)数据包 (Packet)数据包 (Packet)
是否必须局域网内设备互通必须。访问外部网络时必须。访问外部网络时必须。
设备示例8 口交换机、核心交换机。宽带路由器、边界路由器。路由器、防火墙、代理服务器(Proxy Server)。
总结内部通信:让小区内的邻居互相访问。跨区通信:连接不同的城市或小区。出入口:小区通往外界的唯一大门。

DHCP与手动设置

特性DHCP (动态)手动设置 (静态 IP)
配置方式自动获取手动输入所有参数
IP 地址变动可能变动(有租期)固定不变
IP 冲突风险低 (由服务器管理)高 (依赖人工记录)
管理工作量极低
适用场景大多数终端设备(电脑、手机)服务器、网络打印机、远程访问设备

IPV4地址分段

地址类别第一个字节范围 (十进制)默认子网掩码 (Slash 记法)网络 ID 位数 / 主机 ID 位数可用网络数量 (理论值)每网络可用主机数量 (理论值)示例 IP 地址
A 类1 到 1261 \text{ 到 } 126255.0.0.0255.0.0.0 (/8)8 位 /24 位8 \text{ 位 } / 24 \text{ 位}272=1262^{7} - 2 = 12622421670 万2^{24} - 2 \approx 1670 \text{ 万}10.1.2.3
B 类128 到 191128 \text{ 到 } 191255.255.0.0255.255.0.0 (/16)16 位 /16 位16 \text{ 位 } / 16 \text{ 位}214160002^{14} \approx 160002162=655342^{16} - 2 = 65534172.16.1.100
C 类192 到 223192 \text{ 到 } 223255.255.255.0255.255.255.0 (/24)24 位 /8 位24 \text{ 位 } / 8 \text{ 位}221200 万2^{21} \approx 200 \text{ 万}282=2542^{8} - 2 = 254192.168.1.5

IPV4与IPV6

特性IPv4 (Internet Protocol Version 4)IPv6 (Internet Protocol Version 6)差异总结 (为什么升级)
地址长度32 位128 位IPv6 地址空间极大,是核心升级点。
地址格式四组十进制数字,用点分隔。八组十六进制数字,用冒号分隔。格式更长,但十六进制表示更简洁。
地址示例192.168.1.12001:0db8:85a3:0000:0000:8a2e:0370:7334 (可简化)视觉上差异巨大。
地址数量2322^{32} (约 43 亿个)21282^{128} (天文数字,几乎用不完,可以给地球上每粒沙子分配多个)IPv4 地址已耗尽,这是 IPv6 诞生的主要原因。
报头长度可变 (20 到 60 字节)固定 (40 字节),但可使用扩展报头。固定报头简化了路由器处理,提升了转发效率。
分段处理路由器可分段。发送端主机处理分段,路由器不分段。减轻了路由器的负担。
地址配置主要依赖 DHCP 服务器。内置支持 SLAAC (无状态自动配置),可不依赖 DHCP。简化了网络管理和设备配置。
网络地址转换 (NAT)必须依赖 NAT 来缓解地址短缺问题。不再需要 NAT。实现了真正的端到端连接,提升性能。
安全性 (IPSec)可选,非强制要求。内置要求,为 IP 层提供了加密和身份验证。安全性更高。
通信类型单播 (Unicast)、组播 (Multicast)、广播 (Broadcast)单播、组播、任播 (Anycast)IPv6 取消了广播,改用更高效的组播和任播。

2.2 设置准备:

如果是自动(DHCP)不需要管,如果是手动设置,需要先分配好IP地址,知道网关地址,子网掩码,DNS服务地址等。

参考下面的信息

inet 192.168.10.133  netmask 255.255.255.0  broadcast 192.168.10.255

2.3 图形化设置

方式一:依次点击开始|设置|网络

点击有线网络(或者无线网络)

方式二:也可以在任务栏托盘区点击网络,进到下面的页面,点网络设置

在网络设置页面,点击1

点击2出现下面的齿轮

调整至下面的页面

2.3 命令行GUI设置

打开命令行,输入

nmtui

看到如下界面,使用键盘方向键移动定位,使用回车键调整。

选择编辑连接,并回车

其他设置同图片界面

2.4 直接修改配置文件

2.4.1 银河麒麟/Ubuntu系列中网卡设置

1. 配置文件位置

Netplan 的配置文件位于 /etc/netplan/ 目录下,通常是一个名为 01-netcfg.yaml 或与您的安装相关的 .yaml 文件。

您需要使用管理员权限(sudo)编辑这个文件。

sudo vim /etc/netplan/01-network-manager-all.yaml #可以先用ls确认是否是这个文件名

(注意:请根据您系统中实际的  .yaml 文件名进行修改。)

2. 修改配置文件 (YAML 格式)

Netplan 使用 YAML 格式。YAML 对缩进(空格)非常敏感,请务必使用空格缩进,不要使用 Tab 键。

假设您的网卡接口名称是 eth0 或 enpXsX(可以通过 ip a 命令查看),以下是配置静态 IP 的模板:

network:
  version: 2
  renderer: networkd # 或者 network-manager
  ethernets:
    # 替换为您的实际网卡名称,例如 eth0 或 enpXsX,通过ifconfig可以看到
    ens33:
      # 禁用 DHCP 自动获取
      dhcp4: no
      # 配置手动静态 IP 地址和子网掩码(CIDR 格式,例如 /24)
      addresses: [192.168.1.100/24]
      # 配置网关地址
      gateway4: 192.168.1.1
      # 配置 DNS 服务器
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

3. 应用配置

保存并关闭文件后,运行以下命令来应用您的 Netplan 配置:

# 检查配置文件是否有语法错误
sudo netplan try

# 如果没有错误,正式应用配置
sudo netplan apply

执行 sudo netplan apply 后,新的静态 IP、网关和 DNS 设置就会立即生效。

2.4.2 Centos7中网卡设置

打开命令行,输入

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33 #先进到此目录,确认他的名称是否是这个,不是这个要调整一下这里的值

1.先确保vmware nat的网段是我们所在的网段,如题目 要求是192.168.10.50

那vmware中的网段是192.168.10.0,默认情况下其网关是192.168.10.2。

2.此时,我们在配置网卡信息时,需要将网关配置为192.168.10.2

DNS1=114.114.114.114

DNS2=8.8.8.8

3.配置完毕后

systemctl restart network #重启网络服务

4./etc/sysconfig/network-scripts/ifcfg-ens33网卡内容如下

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO="dhcp"
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=161d7c28-b554-4e38-b929-7ecd57ba7e23
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.10.20 #与vmware nat设定的网段一致
GATEWAY=192.168.10.2 #与vmware nat设定的网关一致
PREFIX=24
DNS1=114.114.114.114
DNS2=8.8.8.8

2.5 nmcli命令

3.防火墙设置

3.1 GUI设置

依次点击开始菜单|设置|安全中心

在网络保护中,点击查看详情

点击访问规则

右击需要管理的条目

可以进行禁用,修改,删除对网络端口或服务进行控制。

3.2 ufw命令的用法

firewall-cmd 的简版(Ubuntu/银河麒麟专用)

UFW (Uncomplicated Firewall) 是 Ubuntu 系统上管理 iptables 规则的默认、最简单、最友好的命令行工具。它是系统管理员和普通用户配置防火墙的首选。

以下是 UFW 的详细用法和常用命令:

1. 状态管理

这些命令用于查看和控制 UFW 的整体运行状态。

命令作用示例输出
sudo ufw status查看当前状态:是否启用,以及已定义的规则列表。Status: inactive 或 Status: active
sudo ufw status verbose查看详细状态,包括默认策略和编号规则(用于删除)。(显示规则编号和详细信息)
sudo ufw enable启用防火墙并使其在系统启动时自动运行。Firewall started and enabled on system startup
sudo ufw disable禁用防火墙。Firewall stopped and disabled on system startup
sudo ufw reset重置所有规则到默认设置,请谨慎使用!(这将禁用防火墙并删除所有自定义规则)。(要求确认)

2. 默认策略

默认策略定义了当没有匹配规则时,UFW 如何处理数据包。通常设置为拒绝入站,允许出站。

命令作用示例
sudo ufw default deny incoming设置默认拒绝所有入站连接。这是最安全的默认设置。Default incoming policy changed to 'deny'
sudo ufw default allow outgoing设置默认允许所有出站连接。允许系统连接互联网。Default outgoing policy changed to 'allow'

3. 添加规则 (允许/拒绝)

添加规则是 UFW 最核心的操作。您可以基于端口号、服务名称、协议或 IP 地址来定义规则。

A. 基于服务名或端口号 (最常用)

命令示例作用
sudo ufw allow sshsudo ufw allow 22允许所有 IP 访问标准的 SSH 端口 (22/tcp)。
sudo ufw allow httpsudo ufw allow 80/tcp允许所有 IP 访问标准的 HTTP 端口 (80/tcp)。
sudo ufw allow 443/tcpsudo ufw allow https允许 HTTPS 端口。
sudo ufw deny 21/tcp-拒绝所有 IP 访问标准的 FTP 端口 (21/tcp)。
sudo ufw allow 12345/udp-允许所有 IP 访问 UDP 端口 12345。

B. 基于 IP 地址或子网

命令示例作用
sudo ufw allow from 192.168.1.5-仅允许 IP 地址 192.168.1.5 的所有连接。
sudo ufw allow from 192.168.1.0/24 to any port 80-仅允许 192.168.1.0/24 子网访问本机的 80 端口。
sudo ufw deny from 203.0.113.4-拒绝特定 IP 地址的所有连接。

C. 限制连接速率 (防止暴力破解)

限制规则允许在 30 秒内最多 6 次连接尝试。

命令示例作用
sudo ufw limit sshsudo ufw limit 22/tcp限制所有 IP 访问 SSH 端口,防止短时间内大量连接。

4. 删除规则

删除规则有两种方法:按规则内容删除(推荐)或按规则编号删除。

A. 按规则内容删除 (推荐)

直接在 allow 或 deny 命令前加上 delete

# 示例:删除允许 SSH 的规则
sudo ufw delete allow ssh

B. 按编号删除

  1. 列出带编号的规则:
    sudo ufw status numbered
  2. 删除指定编号的规则:

    假设要删除编号为 3 的规则 sudo ufw delete 3

5. 高级用法:接口限制

您可以将规则限制在特定的网络接口上(例如只允许 eth0 上的连接)。

命令示例作用
sudo ufw allow in on eth0 to any port 80-仅允许来自 eth0 接口的 80 端口入站连接。

6. 配置持久性

所有通过 sudo ufw ... 添加的规则都会被 UFW 服务永久保存

3.3 firewall-cmd

firewall-cmd 是 Firewalld 防火墙服务的命令行客户端。

Firewalld 是红帽系(如 CentOS、RHEL、Fedora)Linux 发行版中默认且推荐的防火墙管理工具。虽然 Ubuntu 默认使用 UFW,但 Firewalld 也可以安装在 Ubuntu 上,它提供了一套与 UFW 不同的管理逻辑:防火墙区域 (Zones)

核心概念:区域 (Zones)

Firewalld 的核心思想是将网络接口分配到不同的区域 (Zone) ,每个区域有自己预先定义好的安全级别和规则。

区域名称适用场景默认策略(安全性)
public外部网络,你不信任其他计算机。默认拒绝:只接受明确允许的连接。
home家庭环境,你基本信任网络中的其他计算机。默认接受入站 SSH/DHCP/MDNS 等常见服务。
internal内部办公网络,高度信任网络中的计算机。比 home 更开放。
trusted所有的网络连接都被接受。全部允许:不设防。
drop丢弃所有入站连接,不发送错误响应。最高安全(隐身模式)。

常用 firewall-cmd 命令

firewall-cmd 的命令需要注意一个关键点:默认情况下,所有更改都是临时的 (Runtime) ,系统重启后会丢失。如果要永久生效,必须加上 --permanent 参数。

任务运行时 (Runtime) 命令 (立即生效)永久性 (Permanent) 命令 (重启生效)
查看状态sudo firewall-cmd --statesudo firewall-cmd --list-all --zone=public
查看所有区域sudo firewall-cmd --get-zones-
查看当前默认区域sudo firewall-cmd --get-default-zone-
开放端口sudo firewall-cmd --zone=public --add-port=80/tcpsudo firewall-cmd --permanent --zone=public --add-port=80/tcp
开放服务sudo firewall-cmd --zone=public --add-service=httpsudo firewall-cmd --permanent --zone=public --add-service=http
移除端口sudo firewall-cmd --zone=public --remove-port=80/tcpsudo firewall-cmd --permanent --zone=public --remove-port=80/tcp
添加富规则 (Rich Rule)sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'(同上,加 --permanent)
加载永久配置-sudo firewall-cmd --reload

⚡ 启用/应用配置流程

使用 firewall-cmd 的标准流程如下:

  1. 进行永久性修改:  使用 --permanent 参数添加规则。

    示例:永久允许 HTTPS 端口 sudo firewall-cmd --permanent --add-service=https

  2. 加载永久配置:  在修改完永久配置后,必须运行 reload 命令使这些规则立即生效,而无需重启系统。
    sudo firewall-cmd --reload
  3. 验证规则:

    检查 public 区域的所有永久规则是否已加载 sudo firewall-cmd --list-all

🆚 firewall-cmd vs. ufw 总结

特性firewall-cmd (Firewalld)ufw (Uncomplicated Firewall)
核心管理基于区域 (Zones),以区域为单位管理安全策略。基于规则列表,自上而下匹配规则。
配置生效临时 (runtime) 和 永久 (permanent) 必须分开操作。默认永久生效,无需额外参数。
复杂性功能强大,但概念(区域、富规则)相对更复杂。简单易懂,易于上手。
发行版CentOS, RHEL, Fedora 等红帽系发行版默认。Ubuntu, Debian 等发行版默认。

写在最后

本篇主要目标是解决防火墙与网络设置