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 分段。
-
类比:你要寄一个大箱子(大包),但快递公司(链路)规定单个包裹不能超过 ,所以你必须把它分成几个小箱子(分段)。
-
重点: 分段会增加网络的开销(因为要多加几个头部信息),所以通常是尽量避免的。
-
路由器
- 角色: 路由器是连接不同网络的设备,它是互联网的核心。
- 功能: 它的主要职责是根据数据包的目标 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 类 | (/8) | 10.1.2.3 | ||||
| B 类 | (/16) | 172.16.1.100 | ||||
| C 类 | (/24) | 192.168.1.5 |
IPV4与IPV6
| 特性 | IPv4 (Internet Protocol Version 4) | IPv6 (Internet Protocol Version 6) | 差异总结 (为什么升级) |
|---|---|---|---|
| 地址长度 | 32 位 | 128 位 | IPv6 地址空间极大,是核心升级点。 |
| 地址格式 | 四组十进制数字,用点分隔。 | 八组十六进制数字,用冒号分隔。 | 格式更长,但十六进制表示更简洁。 |
| 地址示例 | 192.168.1.1 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 (可简化) | 视觉上差异巨大。 |
| 地址数量 | (约 43 亿个) | (天文数字,几乎用不完,可以给地球上每粒沙子分配多个) | 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 ssh | sudo ufw allow 22 | 允许所有 IP 访问标准的 SSH 端口 (22/tcp)。 |
| sudo ufw allow http | sudo ufw allow 80/tcp | 允许所有 IP 访问标准的 HTTP 端口 (80/tcp)。 |
| sudo ufw allow 443/tcp | sudo 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 ssh | sudo ufw limit 22/tcp | 限制所有 IP 访问 SSH 端口,防止短时间内大量连接。 |
4. 删除规则
删除规则有两种方法:按规则内容删除(推荐)或按规则编号删除。
A. 按规则内容删除 (推荐)
直接在 allow 或 deny 命令前加上 delete。
# 示例:删除允许 SSH 的规则
sudo ufw delete allow ssh
B. 按编号删除
- 列出带编号的规则:
sudo ufw status numbered - 删除指定编号的规则:
假设要删除编号为 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 --state | sudo 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/tcp | sudo firewall-cmd --permanent --zone=public --add-port=80/tcp |
| 开放服务 | sudo firewall-cmd --zone=public --add-service=http | sudo firewall-cmd --permanent --zone=public --add-service=http |
| 移除端口 | sudo firewall-cmd --zone=public --remove-port=80/tcp | sudo 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 的标准流程如下:
- 进行永久性修改: 使用
--permanent参数添加规则。示例:永久允许 HTTPS 端口 sudo firewall-cmd --permanent --add-service=https
- 加载永久配置: 在修改完永久配置后,必须运行
reload命令使这些规则立即生效,而无需重启系统。
sudo firewall-cmd --reload - 验证规则:
检查 public 区域的所有永久规则是否已加载 sudo firewall-cmd --list-all
🆚 firewall-cmd vs. ufw 总结
| 特性 | firewall-cmd (Firewalld) | ufw (Uncomplicated Firewall) |
|---|---|---|
| 核心管理 | 基于区域 (Zones),以区域为单位管理安全策略。 | 基于规则列表,自上而下匹配规则。 |
| 配置生效 | 临时 (runtime) 和 永久 (permanent) 必须分开操作。 | 默认永久生效,无需额外参数。 |
| 复杂性 | 功能强大,但概念(区域、富规则)相对更复杂。 | 简单易懂,易于上手。 |
| 发行版 | CentOS, RHEL, Fedora 等红帽系发行版默认。 | Ubuntu, Debian 等发行版默认。 |
写在最后
本篇主要目标是解决防火墙与网络设置