# 首页

首页介绍

### 欢迎来到我的WiKi界面，本WiKi主要分享一些本人自己笔记和念念碎。

### **如果你有好的内容，欢迎来投稿。**

#### 联系方式

Email: `i#chjina.com 请将#替换成@`

### 维护者

* [chjina](https://chjina.com/)

<br>


# GitHub

## 资料

* 程序员资料

{% embed url="<https://github.com/stanzhai/be-a-professional-programmer>" %}

## 图床

* ipfs区块链技术

{% embed url="<https://github.com/jialezi/img2ipfs>" %}
ipfs图床
{% endembed %}

## 商城

* ZFAKA发卡系统

{% embed url="<https://github.com/zfaka-plus/zfaka>" %}
ZFAKA发卡系统
{% endembed %}

## BT服务器

* ​    每天自动更新

{% embed url="<https://github.com/ngosang/trackerslist>" %}

## 直播平台直播源

* 目前支持斗鱼，虎牙，B站，YY，西瓜等59个网站的直播源获取和部分网站弹幕获取

{% embed url="<https://github.com/moxun33/real-url>" %}

## 电视盒子

* TVbox开源版

{% embed url="<https://github.com/liu673cn/box>" %}


# 趣站

序：主要收集些有意思的网站

## 驾驶与聆听

* 打开网站你就会随机进入一个城市的车内，跟随驾驶员，听着当地的汽车广播一起在城市穿行

  听广播时可以开倍速也可以选择是否开启汽车行驶的背景音，挺有趣的体验！

{% embed url="<https://driveandlisten.herokuapp.com>" %}

## 红白之家

* 红白游戏集锦网站，怀旧小游戏网站。

{% embed url="<https://nes.heheda.top>" %}

## 触站（原画师通）

* 触站（原画师通）是一个国内的二次元插画网站，可以认为是国内的仿P站（Pixiv）原创画师分享平台，网站有自己的app客户端，对于不能代理上网的朋友可以作为一个临时替代网站

{% embed url="<https://www.huashi6.com>" %}

## 听书宝

* 小说改编往往会经历有声小说和广播剧之后才会走向漫画，影视改编，听书随时随地方便，下面这个网站就是一个听书网站

  但是仅适配手机浏览器，电脑浏览器打开可能会乱码，所以推荐手机使用

{% embed url="<http://m.tingshubao.com>" %}

## 英文缩略词查询（abbreviationfinder）

* 这个网站可以在线查询英文缩略词的含义，输入缩略词就会展示该缩略词所代表的所有含义

{% embed url="<https://www.abbreviationfinder.org>" %}

## 在线扒站工具

* 进入网站，输入网址，一键将指定网页的HTML、CSS、JS等前端资源打包下载。

{% embed url="<https://bazhan.wang/>" %}

## AllTube Download

* 在线视频下载工具，支持油管等网站，有书签工具功能，把书签工具拉到书签栏

  遇到想要下载的网页视频拉到书签即可下载

{% embed url="<https://alltubedownload.net/>" %}


# 工具类

日常收集的工具类网站

### IP地址查询

#### 1.查看公网出口IP地址信息，可显示国内外获取的地址信息，可查询多出口地址信息

<https://ip.skk.moe/>

<https://ip111.cn>

#### 2.查看公网出口地址，可以显示位置信息

[https://ip.ll.sd](https://ip.ll.sd/)

#### 3.查询IP位置信息

<https://ip.sy>

#### 4.查询IP地址信息，可显示IP纯净度，IP类型，风控值等信息。

<https://ping0.cc/>

### 在线检测

#### 1.在线ping，在线端口检测，网站测速，HTTP测速，API测速，路由追踪在线，DNS查询等

<https://www.itdog.cn/>

<br>


# 网络工具

### WAF系统

#### 1.雷池WAF

一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术，作为反向代理接入，保护你的网站不受黑客攻击。

雷池是长亭科技耗时近 10 年倾情打造的 WAF，核心检测能力由智能语义分析算法驱动。

项目地址：<https://github.com/chaitin/safeline>

Dome:<https://demo.waf-ce.chaitin.cn:9443>

技术文档:<https://waf-ce.chaitin.cn/posts/guide_introduction>

### 网络监控系统

#### 1.Zabbix

Zabbix是企业级开源监控解决方案，支持实时监控数万台服务器、虚拟机和网络设备，采集百万级监控指标。实时监控 IT 组件和服务，例如网络、服务器、虚拟机、应用程序和云。

项目地址：<https://github.com/zabbix/zabbix>

下载地址：<https://www.zabbix.com/cn/download>

### 堡垒机

#### 1.JumpServer

JumpServer 是广受欢迎的开源堡垒机，是符合 4A 规范的专业运维安全审计系统。

#### 产品特色

* **开源**: 零门槛，线上快速获取和安装；
* **无插件**: 仅需浏览器，极致的 Web Terminal 使用体验；
* **分布式**: 支持分布式部署和横向扩展，轻松支持大规模并发访问；
* **多云支持**: 一套系统，同时管理不同云上面的资产；
* **多租户**: 一套系统，多个子公司或部门同时使用；
* **云端存储**: 审计录像云端存储，永不丢失；
* **多应用支持**: 全面支持各类资产，包括服务器、数据库、Windows RemoteApp、Kubernetes 等;
* **安全可靠**: 被广泛使用、验证和信赖，连续 9 年的持续研发投入和产品更新升级。

项目地址：<https://github.com/jumpserver/jumpserver>

官网：<https://www.jumpserver.org/>

技术手册：<https://community.fit2cloud.com/#/products/jumpserver/documentation>

Dome：<https://demo.jumpserver.org/core/auth/login/>

下载链接：<https://community.fit2cloud.com/#/products/jumpserver/downloads>

#### 2. TELEPORT

Teleport是一款简单易用的**开源堡垒机系统**，具有小巧、易用的特点，支持 RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理。

#### 特点

***

* 极易部署

  简洁设计，小巧灵活，无额外依赖，确保您可以在5分钟内完成安装部署，开始使用。
* 安全增强

  配置远程主机为仅被您的teleport服务器连接，可有效降低嗅探、扫描、暴力破解等攻击风险。
* 单点登录

  只需登录您的teleport服务器，即可一键连接您的任意远程主机，无需记忆每台远程主机的密码了。
* 按需授权

  可以随时授权指定运维人员访问指定的远程主机，也可随时回收授权。仅仅需要几次点击！
* 运维审计

  对远程主机的操作均有详细记录，支持操作记录录像、回放，审计工作无负担。

官网：<https://tp4a.com/>

技术手册：<https://docs.tp4a.com/>

下载链接：<https://tp4a.com/download>

### 漏扫工具

#### 1.leakScan

项目地址：\[GitHub - Skycrab/leakScan: <https://github.com/Skycrab/leakScan/>

**2.Template(内网扫描工具)**

项目地址：<https://github.com/1n7erface/Template>)

### 蜜罐

**1.Loki**

一个轻量级Web蜜罐

项目地址：<https://github.com/TheKingOfDuck/Loki>

**2.hfish**

微力同步旗下的免费蜜罐

<https://hfish.net/#/README>

### SSL部署工具

#### 1.AllinSSL

AllinSSL 是一个集证书申请、管理、部署和监控于一体的SSL证书全生命周期管理工具。AllinSSL 是一款集证书申请、管理、部署和监控于一体的一体化 SSL 证书生命周期管理工具。

项目地址：<https://github.com/allinssl/allinssl>

官网：<https://allinssl.com/>


# 网络空间资产

## 网络空间资产搜索引擎

* ### 钟馗之眼

  Zoomeye中文名为“钟馗之眼”，它定位于网络空间搜索引擎，能对暴露在公网的主机设备及网站组件进行全方位搜索（只要有IP地址即可搜索到），发现其中的漏洞，揪出网络中“藏着掖着的问题”。ZoomEye和Shodanhq的区别是ZoomEye目前侧重于Web层面的资产发现而Shodanhq则侧重于主机层面。网站的创作团队来自：知道创宇

<https://www.zoomeye.org/>

* ### Fofa平台

  网站信息搜索引擎，是一款为技术人员提供指纹识别，全网应用识别的开放式在线搜索引擎。

<https://fofa.info/>

* ### 鹰图平台

  鹰图平台（HUNTER）是奇安信全球鹰推出的一款全球互联网资产搜集平台，助力HW、未知资产发现、暴露面梳理、定位热点应用等场景。自主研发扫描引擎，全端口扫描，覆盖全球ipv4，7天更新国内资产，30天更新海外资产。

<https://hunter.qianxin.com/>

* ### 360

  Quake是360安全响应中心（360-CERT）自主设计研发的全球空间测绘系统，能够对全球ipv4/ipv6地址进行持续性探测，实时感知全球网络空间中各类资产并发现其安全风险。

<https://quake.360.net/>

* ### O.zone

  O.zone是当前国内首个外部攻击面管理SAAS系统。将组织机构与其不断发展的数字足迹进行映射、与漏洞情报数据进行关联，并持续发现业务数据和代码泄露、组织机构和人员信息的泄露、以及对供应链的供给面进行检测。

<https://0.zone/>

* ### Shodan

  Shodan是一个包含数十亿公开可用IP地址的数据库，是世界上第一个互联网连接设备的搜索引擎——从路由器和服务器，到物联网（loT）设备，如恒温器和婴儿监视器，再到复杂的管理系统，广泛的行业，包括能源、电力和运输，任何连接到互联网的设备都可能出现在Shodan搜索中。

<https://www.shodan.io/>

### 本地部署查询：

**ARL资产灯塔系统**

ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产，构建基础资产信息库。协助甲方安全团队或者渗透测试人员有效侦察和检索资产，以攻击者视角持续探测资产风险，协助用户时刻洞察资产动态，掌握安全防护薄弱点，快速收敛攻击面。

项目地址：<https://github.com/TophantTechnology/ARL>

## 工具

集`Fofa`、`Hunter鹰图`、`Shodan`、`360 quake`、`Zoomeye`钟馗之眼为一体的gui图形界面化工具

<https://github.com/G3et/Search\\_Viewer>

**ARL资产灯塔系统**

**项目已经被官方移除了，可以找之前fork的版本**

ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产，构建基础资产信息库。协助甲方安全团队或者渗透测试人员有效侦察和检索资产，以攻击者视角持续探测资产风险，协助用户时刻洞察资产动态，掌握安全防护薄弱点，快速收敛攻击面。

项目地址：<https://github.com/TophantTechnology/ARL>

## 域名查询

<https://who.is/>

## 笔记

[前言 · 应急响应实战笔记 (bypass007.github.io)](https://bypass007.github.io/Emergency-Response-Notes/)


# 路由交换

路由交换方便笔记


# 华三

华三配置案例


# 防火墙


# 概览页面的流量监控不显示数据

### 华三防火墙概览页面的流量监控不显示数据。

如图所示：

![](https://pic.chjina.com/2022/08/17/20220.png)

### 解决办法：

**如下命令都开启，然后等待一段时间，再登陆到设备上看看**

**`Info-center enable` 开启信息中心功能 （非必须）**

**`webui log enable` 开启Web操作日志功能（非必须）**

**`session statistics enable` 用来开启会话统计功能（建议）**

**`session top-statistics enable` 开启会话数目的Top排名统计功能（建议）**

**`application global statistics enable` 开启全局应用统计功能（建议）**

**`inspect activate` 激活策略和规则（非必须）**

### 生效 ：

![](https://pic.chjina.com/2022/08/17/image-20220817162129388.png)


# DHCP


# IP Source Guard与DHCP Snooping配合的IPv4动态绑定功能配置举例

标签：

* DHCP防止用户修改IP的方法
* 禁止手动设置IP地址

## 1. 组网需求

DHCP客户端通过Device的接口Ten-GigabitEthernet1/1/1接入网络，通过DHCP服务器获取IPv4地址。

具体应用需求如下：

· Device上使能DHCP Snooping功能，保证客户端从合法的服务器获取IP地址，且记录客户端IPv4地址及MAC地址的绑定关系。

· 在接口Ten-GigabitEthernet1/1/1上启用IPv4动态绑定功能，利用动态生成的DHCP Snooping表项过滤接口接收的报文，只允许通过DHCP服务器动态获取IP地址的客户端接入网络。DHCP服务器的具体配置请参见“三层技术-IP业务配置指导”中的“DHCP服务器”。

## 2. 组网图

图1-3 配置与DHCP Snooping配合的IPv4动态绑定功能组网图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220527111729.png)

## 3. 配置步骤

(1) 配置DHCP Snooping

\# 配置各接口的IP地址（略）。

\# 开启DHCP Snooping功能。

```
<Device> system-view

[Device] dhcp snooping enable
```

\# 设置与DHCP服务器相连的接口Ten-GigabitEthernet1/1/2为信任接口。

```
[Device] interface ten-gigabitethernet 1/1/2

[Device-Ten-GigabitEthernet1/1/2] dhcp snooping trust

[Device-Ten-GigabitEthernet1/1/2] quit
```

(2) 配置IPv4接口绑定功能

\# 配置接口Ten-GigabitEthernet1/1/1的IPv4接口绑定功能，绑定源IP地址和MAC地址，并启用接口的DHCP Snooping 表项记录功能。

```
[Device] interface ten-gigabitethernet 1/1/1

[Device-Ten-GigabitEthernet1/1/1] ip verify source ip-address mac-address

[Device-Ten-GigabitEthernet1/1/1] dhcp snooping binding record

[Device-Ten-GigabitEthernet1/1/1] quit
```

## 4. 验证配置

\# 显示接口Ten-GigabitEthernet1/1/1从DHCP Snooping获取的动态表项。

```
[Device] display ip source binding dhcp-snooping

Total entries found: 1

IP Address   MAC Address  Interface        VLAN Type

192.168.0.1   0001-0203-0406 XGE1/1/1         1  DHCP snooping
```

从以上显示信息可以看出，接口Ten-GigabitEthernet1/1/1在配置IPv4接口绑定功能之后根据DHCP Snooping表项产生了动态绑定表项。

引用：

* <https://www.h3c.com/cn/d\\_202002/1274388\\_30005\\_0.htm#\\_Toc32417057>


# DHCP Snooping典型配置举例

DHCP信任端口

## DHCP Snooping典型配置

标签：

* \#DHCP信任端口

## 1.全局开启DHCP Snooping配置举例

#### 1.1组网需求

Switch B通过以太网端口Ten-GigabitEthernet1/0/1连接到合法DHCP服务器，通过以太网端口Ten-GigabitEthernet1/0/3连接到非法DHCP服务器，通过Ten-GigabitEthernet1/0/2连接到DHCP客户端。要求：

· 与合法DHCP服务器相连的端口可以转发DHCP服务器的响应报文，而其他端口不转发DHCP服务器的响应报文。

· 记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定信息。

#### 1.2 组网图

图1-3 DHCP Snooping组网示意图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220527113632.png)

‌

#### 1.3. 配置步骤

\# 全局开启DHCP Snooping功能。

```
<SwitchB> system-view

[SwitchB] dhcp snooping enable
```

\# 设置Ten-GigabitEthernet1/0/1端口为信任端口。

```
[SwitchB] interface ten-gigabitethernet 1/0/1

[SwitchB-Ten-GigabitEthernet1/0/1] dhcp snooping trust

[SwitchB-Ten-GigabitEthernet1/0/1] quit
```

\# 在Ten-GigabitEthernet1/0/2上开启DHCP Snooping表项功能。

```
[SwitchB] interface ten-gigabitethernet 1/0/2

[SwitchB-Ten-GigabitEthernet1/0/2] dhcp snooping binding record

[SwitchB-Ten-GigabitEthernet1/0/2] quit
```

#### 1.4. 验证配置

配置完成后，DHCP客户端只能从合法DHCP服务器获取IP地址和其它配置信息，非法DHCP服务器无法为DHCP客户端分配IP地址和其他配置信息。且使用**display dhcp snooping binding**可查询到获取到的DHCP Snooping表项。

### 2. 按VLAN开启DHCP Snooping配置举例

#### 1. 组网需求

Switch B通过以太网端口Ten-GigabitEthernet1/0/1连接到合法DHCP服务器，通过以太网端口Ten-GigabitEthernet1/0/3连接到非法DHCP服务器，通过Ten-GigabitEthernet1/0/2连接到DHCP客户端。要求：

· VLAN 100上与合法DHCP服务器相连的端口可以转发DHCP服务器的响应报文，而其他端口不转发DHCP服务器的响应报文。

· 记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定信息。

#### 2. 组网图

图1-4 按VLAN开启DHCP Snooping配置组网示意图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220527113638.png)

‌

#### 3. 配置步骤

\# 配置端口Ten-GigabitEthernet1/0/1、Ten-GigabitEthernet1/0/2和Ten-GigabitEthernet1/0/3为Access端口，允许VLAN 100通过。

```
<SwitchB> system-view

[SwitchB] vlan 100

[SwitchB-vlan100] port ten-gigabitethernet 1/0/1 to ten-gigabitethernet 1/0/3

[SwitchB-vlan100] quit
```

\# 在VLAN100内开启DHCP Snooping功能。

```
[SwitchB] dhcp snooping enable vlan 100
```

\# 指定端口Ten-GigabitEthernet1/0/1为VLAN 100下DHCP Snooping功能的信任端口。

```
[SwitchB] vlan 100

[SwitchB-vlan100] dhcp snooping trust interface ten-gigabitethernet 1/0/1
```

\# 在VLAN 100内开启DHCP Snooping表项记录功能。

```
[SwitchB-vlan100] dhcp snooping binding record

[SwitchB-vlan100] quit
```

#### 4. 验证配置

配置完成后，DHCP客户端只能从合法DHCP服务器获取IP地址和其它配置信息，非法DHCP服务器无法为DHCP客户端分配IP地址和其他配置信息。且使用\*\*`display dhcp snooping binding`\*\*可查询到获取到的DHCP Snooping表项。

引用：

<http://www.h3c.com/cn/d\\_202102/1382381\\_30005\\_0.htm#\\_Toc63109203>


# 1.端口镜像配置

本地端口镜像配置

## 1 端口镜像配置

### 1.1 端口镜像简介

端口镜像是将指定端口（源端口）的报文复制一份到其它端口（目的端口），目的端口会与数据监

测设备相连，用户利用这些数据监测设备来分析复制到目的端口的报文，进行网络监控和故障排除。

#### 1.1.1 端口镜像的基本概念

为了更好地理解后面的内容，首先介绍一下端口镜像中涉及的基本概念。

1源端口

源端口是被监控的端口，用户可以对通过该端口的报文进行监控和分析。

2目的端口

目的端口也可称为监控端口，该端口将接收到的报文转发到数据监测设备，以便对报文进行监控和

分析。

3镜像的方向

●端口镜像的方向分为三种：

○入方向：仅对源端口接收的报文进行镜像。

○出方向：仅对源端口发送的报文进行镜像。

○双向：对源端口接收和发送的报文都进行镜像。

#### 1.1.2 端口镜像的分类

端口镜像分为两种：

●本地端口镜像：是指将设备的一个或多个源端口的报文复制到本设备的一个目的端口，用于 报文的监控和分析。其中，源端口和目的端口必须在同一台设备上。

●远程端口镜像：除了可以实现本地端口镜像的功能外，它还突破了源端口和目的端口必须在 同一台设备上的限制，使源端口和目的端口间可以跨越多个网络设备。目前，远程端口镜像 功能可以穿越二层网络，但无法穿越三层网络。

#### 1.1.3 端口镜像的实现方式

本地端口镜像可以对所有报文（包括协议报文和数据报文）进行镜像。

本地端口镜像通过本地镜像组的方式实现。源端口和目的端口在同一个本地镜像组中，设备将源端

口的报文复制一份并转发到目的端口。

<div align="center"><img src="/files/MDV6Ehi4teE1OoS0CHFI" alt="img"></div>

​ 图 1-1

如 图 1-1所示，源端口的报文被镜像到目的端口，这样，接在目的端口上的数据监测设备就可以对

源端口的报文进行监控和分析。

### 1.2 端口镜像典型配置举例

#### 1.2.1 本地端口镜像配置举例

1组网需 用户网络描述如下：

○部门 1 的报文通过端口 GigabitEthernet1/0/1 接入 Device C。

○部门 2 的报文通过端口 GigabitEthernet1/0/2 接入 Device C。

○Server 接在 Device C 的 GigabitEthernet1/0/3 端口上

需求为：用户希望通过 Server 对部门 1 和部门 2 收发的报文进行监控。

使用本地端口镜像功能实现该需求：

○端口 GigabitEthernet1/0/1 和 GigabitEthernet1/0/2 为镜像源端口。

○连接 Server 的端口 GigabitEthernet1/0/3 为镜像目的端口。

2组网图

图1-2 配置本地端口镜像组网图

![](/files/RzbbMLevhQC3CsuPKnjz)

3配置步骤

3.1创建本地镜像组。

```
<DeviceC> system-view
DeviceC] mirroring-group 1 local
```

3.2为本地镜像组配置源端口和目的端口。

```
[DeviceC] mirroring-group 1 mirroring-port gigabitethernet 1/0/1 gigabitethernet 1/0/2 both
[DeviceC] mirroring-group 1 monitor-port gigabitethernet 1/0/3
```

3.3显示所有镜像组的配置信息。

```
[DeviceC] display mirroring-group all
mirroring-group 1:
type: local
status: active
mirroring port:
GigabitEthernet1/0/1 both
GigabitEthernet1/0/2 both
monitor port: GigabitEthernet1/0/3xxxxxxxxxx [DeviceC] display mirroring-group allmirroring-group 1:type: localstatus: activemirroring port:GigabitEthernet1/0/1 bothGigabitEthernet1/0/2 bothmonitor port: GigabitEthernet1/0/3[DeviceC] display mirroring-group allmirroring-group 1:
```

配置完成后，用户就可以在 Server 上监控部门 1 和部门 2 收发的所有报文。

引用：

{% embed url="<https://www.h3c.com/cn/d_202201/1533992_30005_0.htm#_Toc93167911>" %}


# 2.链路聚合

## 1 以太网链路聚合

#### 1.1 以太网链路聚合简介

以太网链路聚合简称链路聚合，它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路，从而实现增加链路带宽的目的。同时，这些捆绑在一起的链路通过相互间的动态备份，可以有效地提高链路的可靠性。

如图1-1所示，Device A与Device B之间通过三条以太网物理链路相连，将这三条链路捆绑在一起，就成为了一条逻辑链路Link aggregation 1，这条逻辑链路的带宽等于原先三条以太网物理链路的带宽总和，从而达到了增加链路带宽的目的；同时，这三条以太网物理链路相互备份，有效地提高了链路的可靠性。

![图1-1](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220519150005.png)

​ 图1-1 链路聚合示意图

### 1. 聚合组、成员端口和聚合接口

将多个以太网端口捆绑在一起所形成的组合称为聚合组，而这些被捆绑在一起的以太网端口就称为该聚合组的成员端口。每个聚合组唯一对应着一个逻辑接口，我们称之为聚合接口。聚合组/聚合接口可以分为以下两种类型：

· 二层聚合组/二层聚合接口：二层聚合组的成员端口全部为二层以太网端口，其对应的聚合接口称为二层聚合（Bridge-aggregation，BAGG）接口。

· 三层聚合组/三层聚合接口：三层聚合组的成员端口全部为三层以太网端口，其对应的聚合接口称为三层聚合（Route-aggregation，RAGG）接口。

说明：

```
聚合组与聚合接口的编号是一一对应的，譬如聚合组1对应于聚合接口1。
聚合接口的速率和双工模式取决于对应聚合组内的选中端口，聚合接口的速率等于所有选中端口的速率之和，聚合接口的双工模式则与选中端口的双工模式相同。
```

### 2. 成员端口的状态

聚合组内的成员端口具有以下两种状态：

· 选中（Selected）状态：此状态下的成员端口可以参与用户数据的转发，处于此状态的成员端口简称为“选中端口”。

· 非选中（Unselected）状态：此状态下的成员端口不能参与用户数据的转发，处于此状态的成员端口简称为“非选中端口”。

在选中端口失效后，其它非选中端口可能成为选中端口，参与用户数据的转发。

### 3. 操作Key

操作Key是系统在进行链路聚合时用来表征成员端口聚合能力的一个数值，它是根据成员端口上的一些信息（包括该端口的速率、双工模式等）的组合自动计算生成的，这个信息组合中任何一项的变化都会引起操作Key的重新计算。在同一聚合组中，所有的选中端口都必须具有相同的操作Key。

### 4. 配置分类

根据对成员端口状态的影响不同，我们可以将成员端口上的配置分为以下三类：

(1) 端口属性类配置：包含速率、双工模式和链路状态（up/down）这三项配置内容，是成员端口上最基础的配置内容。

(2) 第二类配置：包含的配置内容如\[表1-1]所示。在聚合组中，只有与对应聚合接口的第二类配置完全相同的成员端口才能够成为选中端口。

表1-1 第二类配置的内容

| 配置项       | 内容                                                                                                    |
| --------- | ----------------------------------------------------------------------------------------------------- |
| 端口隔离      | 端口是否加入隔离组、端口所属的端口隔离组                                                                                  |
| QinQ配置    | 端口的QinQ功能开启/关闭状态、VLAN Tag的TPID值、添加的外层VLAN Tag、内外层VLAN优先级映射关系、不同内层VLAN ID添加外层VLAN Tag的策略、内层VLAN ID替换关系 |
| VLAN配置    | 端口上允许通过的VLAN、端口缺省VLAN、端口的链路类型（即Trunk、Hybrid、Access类型）、基于IP子网的VLAN配置、基于协议的VLAN配置、VLAN报文是否带Tag配置        |
| MAC地址学习配置 | 是否具有MAC地址学习功能                                                                                         |

说明

```
·   在聚合接口上所作的第二类配置，将被自动同步到对应聚合组内的所有成员端口上。当聚合接口被删除后，这些配置仍将保留在这些成员端口上。
·   由于成员端口上第二类配置的改变可能导致其选中/非选中状态发生变化，进而对业务产生影响，因此当在成员端口上进行此类配置时，系统将给出提示信息，由用户来决定是否继续执行该配置。
```

(3) 第一类配置：是相对于第二类配置而言的，包含的配置内容有GVRP、生成树等。在聚合组中，即使某成员端口与对应聚合接口的第一类配置存在不同，也不会影响该成员端口成为选中端口。

说明：

```
在成员端口上所作的第一类配置，只有当该成员端口退出聚合组后才能生效。
```

### 5. 参考端口

参考端口从成员端口中选出，其端口属性类配置和第二类配置将作为同一聚合组内的其它成员端口的参照，以确定这些成员端口的状态。

### 6. 聚合模式

根据成员端口上是否启用了LACP协议，可以将链路聚合分为静态聚合和动态聚合两种模式，它们各自的特点如表1-2所示。

表1-2 不同聚合模式的特点

| 聚合模式   | 成员端口是否开启LACP协议 | 优点                                 | 缺点                          |
| ------ | -------------- | ---------------------------------- | --------------------------- |
| 静态聚合模式 | 否              | 一旦配置好后，端口的选中/非选中状态就不会受网络环境的影响，比较稳定 | 不能根据对端的状态调整端口的选中/非选中状态，不够灵活 |
| 动态聚合模式 | 是              | 能够根据对端和本端的信息调整端口的选中/非选中状态，比较灵活     | 端口的选中/非选中状态容易受网络环境的影响，不够稳定  |

处于静态聚合模式和动态聚合模式下的聚合组分别称为静态聚合组和动态聚合组，动态聚合组内的选中端口以及处于up状态、与对应聚合接口的第二类配置相同的非选中端口均可以收发LACPDU（Link Aggregation Control Protocol Data Unit，链路聚合控制协议数据单元）。

## 2 配置举例

### 2.1 二层静态聚合配置举例

**1. 组网需求**

· Device A与Device B通过各自的二层以太网端口GigabitEthernet 1/0/1～GigabitEthernet 1/0/3相互连接。

· 在Device A和Device B上分别配置二层静态链路聚合组，并使两端的VLAN 10和VLAN 20之间分别互通。

· 通过按照报文的源MAC地址和目的MAC地址进行聚合负载分担的方式，来实现数据流量在各成员端口间的负载分担。

**2. 组网图**

图1-5 二层静态聚合配置组网图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/%E4%BA%8C%E5%B1%82%E9%9D%99%E6%80%81%E8%81%9A%E5%90%88%E9%85%8D%E7%BD%AE%E7%BB%84%E7%BD%91%E5%9B%BE.png)

**3. 配置步骤**

(1) 配置Device A

\# 创建VLAN 10，并将端口GigabitEthernet 1/0/4加入到该VLAN中。

```
<DeviceA> system-view
[DeviceA] vlan 10
[DeviceA-vlan10] port gigabitethernet 1/0/4
[DeviceA-vlan10] quit
```

\# 创建VLAN 20，并将端口GigabitEthernet 1/0/5加入到该VLAN中。

```
[DeviceA] vlan 20
[DeviceA-vlan20] port gigabitethernet 1/0/5
[DeviceA-vlan20] quit
```

\# 创建二层聚合接口1。

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] quit
```

\# 分别将端口GigabitEthernet 1/0/1至GigabitEthernet 1/0/3加入到聚合组1中。

```
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet 1/0/1] port link-aggregation group 1
[DeviceA-GigabitEthernet 1/0/1] quit
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet 1/0/2] port link-aggregation group 1
[DeviceA-GigabitEthernet 1/0/2] quit
[DeviceA] interface gigabitethernet 1/0/3
[DeviceA-GigabitEthernet 1/0/3] port link-aggregation group 1
[DeviceA-GigabitEthernet 1/0/3] quit
```

\# 配置二层聚合接口1为Trunk端口，并允许VLAN 10和20的报文通过。

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] port link-type trunk
[DeviceA-Bridge-Aggregation1] port trunk permit vlan 10 20
 Please wait... Done.
 Configuring GigabitEthernet 1/0/1... Done.
 Configuring GigabitEthernet 1/0/2... Done.
 Configuring GigabitEthernet 1/0/3... Done.
[DeviceA-Bridge-Aggregation1] quit
```

\# 配置全局按照报文的源MAC地址和目的MAC地址进行聚合负载分担。

```
[DeviceA] link-aggregation load-sharing mode source-mac destination-mac
```

(2) 配置Device B

Device B的配置与Device A相似，配置过程略。

(3) 检验配置效果

\# 查看Device A上所有聚合组的摘要信息。

```
[DeviceA] display link-aggregation summary
Aggregation Interface Type:
BAGG -- Bridge-Aggregation, RAGG -- Route-Aggregation
Aggregation Mode: S -- Static, D -- Dynamic
Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing
Actor System ID: 0x8000, 000f-e2ff-0001
AGG     AGG    Partner ID        Select Unselect  Share
Interface  Mode                Ports Ports   Type
\-------------------------------------------------------------------------------
BAGG1    S     none           3   0     Shar
```

以上信息表明，聚合组1为负载分担类型的二层静态聚合组，包含有三个选中端口。

\# 查看Device A上全局采用的聚合负载分担类型。

```
[DeviceA] display link-aggregation load-sharing mode
Link-Aggregation Load-Sharing Mode:
destination-mac address, source-mac address
```

以上信息表明，所有聚合组都按照报文的源MAC地址和目的MAC地址进行聚合负载分担。

### 2.2 二层动态聚合配置举例

\# 其他配置和静态一样，只是在聚合口下配置一条命令

\# 创建二层聚合接口1，并配置该接口为动态聚合模式。其他配置和静态一样

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] link-aggregation mode dynamic
```

### 2.3 三层静态聚合配置举例

\# 创建三层聚合接口1，并为该接口配置IP地址和子网掩码。其他和二层配置一样

```
<DeviceA> system-view
[DeviceA] interface route-aggregation 1
[DeviceA-Route-Aggregation1] ip address 192.168.1.1 24
[DeviceA-Route-Aggregation1] quit
```

## 3 其他配置说明

### 3.1限制聚合组内选中端口的数量

聚合链路的带宽取决于聚合组内选中端口的数量，用户通过配置聚合组中的最小选中端口数，可以避免由于选中端口太少而造成聚合链路上的流量拥塞。当聚合组内选中端口的数量达不到配置值时，对应的聚合接口将不会up，从而使流量可以切换到备份链路上。具体实现如下：

· 如果聚合组内能够被选中的成员端口数小于配置值，这些成员端口都将变为非选中状态，对应聚合接口的链路状态也将变为down。

* 当聚合组内能够被选中的成员端口数增加至不小于配置值时，这些成员端口都将变为选中状态，对应聚合接口的链路状态也将变为up。
* 缺省情况下，聚合组中的最小选中端口数不受限制

配置举例：

\# 创建二层聚合(三层聚合)接口1，并配置该接口限制聚合组的数量最小为2

```
[DeviceA] interface bridge-aggregation 1
[DeviceA-Bridge-Aggregation1] link-aggregation selected-port minimum 2
```

### 3.2设置链路聚合的负载分担方式

`link-aggregation load-sharing mode`命令用来配置聚合组内采用的聚合负载分担类型。

`undo link-aggregation load-sharing mode`命令用来恢复缺省情况。

【命令】

```
link-aggregation load-sharing mode { destination-ip | destination-mac| source-ip| source-mac } 
```

【缺省情况】

缺省情况与设备的型号相关，请以设备的实际情况为准。

【参数】

**destination-ip**：表示按报文的目的IP地址进行聚合负载分担。

**destination-mac**：表示按报文的目的MAC地址进行聚合负载分担。

**source-ip**：表示按报文的源IP地址进行聚合负载分担。

**source-mac**：表示按报文的源MAC地址进行聚合负载分担。

【使用指导】

* 如果多次执行本命令，新的配置将覆盖旧的配置。
* 对于设备不支持的聚合负载分担类型，系统将提示用户不支持。

【举例】

配置二层聚合接口1对应的聚合组内按照报文目的MAC地址进行聚合负载分担。

```
<Sysname> system-view

[Sysname] interface bridge-aggregation 1

[Sysname-Bridge-Aggregation1] link-aggregation load-sharing mode destination-mac
```

配置二层聚合接口1对应的聚合组内按照源目地址进行聚合负载分担。

```
<Sysname> system-view

[Sysname] interface bridge-aggregation 1

[Sysname-Bridge-Aggregation1] link-aggregation load-sharing mode destination-ip source-ip 
```

**其他交换机配置**

华三

```
link-aggregation load-sharing mode destination-ip source-ip 
```

\#基于源IP和目的IP进行负载分担

华为

```
load-balance src-dst-ip
```

\#配置Eth-Trunk负载分担方式。缺省情况下，交换机上Eth-Trunk接口的负载分担模式为src-dst-ip

锐捷

```
aggregateport load-balance src-dst-ip
```

\#更改流量平衡算法为源目ip模式，默认为源MAC+目的MAC模式


# 3.IRF堆叠

华三irf堆叠配置指导

## 1.1 IRF简介

IRF（Intelligent Resilient Framework，智能弹性架构）是H3C自主研发的软件虚拟化技术。它的核心思想是将多台设备连接在一起，进行必要的配置后，虚拟化成一台设备。使用这种虚拟化技术可以集合多台设备的硬件资源和软件处理能力，实现多台设备的协同工作、统一管理和不间断维护。

为了便于描述，这个“虚拟设备”也称为IRF。所以，本文中的IRF有两层意思，一个是指IRF技术，一个是指IRF设备。

### 1.1.1 IRF的优点

IRF主要具有以下优点：

· 简化管理。IRF形成之后，用户通过任意成员设备的任意端口都可以登录IRF系统，对IRF内所有成员设备进行统一管理。

· 1:N备份。IRF由多台成员设备组成，其中，主设备负责IRF的运行、管理和维护，从设备在作为备份的同时也可以处理业务。一旦主设备故障，系统会迅速自动选举新的主设备，以保证业务不中断，从而实现了设备的1:N备份。

· 跨成员设备的链路聚合。IRF和上、下层设备之间的物理链路支持聚合功能，并且不同成员设备上的物理链路可以聚合成一个逻辑链路，多条物理链路之间可以互为备份也可以进行负载分担，当某个成员设备离开IRF，其它成员设备上的链路仍能收发报文，从而提高了聚合链路的可靠性。

· 强大的网络扩展能力。通过增加成员设备，可以轻松自如的扩展IRF的端口数、带宽。因为各成员设备都有CPU，能够独立处理协议报文、进行报文转发，所以IRF还能轻松自如的扩展处理能力。

### 1.1.2 IRF的应用

如[图1-1](https://www.h3c.com/cn/d_202106/1413399_30005_0.htm#_Ref412812873)所示，主设备和从设备组成IRF，对上、下层设备来说，它们就是一台设备——IRF。

图1-1 IRF组网应用示意图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220519150322.png)

## 2 IRF典型配置举例（BFD MAD检测方式）

### 1. 组网需求

由于网络规模迅速扩大，当前中心交换机（Device A）转发能力已经不能满足需求，现需要在保护现有投资的基础上将网络转发能力提高三倍，并要求网络易管理、易维护。

### 2. 组网图

图1-15 IRF典型配置组网图（BFD MAD检测方式）

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220519151529.png)

### 3. 配置思路

· Device A处于局域网的汇聚层，为了将汇聚层的转发能力提高三倍，需要另外增加三台设备Device B、Device C和Device D。

· 鉴于IRF技术具有管理简便、网络扩展能力强、可靠性高等优点，所以本例使用IRF技术构建网络汇聚层（即在四台设备上配置IRF功能），每台成员设备与上层设备Device E之间均有一条上行链路连接。

· 为了防止IRF链路故障导致IRF分裂，网络中存在两个配置冲突的IRF，需要启用MAD检测功能。本例中我们采用BFD MAD检测方式来监测IRF的状态，并使用成员设备与上层设备间的专用链路传递BFD MAD报文。

### 4. 配置步骤

注：一个设备有两个IRF端口，1和2。相邻的两个设备的端口不要相同，否则不能形成IRF。

如：1号设备的irf-port 1/1物理端口只能对应2号设备的 irf-port 2/2物理端口

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220519151647.png)

#### (1) 配置Device A

\# 根据[图1-15](https://cdn.jsdelivr.net/gh/xyzz-by/imge@main/2021/20220427203415.png)选定IRF物理端口并关闭这些端口。

```
<Sysname> system-view
[Sysname] interface range ten-gigabitethernet 1/0/49 to ten-gigabitethernet 1/0/52
[Sysname-if-range] shutdown
[Sysname-if-range] quit
```

\# 配置IRF端口1/1，并将它与物理端口Ten-GigabitEthernet1/0/49和Ten-GigabitEthernet1/0/50绑定。

```
[Sysname] irf-port 1/1
[Sysname-irf-port1/1] port group interface ten-gigabitethernet 1/0/49
[Sysname-irf-port1/1] port group interface ten-gigabitethernet 1/0/50
[Sysname-irf-port1/1] quit
```

\# 配置IRF端口1/2，并将它与物理端口Ten-GigabitEthernet1/0/51和Ten-GigabitEthernet1/0/52绑定。

```
[Sysname] irf-port 1/2
[Sysname-irf-port1/2] port group interface ten-gigabitethernet 1/0/51
[Sysname-irf-port1/2] port group interface ten-gigabitethernet 1/0/52
[Sysname-irf-port1/2] quit
```

\# 开启Ten-GigabitEthernet1/0/49～Ten-GigabitEthernet1/0/52端口，并保存配置。

```
[Sysname] interface range ten-gigabitethernet 1/0/49 to ten-gigabitethernet 1/0/52
[Sysname-if-range] undo shutdown
[Sysname-if-range] quit
[Sysname] save
```

\# 激活IRF端口下的配置。

```
[Sysname] irf-port-configuration active
```

#### (2) 配置Device B

\# 将Device B的成员编号配置为2，并重启设备使新编号生效。

```
<Sysname> system-view
[Sysname] irf member 1 renumber 2
Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y
[Sysname] quit
<Sysname> reboot
```

\# 根据[图1-15](https://cdn.jsdelivr.net/gh/xyzz-by/imge@main/2021/20220427203415.png)选定IRF物理端口并进行物理连线。

\# 重新登录到设备，关闭选定的所有IRF物理端口。

```
<Sysname> system-view
[Sysname] interface range ten-gigabitethernet 2/0/49 to ten-gigabitethernet 2/0/52
[Sysname-if-range] shutdown
[Sysname-if-range] quit
```

\# 配置IRF端口2/1，并将它与物理端口Ten-GigabitEthernet2/0/49和Ten-GigabitEthernet2/0/50绑定。

```
[Sysname] irf-port 2/1
[Sysname-irf-port2/1] port group interface ten-gigabitethernet 2/0/49
[Sysname-irf-port2/1] port group interface ten-gigabitethernet 2/0/50
[Sysname-irf-port2/1] quit
```

\# 配置IRF端口2/2，并将它与物理端口Ten-GigabitEthernet2/0/51和Ten-GigabitEthernet2/0/52绑定。

```
[Sysname] irf-port 2/2
[Sysname-irf-port2/2] port group interface ten-gigabitethernet 2/0/51
[Sysname-irf-port2/2] port group interface ten-gigabitethernet 2/0/52
```

\# 开启Ten-GigabitEthernet2/0/49～Ten-GigabitEthernet2/0/52端口，并保存配置。

```
[Sysname] interface range ten-gigabitethernet 2/0/49 to ten-gigabitethernet 2/0/52
[Sysname-if-range] undo shutdown
[Sysname-if-range] quit
[Sysname] save
```

\# 激活IRF端口下的配置。

```
[Sysname] irf-port-configuration active
```

(3) Device A和Device B间将会进行主设备竞选，竞选失败的一方将重启，重启完成后，IRF形成。

#### (4) 配置Device C

\# 将Device C的成员编号配置为3，并重启设备使新编号生效。

```
<Sysname> system-view
[Sysname] irf member 1 renumber 3
Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y
[Sysname] quit
<Sysname> reboot
```

\# 根据[图1-15](https://cdn.jsdelivr.net/gh/xyzz-by/imge@main/2021/20220427203415.png)选定IRF物理端口并进行物理连线。

\# 重新登录到设备，关闭选定的所有IRF物理端口。

```
<Sysname> system-view
[Sysname] interface range ten-gigabitethernet 3/0/49 to ten-gigabitethernet 3/0/52
[Sysname-if-range] shutdown
[Sysname-if-range] quit
```

\# 配置IRF端口3/1，并将它与物理端口Ten-GigabitEthernet3/0/49和Ten-GigabitEthernet3/0/50绑定。

```
[Sysname] irf-port 3/1
[Sysname-irf-port3/1] port group interface ten-gigabitethernet 3/0/49
[Sysname-irf-port3/1] port group interface ten-gigabitethernet 3/0/50
[Sysname-irf-port3/1] quit
```

\# 配置IRF端口3/2，并将它与物理端口Ten-GigabitEthernet3/0/51和Ten-GigabitEthernet3/0/52绑定。

```
[Sysname] irf-port 3/2
[Sysname-irf-port3/2] port group interface ten-gigabitethernet 3/0/51
[Sysname-irf-port3/2] port group interface ten-gigabitethernet 3/0/52
[Sysname-irf-port3/2] quit
```

\# 开启Ten-GigabitEthernet3/0/49～Ten-GigabitEthernet3/0/52端口，并保存配置。

```
[Sysname] interface range ten-gigabitethernet 3/0/49 to ten-gigabitethernet 3/0/52
[Sysname-if-range] undo shutdown
[Sysname-if-range] quit
[Sysname] save
```

\# 激活IRF端口下的配置。

```
[Sysname] irf-port-configuration active
```

(5) Device C将自动重启，加入Device A和Device B已经形成的IRF。

#### (6) 配置Device D

\# 将Device D的成员编号配置为4，并重启设备使新编号生效。

```
<Sysname> system-view
[Sysname] irf member 1 renumber 4
Renumbering the member ID may result in configuration change or loss. Continue? [Y/N]:y
[Sysname] quit
<Sysname> reboot
```

\# 根据[图1-15](https://cdn.jsdelivr.net/gh/xyzz-by/imge@main/2021/20220427203415.png)选定IRF物理端口并进行物理连线。

\# 重新登录到设备，关闭选定的所有IRF物理端口。

```
<Sysname> system-view
[Sysname] interface range ten-gigabitethernet 4/0/49 to ten-gigabitethernet 4/0/52
[Sysname-if-range] shutdown
[Sysname-if-range] quit
```

\# 配置IRF端口4/1，并将它与物理端口Ten-GigabitEthernet4/0/49和Ten-GigabitEthernet4/0/50绑定。

```
[Sysname] irf-port 4/1
[Sysname-irf-port4/1] port group interface ten-gigabitethernet 4/0/49
[Sysname-irf-port4/1] port group interface ten-gigabitethernet 4/0/50
[Sysname-irf-port4/1] quit
```

\# 配置IRF端口4/2，并将它与物理端口Ten-GigabitEthernet4/0/51和Ten-GigabitEthernet4/0/52绑定。

```
[Sysname] irf-port 4/2
[Sysname-irf-port4/2] port group interface ten-gigabitethernet 4/0/51
[Sysname-irf-port4/2] port group interface ten-gigabitethernet 4/0/52
[Sysname-irf-port4/2] quit
```

\# 开启Ten-GigabitEthernet4/0/49～Ten-GigabitEthernet4/0/52端口，并保存配置。

```
[Sysname] interface range ten-gigabitethernet 4/0/49 to ten-gigabitethernet 4/0/52
[Sysname-if-range] undo shutdown
[Sysname-if-range] quit
[Sysname] save
```

\# 激活IRF端口下的配置。

```
[Sysname] irf-port-configuration active
```

(7) Device D将自动重启，加入Device A、Device B和Device C已经形成的IRF。

#### (8) 配置BFD MAD

**VLAN方式**

\# 创建VLAN 3，并将端口GigabitEthernet1/0/1、GigabitEthernet2/0/1、GigabitEthernet3/0/1和GigabitEthernet4/0/1加入VLAN 3中。 # 此VLAN只能作为BFD MAD检测用，不要用于其他业务。

**如设备配置多条检测链路，只需要将对应端口加入到检测VLAN里即可，并关闭端口的STP。并且不配置链路聚合**

```
[Sysname] vlan 3
[Sysname-vlan3] port gigabitethernet 1/0/1 gigabitethernet 2/0/1 gigabitethernet 3/0/1 gigabitethernet 4/0/1
[Sysname-vlan3] quit
```

\# 创建VLAN接口3，并配置MAD IP地址。

```
[Sysname] interface vlan-interface 3
[Sysname-Vlan-interface3] mad bfd enable
[Sysname-Vlan-interface3] mad ip address 192.168.2.1 24 member 1
[Sysname-Vlan-interface3] mad ip address 192.168.2.2 24 member 2
[Sysname-Vlan-interface3] mad ip address 192.168.2.3 24 member 3
[Sysname-Vlan-interface3] mad ip address 192.168.2.4 24 member 4
[Sysname-Vlan-interface3] quit
```

\# 因为BFD MAD和生成树功能互斥，所以在GigabitEthernet1/0/1、GigabitEthernet2/0/1、GigabitEthernet3/0/1和GigabitEthernet4/0/1端口上关闭生成树协议。

```
[Sysname] interface range gigabitethernet 1/0/1 gigabitethernet 2/0/1 gigabitethernet 3/0/1 gigabitethernet 4/0/1
[Sysname-if-range] undo stp enable
[Sysname-if-range] quit
```

(9) 配置中间设备Device E

Device E作为中间设备来透传BFD MAD报文，协助IRF中的四台成员设备进行多Active检测。

!\[注意]如果中间设备是一个IRF系统，则必须通过配置确保其IRF域编号与被检测的IRF系统不同。

\# 创建VLAN 3，并将端口GigabitEthernet1/0/1～GigabitEthernet1/0/4加入VLAN 3中，用于转发BFD MAD报文。

```
<DeviceE> system-view
[DeviceE] vlan 3
[DeviceE-vlan3] port gigabitethernet 1/0/1 to gigabitethernet 1/0/4
[DeviceE-vlan3] quit
```

**三层聚合方式**

举例：两个设备

\# 创建三层聚合口

```
 [Sysname]interface Route-Aggregation 1
```

\# 创建三层聚合接口1，并配置MAD IP地址。

```
[Sysname] interface Route-Aggregation 1
[Sysname] mad bfd enable
[Sysname] mad ip address 192.168.1.1 255.255.255.252 member 1
[Sysname] mad ip address 192.168.1.2 255.255.255.252 member 2
[Sysname] quit
```

\# 将端口GigabitEthernet1/0/1、GigabitEthernet2/0/1加入到三层聚合口内。

**如有配置多条检测链路，只需要将对应的端口加入到聚合组即可**

```
[Sysname] interface GigabitEthernet1/0/1
[Sysname] port link-mode route
[Sysname] port link-aggregation group 1
[Sysname] quit
[Sysname] interface GigabitEthernet1/0/2
[Sysname] port link-mode route
[Sysname] port link-aggregation group 1
[Sysname] quit
```

#### 检测验证

```
[Sysname]display mad verbose
Multi-active recovery state: No
Excluded ports (user-configured):
Excluded ports (system-configured):
  Ten-GigabitEthernet1/0/49
  Ten-GigabitEthernet1/0/50
  Ten-GigabitEthernet2/0/49
  Ten-GigabitEthernet2/0/50
MAD ARP disabled.
MAD ND disabled.
MAD LACP disabled.
MAD BFD enabled interface: Route-Aggregation1
  MAD status                 : Normal
  Member ID   MAD IP address       Neighbor   MAD status
  1           1.1.1.1/30           2          Normal
  2           1.1.1.2/30           1          Normal
```

测试拔掉堆叠线，Standby 设备上端口全部Down，说明正常

## 其他配置

### 1.IRF显示和维护

| 操作                    | 命令                               |
| --------------------- | -------------------------------- |
| 显示IRF中所有成员设备的相关信息     | **display irf**                  |
| 显示IRF的拓扑信息            | **display irf topology**         |
| 显示IRF链路信息             | **display irf link**             |
| 显示所有成员设备上重启以后生效的IRF配置 | **display irf configuration**    |
| 显示MAD配置信息             | **display mad** \[ **verbose** ] |

### 2.配置成员优先级

在主设备选举过程中，优先级数值大的成员设备将优先被选举成为主设备。

IRF形成后，也可以通过本配置修改成员优先级，但修改不会触发选举，修改的优先级在下一次选举时生效。

#### 2.1. 配置步骤

(1) 配置IRF中指定成员设备的优先级。

```
[Sysname] irf member 1 priority 32
```

缺省情况下，设备的成员优先级为1。数值越大优先级越高，最大32。

### 3.IRF链路状态变化延迟上报功能

该功能用于避免因端口链路层状态在短时间内频繁改变，导致IRF分裂/合并的频繁发生。

#### 3.1. 配置限制和指导

下列情况下，建议将IRF链路状态变化延迟上报时间配置为0：

· 对主备倒换速度和IRF链路切换速度要求较高时

· 在IRF环境中使用RRPP、BFD或GR功能时

· 在执行关闭IRF物理端口或重启IRF成员设备的操作之前，请首先将IRF链路状态变化延迟上报时间配置为0，待操作完成后再将其恢复为之前的值

#### 3.2. 配置步骤

配置IRF链路状态变化延迟上报时间。

```
 [Sysname] irf link-delay 0
```

一般实际环境两台设备直链，建议配置成0秒，默认IRF链路状态变化延迟上报时间为4秒。

### 4.配置保留接口

当IRF分裂时，会关闭Recovery状态IRF上除了系统保留接口外的所有业务接口。系统保留接口包括：

· IRF物理端口， BFD MAD检测接口， 用户配置的保留聚合接口的成员接口

如果接口有特殊用途需要保持up状态（比如Telnet登录接口等），则用户可以通过命令行将这些接口配置为保留接口。

#### 1. 配置限制和指导

使用VLAN接口进行远程登录时，需要将该VLAN接口及其对应的以太网端口都配置为保留接口。但如果在正常工作状态的IRF中该VLAN接口也处于UP状态，则在网络中会产生IP地址冲突。

#### 2. 配置步骤

(1) 配置保留接口，当设备进入Recovery状态时，该接口不会被关闭。

```
[Sysname] mad exclude interface GigabitEthernet 1/0/1
```

缺省情况下，设备进入Recovery状态时会自动关闭本设备上除了系统保留接口以外的所有业务接口。

### 扩展

#### 角色选举

确定成员设备角色为主设备或从设备的过程称为角色选举。角色选举会在以下情况下进行：IRF建立、主设备离开或者故障、IRF合并等。其中，IRF合并包括合并前独立运行的两个（或多个）IRF合并为一个IRF和IRF分裂后重新合并两种情况。

IRF建立、主设备离开或者故障、独立运行的两个（或多个）IRF合并为一个IRF时，角色选举规则如下：

(1)     当前主设备优先，IRF不会因为有新的成员设备/主控板加入而重新选举主设备。不过，当IRF形成时，因为没有主设备，所有加入的设备都认为自己是主设备，则继续下一条规则的比较。

(2)     成员优先级大的优先。如果优先级相同，则继续下一条规则的比较。

(3)     系统运行时间长的优先。在IRF中，成员设备启动时间间隔精度为10分钟，即10分钟之内启动的设备，则认为它们是同时启动的，则继续下一条规则的比较。

(4)     CPU MAC小的优先。

通过以上规则选出的最优成员设备即为主设备，其它成员设备则均为从设备。

IRF分裂后重新合并时，原Recovery状态IRF中所有成员设备自动重启以从设备身份加入原正常工作状态的IRF，原正常工作状态的IRF的主设备作为合并后IRF的主设备。

在角色选举完成后，IRF形成，进入IRF管理与维护阶段。

引用：

{% embed url="<https://www.h3c.com/cn/d_202203/1575362_30005_0.htm#_Toc98968919>" %}
IRF虚拟化技术配置指导
{% endembed %}

{% embed url="<https://www.h3c.com/cn/d_202010/1348507_30005_0.htm>" %}
IRF虚拟化技术配置举例
{% endembed %}


# 4.ARP网关保护功能

## 1.配置ARP网关保护功能

标签：

\#网关保护 #非法网关 #网关冲突

### 1.1 ARP网关保护功能简介

在设备上不与网关相连的接口上配置此功能，可以防止伪造网关攻击。

在接口上配置此功能后，当接口收到ARP报文时，将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同。如果相同，则认为此报文非法，将其丢弃；否则，认为此报文合法，继续进行后续处理。

### 1.2 配置ARP网关保护功能

配置ARP网关保护功能，需要注意：

· **每个接口最多支持配置8个被保护的网关IP地址**。

· 不能在同一接口下同时配置命令**arp filter source**和**arp filter binding**。

· 本功能与ARP Detection功能配合使用时，先进行本功能检查，本功能检查通过后才会进行ARP Detection功能的处理。

表1-12 配置ARP网关保护功能

| 操作                       | 命令                                              | 说明                    |
| ------------------------ | ----------------------------------------------- | --------------------- |
| 进入系统视图                   | **system-view**                                 | -                     |
| 进入二层以太网接口/二层聚合接口视图       | **interface** *interface-type interface-number* | -                     |
| 开启ARP网关保护功能，配置被保护的网关IP地址 | **arp filter source** *ip-address*              | 缺省情况下，ARP网关保护功能处于关闭状态 |

### 1.3 ARP网关保护功能配置举例

#### **1. 组网需求**

与AC相连的无线客户端Client 2进行了仿造网关Switch（IP地址为10.1.1.1）的ARP攻击，导致与AC相连的设备与网关Switch 通信时错误发往了错误的Client 2。

要求：通过配置防止这种仿造网关攻击。

#### **2. 组网图**

图1-5 配置ARP网关保护功能组网图

![img](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220531115059.png)

#### **3. 配置步骤**

\# 在AC上配置ARP网关保护功能。

```
<AC> system-view
[AC] interface gigabitethernet 1/0/1
[AC-GigabitEthernet1/0/1] arp filter source 10.1.1.1
[AC-GigabitEthernet1/0/1] quit
[AC] interface gigabitethernet 1/0/2
[AC-GigabitEthernet1/0/2] arp filter source 10.1.1.1
```

完成上述配置后，对于Client 2发送的伪造的源IP地址为网关IP地址的ARP报文将会被丢弃，不会再被转发。

引用：

{% embed url="<http://www.h3c.com/cn/d_202006/1299786_30005_0.htm#_Toc41904141>" %}


# 5.交换机作为SSH客户端登录出错

提示服务器的主机密钥与本地缓存的密钥不匹配。 服务器管理员更改了主机密钥，或者您连接到另一台服务器伪装成该服务器。 请在登录前删除本地缓存的密钥！

使用华三交换机作为ssh客户端登录其他设备，报错如下,提示设备本地保存的密钥和对方返回的密钥不同，

```
<H3C> ssh 192.168.1.1
Username: admin
Press CTRL+C to abort.
Connecting to 192.168.1.1 port 22.
The server's host key does not match the local cached key. Either the server administrator has changed the host key, or you connected to another server pretending to be this server. Please remove the local cached key, before logging in!
```

### 1.查看本地保存到密钥

```
[H3C]display ssh client server-public-key 
 Server address: 192.168.1.1
 Key type: rsa
 Key length: 1024
 Key code:
   AAAAB3SDEFASe2^&^FSPODSNAAAgQDPyZwexaYdGOk0U9npokGQcA3gdPj7dTkL
   cruATInJMq46NWh0BHsdsdfdsgdT&K@F(EDADSFAFDIY+zRN+8mZt2x6fOIP3r
   uZUHcow74L3IdJLnFjLK9hDX2iG0TZC17+1C1qHQHN2lCX5dhnFVhSGdxrjK9Z0j
   4EXhXjQ4ww==
```

### 2.删除本地保存的密钥

```
[H3C]delete ssh client server-public-key server-ip 192.168.1.1
```

### 3.重新登录，提示是否保存密钥，输入密码登录成功

```
<H3C>ssh 192.168.1.1
Username: admin
Press CTRL+C to abort.
Connecting to 192.168.1.1 port 22.
The server is not authenticated. Continue? [Y/N]:y
Do you want to save the server public key? [Y/N]:y
admin@192.168.1.1's password: 
Enter a character ~ and a dot to abort.
```


# 6.策略路由改变下一跳

## 1 简介

本文档介绍了策略路由的配置举例。

普通报文是根据目的IP地址来查找路由表转发的，策略路由是一种依据用户制定的策略进行路由选择的机制。策略路由可以基于到达报文的源地址、目的地址、IP优先级、协议类型等字段灵活地进行路由选择。

## 2 配置前提

本文档中的配置均是在实验室环境下进行的配置和验证，配置前设备的所有参数均采用出厂时的缺省配置。如果您已经对设备进行了配置，为了保证配置效果，请确认现有配置和以下举例中的配置不冲突。

本文假设您已了解策略路由特性。

## 3 使用限制

· 本设备只支持转发策略路由。转发策略路由只对**接口接收的报文**起作用，指导其转发，对本地产生的报文不起作用；

· 配置重定向到下一跳时，不能将IPv4规则重定向到IPv6地址，反之亦然。

## 4 IPv4策略路由配置举例

### 4.1 组网需求

如[图1](https://www.h3c.com/cn/d_202005/1292943_30005_0.htm#_Ref355687799)所示，缺省情况下，Device的Vlan-interface2上收到的所有访问Server的报文根据路由表转发的下一跳均为10.4.1.2。

现要求在Device上配置IPv4策略路由，对于访问Server的报文实现如下要求：

(1) 首先匹配Vlan-interface2上收到的源IP地址为10.2.1.1的报文，将该报文的下一跳重定向到10.5.1.2；

(2) 其次匹配Vlan-interface2上收到的HTTP报文，将该报文的下一跳重定向到10.3.1.2。

图1 IPv4策略路由特性典型配置组网图

![img](https://pic.chjina.com/2023/03/10/20200514_4918368_image001_1292943_30005_0.png)

### 4.2 配置思路

· 为了确保能同时满足对于两种不同类型的报文重定向到不同的下一跳，需要配置两个访问控制列表，一个用于匹配Vlan-interface2上收到的源IP地址为10.2.1.1的报文，另一个用于匹配Vlan-interface2上收到的HTTP报文，并在策略路由中创建两个节点，分别对匹配上的报文进行重定向；

· **同一条策略路由中，创建的节点编号越小，优先级越高**。为了确保Vlan-interface2上收到源IP地址为10.2.1.1的HTTP报文下一跳能优先被重定向到10.5.1.2，需要在策略路由中配置该策略使用较小的节点编号（本例中使用0号节点，另一策略使用1号节点）。

### 4.3 配置步骤

\#配置Vlan-interface2的IP地址。

```
<Device> system-view
[Device] interface vlan-interface 2
[Device-Vlan-interface2] ip address 10.1.2.1 255.255.255.0
[Device-Vlan-interface2] quit
```

\#请参考以上方法配置图1中其它接口的IP地址，配置步骤这里省略。

\# 配置静态路由，保证三条路径都可达，并且缺省下一跳为10.4.1.2。**路由优先级越小越优先，默认为60**.

```
[Device] ip route-static 192.168.1.0 24 10.3.1.2
[Device] ip route-static 192.168.1.0 24 10.4.1.2 preference 40
[Device] ip route-static 192.168.1.0 24 10.5.1.2
```

\# 定义访问控制列表ACL 3005，用于匹配源IP地址为10.2.1.1的报文。

```
[Device] acl advanced 3005
[Device-acl-ipv4-adv-3005] rule 0 permit ip source 10.2.1.1 0
[Device-acl-ipv4-adv-3005] quit
```

\# 定义访问控制列表ACL 3006，用于匹配HTTP报文。

```
[Device] acl advanced 3006
[Device-acl-ipv4-adv-3006] rule 0 permit tcp destination-port eq www
[Device-acl-ipv4-adv-3006] quit
```

\# 创建策略路由pbr1的0号节点，将匹配ACL 3005的报文下一跳重定向到10.5.1.2。

```
[Device] policy-based-route pbr1 permit node 0
[Device-pbr-pbr1-0] if-match acl 3005
[Device-pbr-pbr1-0] apply next-hop 10.5.1.2
[Device-pbr-pbr1-0] quit
```

\# 创建策略路由pbr1的1号节点，将匹配ACL 3006的报文下一跳重定向到10.3.1.2。

```
[Device] policy-based-route pbr1 permit node 1
[Device-pbr-pbr1-1] if-match acl 3006
[Device-pbr-pbr1-1] apply next-hop 10.3.1.2
[Device-pbr-pbr1-1] quit
```

\# 在Device的接口Vlan-interface2上应用策略。

```
[Device] interface vlan-interface 2
[Device-Vlan-interface2] ip policy-based-route pbr1
[Device-Vlan-interface2] quit
```

### 4.4 验证配置

通过display ip policy-based-route命令可以查看到当前策略路由配置已经配置成功：

```
[Device] display ip policy-based-route policy pbr1
Policy name: pbr1
 node 0 permit:
  if-match acl 3005
  apply next-hop 10.5.1.2
 node 1 permit:
  if-match acl 3006
  apply next-hop 10.3.1.2
```

\# 通过tracert命令查看以下报文的转发路径（使用Tracert功能需要在中间设备上开启ICMP超时报文发送功能，在目的端开启ICMP目的不可达报文发送功能）：

源IP为10.1.1.1的非HTTP报文，重定向到10.4.1.2进行转发。

```
<Switch> tracert -a 10.1.1.1 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1) from 10.1.1.1, 30 hops at most, 40 bytes
 each packet, press CTRL_C to break
 1 10.1.2.1 (10.1.2.1) 2.178 ms 1.364 ms 1.058 ms
 2 10.4.1.2 (10.4.1.2) 1.548 ms 1.248 ms 1.112 ms
 3 192.168.1.1 (192.168.1.1) 1.594 ms 1.321 ms 1.093 ms
```

源IP为10.2.1.1的报文，重定向到10.5.1.2进行转发。

```
<Switch> tracert -a 10.2.1.1 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1) from 10.2.1.1, 30 hops at most, 40 bytes
 each packet, press CTRL_C to break
 1 10.1.2.1 (10.1.2.1) 1.721 ms 1.226 ms 1.050 ms
 2 10.5.1.2 (10.5.1.2) 4.494 ms 1.385 ms 1.170 ms
 3 192.168.1.1 (192.168.1.1) 1.448 ms 1.304 ms 1.093 ms
```

## 5 查看配置

5.1显示已经配置的策略

```
[Device]display ip policy-based-route
Policy name: pbr1
  node 0 permit:
    if-match acl 3005
    apply next-hop 10.5.1.2
  node 1 permit:
    if-match acl 3006
    apply next-hop 10.3.1.2
```

5.2显示已经应用的策略路由信息

```
[Device]dis ip policy-based-route setup
Policy name              Type     Interface
pbr1                     Forward  Vlan-interface2
```

引用：

{% embed url="<https://www.h3c.com/cn/d_202005/1292943_30005_0.htm>" %}

{% embed url="<https://www.h3c.com/cn/d_202208/1659284_30005_0.htm#_Ref293667388>" %}


# 7.交换机密码策略实现的解决办法

## 交换机密码策略实现的解决办法

#### 问题描述

随着网络安全的发展，对于网络设备密码的安全性有了更加严格要求。因此需要在网络设备通过密码策略来保障设备的安全。

#### 过程分析

1、如果需要针对交换机管理的所有用户登陆密码做限制，需要在全局配置密码策略。

2、如果仅针对交换机的某个用户做密码策略的限制，需要在具体的用户试图下配置密码策略。

#### 解决方法

1、针对全部的登陆用户做限制，需要在全局配置密码策略：

`[H3C]password-control enable` //开启密码策略

`[H3C]password-control aging enable` //开启密码有效期的策略

`[H3C]password-control aging 90` //配置密码有效的时间为90天

`[H3C]password-control length enable` //开启密码长度的限制

`[H3C]password-control length 16` // 配置密码长度最小为16位

`[H3C]password-control login-attempt 10 exceed lock-time 10` //配置密码可尝试的失败次数为10次，10次失败以后被锁定10分钟后方可继续尝试

2、针对某个用户做限制，需要在具体用户试图下做配置：

`[H3C]password-control enable` //开启密码策略

`[H3C]local-user admin` //创建admin用户

`[H3C-luser-manage-admin]password-control aging 90` //配置admin用户密码有效期为90天

`[H3C-luser-manage-admin]password-control length 8` //配置admin用户密码长度最小为8位

`[H3C-luser-manage-admin]password-control login-attempt 10 exceed lock-time 5` //配置admin用户的密码可尝试的失败次数为10次，10次失败以后被锁5分钟后方可继续尝试

注意：

1、假设用户内和全局都配置了密码策略，则该用户内的密码策略生效

2、假设用户内没有配置密码策略且全局开启了密码策略，则生效的是全局的密码策略


# 8.华三交换机配置NTP

NTP服务器/客户端模式典型配置举例

## 1 组网需求

如[图1](https://www.h3c.com/cn/d_202012/1371466_30005_0.htm#_Ref256147451)所示，网络中有一台时间服务器Device A，为网络中的其它设备提供精确的时间服务，为保证网络中的所有设备能保持一致、统一的时钟，现要求配置NTP服务器/客户端模式，使所有设备能从时间服务器Device A上获得时钟同步。

图1 配置NTP服务器/客户端模式组网图

![img](https://pic.chjina.com/2023/06/01/20201231_5475298_image001_1371466_30005_0.png)

## 2 配置步骤

### 1 Device A的配置

\# 配置NTP客户端，接受公网NTP校时。

\# 设置DNS

\[DeviceA] dns server 223.5.5.5

\# 开启NTP功能。

ntp-service enable

\# 通过NTP协议获取时间

\[DeviceA] clock protocol ntp

\# 设置时区为东八区

\[DeviceA] clock timezone BeiJing add 8

\# 设置NTP服务器地址

ntp-service unicast-server ntp.chjina.com

\# 设置本地时钟作为参考时钟，层数为2。

\[DeviceA] ntp-service refclock-master 2

### 2 Device B的配置

\# 配置接口的IP地址，配置步骤这里省略。

\# 开启NTP功能。

system-view

\[DeviceB] ntp-service enable

\# 设置NTP Server为Device B的时间服务器。

\[DeviceB] ntp-service unicast-server 1.0.1.11

## 3 验证配置

\# 以上配置完成后，Device B向Device A进行时间同步。查看NTP的运行状态。

```
[DeviceB] display ntp-service status
 Clock status: synchronized 
 Clock stratum: 3
 System peer: 1.0.1.11   
 Local mode: client     
 Reference clock ID: 1.0.1.11
 Leap indicator: 00     
 Clock jitter: 0.003479 s  
 Stability: 0.000 pps    
 Clock precision: 2^-19    
 Root delay: 1.95313 ms   
 Root dispersion: 28.38135 ms
 Reference time: d5ed8cd5.577006ea Wed, Sep 25 2019 16:24:53.341
```

此时Device B已经与Device A同步，层数比Device A的层数大1，为3。

\# 查看Device B的NTP会话信息，可以看到Device B与Device A建立了连接。

```
[DeviceB] display ntp-service sessions
​     source     reference    stra reach poll now offset delay disper
********************************************************************************
[12345]1.0.1.11    127.127.1.0    2  255  64  38 -10.22 1.9531 3.3416
Notes: 1 source(master), 2 source(peer), 3 selected, 4 candidate, 5 configured.
 Total sessions: 1
```

## 配置文件

· Device A上的配置

```
interface Vlan-interface2
 ip address 1.0.1.11 255.255.255.0
 dns server 223.5.5.5
 clock protocol ntp
 clock timezone BeiJing add 8
 ntp-service enable 
 ntp-service  refclock-master 2
 ntp-service unicast-server ntp.chjina.com
 ntp-service unicast-server 182.92.12.11
```

· Device B上的配置

```
interface Vlan-interface2
 ip address 1.0.1.12 255.255.255.0
 ntp-service enable
 ntp-service unicast-server 1.0.1.11
```

参考:

{% embed url="<https://www.h3c.com/cn/d_202201/1535193_30005_0.htm#_Toc93421431>" %}


# 9.环路检测配置举例

## 1. 环路检测

### 1.1 环路检测简介

#### 1.1.1 环路检测产生背景

环路检测能够及时发现二层网络中的环路，通过周期性的检查，使网络中出现环路时能及时通知用户检查网络连接和配置情况。当网络中出现环路时，环路检测机制通过生成日志信息来通知用户，并可根据用户事先的配置来选择是否关闭出现环路的端口。

#### 1.1.2 环路检测报文

设备通过发送环路检测报文并检测其是否返回本设备（不要求收、发端口为同一端口）以确认是否存在环路。若某端口收到了由本设备发出的环路检测报文，就认定该端口所在链路存在环路。

#### 1.1.3 环路检测时间间隔

由于网络时刻处于变化中，因此环路检测是一个持续的过程，它以一定的时间间隔发送环路检测报文来确定各端口是否出现环路、以及存在环路的端口上是否已消除环路等，这个时间间隔就称为环路检测的时间间隔。

#### 1.1.4 环路检测处理模式

环路检测的处理模式是指当系统检测到端口出现环路时的处理方式，包括以下几种：

* Block模式：当系统检测到端口出现环路时，除了生成日志信息外，还会禁止端口学习MAC地址并将端口阻塞。
* No-learning模式：当系统检测到端口出现环路时，除了生成日志信息外，还会禁止端口学习MAC地址。
* Shutdown模式：当系统检测到端口出现环路时，除了生成日志信息外，还会自动关闭该端口，使其不能收发任何报文。

缺省情况下，系统不采用上述任何一种模式，当系统检测到端口出现环路时，除了生成日志信息外不对该端口进行任何处理。

#### 1.1.5 端口状态自动恢复

在Block模式和No-learning模式下，当设备检测到某端口出现环路后，若在三倍的环路检测时间间隔内仍未收到环路检测报文，就认为该端口上的环路已消除，自动将该端口恢复为正常转发状态，并通知给用户。这个过程就是端口状态的自动恢复过程。

在Shutdown模式下，出现环路的端口先被自动关闭，然后在**shutdown-interval**命令（请参考“基础配置命令参考”中的“设备管理”）所配置的时间之后自动恢复。如果此时环路尚未消除，该端口将被再次关闭，然后恢复……如此往复直至环路消除。

```
当网络中存在环路时，为防止大量报文的冲击，设备会丢弃部分报文。而如果环路检测报文也被丢弃，设备在端口状态自动恢复功能的作用下会误判定环路已消除。在这种情况下，建议将环路检测的处理模式配置为Shutdown模式，或当设备提示出现环路时通过手工排查来消除环路。
```

## 2. 环路检测典型配置举例

### 2.1 环路检测基本功能配置举例

#### **1. 组网需求**

· 三台设备Device A、Device B和Device C组成一个物理上的环形网络。

· 通过在Device A上配置环路检测功能，使系统能够自动关闭Device A上出现环路的端口，并通过打印日志信息来通知用户检查网络。

#### **2. 组网图**

图1-3 环路检测基本功能配置组网图

![img](https://pic.chjina.com/2023/07/25/20230531_9120074_x_Img_x_png_4_1858327_30005_0.png)

‌

#### **3. 配置步骤**

(1) 配置Device A

\# 创建VLAN 100，并全局开启该VLAN内的环路检测功能。

```
<DeviceA> system-view
[DeviceA] vlan 100
[DeviceA–vlan100] quit
[DeviceA] loopback-detection global enable vlan 100
```

\# 配置端口GigabitEthernet1/0/1和GigabitEthernet1/0/2为Trunk类型，并允许VLAN 100通过。

```
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] port link-type trunk
[DeviceA-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceA-GigabitEthernet1/0/1] quit
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] port link-type trunk
[DeviceA-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceA-GigabitEthernet1/0/2] quit
```

\# 全局配置环路检测的处理模式为Shutdown模式。

```
[DeviceA] loopback-detection global action shutdown
```

\# 配置环路检测的时间间隔为35秒。

```
[DeviceA] loopback-detection interval-time 35
```

(2) 配置Device B

\# 创建VLAN 100。

```
<DeviceB> system-view
[DeviceB] vlan 100
[DeviceB–vlan100] quit
```

\# 配置端口GigabitEthernet1/0/1和GigabitEthernet1/0/2为Trunk类型，并允许VLAN 100通过。

```
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] port link-type trunk
[DeviceB-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] port link-type trunk
[DeviceB-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceB-GigabitEthernet1/0/2] quit
```

(3) 配置Device C

\# 创建VLAN 100。

```
<DeviceC> system-view
[DeviceC] vlan 100
[DeviceC–vlan100] quit
```

\# 配置端口GigabitEthernet1/0/1和GigabitEthernet1/0/2为Trunk类型，并允许VLAN 100通过。

```
[DeviceC] interface gigabitethernet 1/0/1
[DeviceC-GigabitEthernet1/0/1] port link-type trunk
[DeviceC-GigabitEthernet1/0/1] port trunk permit vlan 100
[DeviceC-GigabitEthernet1/0/1] quit
[DeviceC] interface gigabitethernet 1/0/2
[DeviceC-GigabitEthernet1/0/2] port link-type trunk
[DeviceC-GigabitEthernet1/0/2] port trunk permit vlan 100
[DeviceC-GigabitEthernet1/0/2] quit
```

#### **4. 验证配置**

当配置完成后，系统在一个环路检测时间间隔内在Device A的端口GigabitEthernet1/0/1和GigabitEthernet1/0/2上都检测到了环路，于是将这两个端口自动关闭，并打印了如下日志信息：

```
[DeviceA]
%Feb 24 15:04:29:663 2013 DeviceA LPDT/4/LPDT_LOOPED:  A loop was detected on GigabitEthernet1/0/1.
%Feb 24 15:04:29:664 2013 DeviceA LPDT/4/LPDT_VLAN_LOOPED: A loop was detected on GigabitEthernet1/0/1 in VLAN 100.
%Feb 24 15:04:29:667 2013 DeviceA LPDT/4/LPDT_LOOPED: A loop was detected on GigabitEthernet1/0/2.
%Feb 24 15:04:29:668 2013 DeviceA LPDT/4/LPDT_VLAN_LOOPED: A loop was detected on GigabitEthernet1/0/2 in VLAN 100.
%Feb 24 15:04:44:243 2013 DeviceA LPDT/5/LPDT_VLAN_RECOVERED: A loop was removed on GigabitEthernet1/0/1 in VLAN 100.
%Feb 24 15:04:44:243 2013 DeviceA LPDT/5/LPDT_RECOVERED: All loops were removed on GigabitEthernet1/0/1.
%Feb 24 15:04:44:248 2013 DeviceA LPDT/5/LPDT_VLAN_RECOVERED: A loop was removed on GigabitEthernet1/0/2 in VLAN 100.
%Feb 24 15:04:44:248 2013 DeviceA LPDT/5/LPDT_RECOVERED: All loops were removed on GigabitEthernet1/0/2.
```

使用**display loopback-detection**命令可以查看Device A上环路检测的配置和运行情况：

\# 显示Device A上环路检测的配置和运行情况。

```
[DeviceA] display loopback-detection
Loop detection is enabled.
Loop detection interval is 35 second(s).
Loop is detected on following interfaces:
 Interface           Action mode   VLANs
 GigabitEthernet1/0/1      Shutdown    100
 GigabitEthernet1/0/2      Shutdown    100
```

由此可见，Device A上显示在端口GigabitEthernet1/0/1和GigabitEthernet1/0/2上检测到环路，由于环路检测功能运行在Shutdown模式下，端口GigabitEthernet1/0/1和GigabitEthernet1/0/2上出现环路后均已被自动关闭，因此设备打印的日志信息显示这两个端口上的环路已消除。此时，使用**display interface**命令分别查看Device A上端口GigabitEthernet1/0/1和GigabitEthernet1/0/2的状态信息：

\# 显示Device A上端口GigabitEthernet1/0/1的状态信息。

```
[DeviceA] display interface gigabitethernet 1/0/1
GigabitEthernet1/0/1 current state: DOWN (Loopback detection down)
...
```

\# 显示Device A上端口GigabitEthernet1/0/2的状态信息。

```
[DeviceA] display interface gigabitethernet 1/0/2
GigabitEthernet1/0/2 current state: DOWN (Loopback detection down)
...
```

由此可见，端口GigabitEthernet1/0/1和GigabitEthernet1/0/2均已被环路检测模块自动关闭。

引用：

{% embed url="<https://www.h3c.com/cn/d_202305/1858327_30005_0.htm#_Ref470192304>" %}

{% embed url="<https://www.h3c.com/cn/d_202303/1816246_30005_0.htm>" %}


# 10.静态路由、Track与NQA联动，设置浮动备份路由

## 1 简介

本案例介绍静态路由、Track与NQA联动的配置方法。

## 2 组网需求

如[图](https://pic.chjina.com/2024/07/03/d0ce27a786811ee8d3666a23ec97c890.png)所示，Switch A、Switch B、Switch C和Switch D连接了20.1.1.0/24和30.1.1.0/24两个网段，在交换机上配置静态路由以实现两个网段的互通，并配置路由备份以提高网络的可靠性。

Switch A作为20.1.1.0/24网段内主机的缺省网关，在Switch A上存在两条到达30.1.1.0/24网段的静态路由，下一跳分别为Switch B和Switch C。这两条静态路由形成备份，其中：

* 下一跳为Switch B的静态路由优先级高，作为主路由。该路由可达时，Switch A通过Switch B将报文转发到30.1.1.0/24网段。
* 下一跳为Switch C的静态路作为备份路由。
* 在Switch A上通过静态路由、Track与NQA联动，实时判断主路由是否可达。当主路由不可达时，备份路由生效，Switch A通过Switch C将报文转发到30.1.1.0/24网段。

同样地，Switch D作为30.1.1.0/24网段内主机的缺省网关，在Switch D上存在两条到达20.1.1.0/24网段的静态路由，下一跳分别为Switch B和Switch C。这两条静态路由形成备份，其中：

* 下一跳为Switch B的静态路由优先级高，作为主路由。该路由可达时，Switch D通过Switch B将报文转发到20.1.1.0/24网段。
* 下一跳为Switch C的静态路作为备份路由。
* 在Switch D上通过静态路由、Track与NQA联动，实时判断主路由是否可达。当主路由不可达时，备份路由生效，Switch D通过Switch C将报文转发到20.1.1.0/24网段。

图6 静态路由、Track与NQA联动配置组网图

![img](https://resource.h3c.com/cn/202303/28/20230328_8774740_x_Img_x_png_7_1816253_30005_0.png)

此应用场景下，请确保生成树协议处于未使能状态。

## 3 配置思路

配置思路如下：

(1) 配置各设备IP地址

(2) 配置静态路由

配置主备静态路由，其中下一跳为Switch B的静态路由优先级高，作为主路由，下一跳为Switch C的静态路作为备份路由。

(3) 配置NQA测试

分别在Switch A和Switch D上配置NQA检测Switch A－Switch B－Switch D这条路径的连通性。通过Track关联NQA测试组，实现静态路由、Track与NQA联动。

## 4 配置步骤

### 1. 配置Switch A

\# 创建VLAN，在VLAN中加入对应的端口，并配置各VLAN接口的IP地址。

```
<SwitchA> system-view
[SwitchA] vlan 2
[SwitchA-vlan2] port gigabitethernet 1/0/1
[SwitchA-vlan2] quit
[SwitchA] vlan 3
[SwitchA-vlan3] port gigabitethernet 1/0/2
[SwitchA-vlan3] quit
[SwitchA] vlan 6
[SwitchA-vlan6] port gigabitethernet 1/0/3
[SwitchA-vlan6] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 24
[SwitchA-Vlan-interface2] quit
[SwitchA] interface vlan-interface 3
[SwitchA-Vlan-interface3] ip address 10.3.1.1 24
[SwitchA-Vlan-interface3] quit
[SwitchA] interface vlan-interface 6
[SwitchA-Vlan-interface6] ip address 20.1.1.1 24
[SwitchA-Vlan-interface6] quit
```

\# 配置到达30.1.1.0/24网段的静态路由：下一跳地址为10.1.1.2，优先级为缺省值60，该路由与Track项1关联。

```
[SwitchA] ip route-static 30.1.1.0 24 10.1.1.2 track 1
```

\# 配置到达10.2.1.0/24网段的静态路由：下一跳地址为10.1.1.2，优先级为缺省值60。

```
[SwitchA] ip route-static 10.2.1.0 24 10.1.1.2
```

\# 配置到达30.1.1.0/24网段的静态路由：下一跳地址为10.3.1.3，优先级为80。

```
[SwitchA] ip route-static 30.1.1.0 24 10.3.1.3 preference 80
```

\# 配置到达10.4.1.0/24网段的静态路由：下一跳地址为10.3.1.3，优先级为80。

```
[SwitchA] ip route-static 10.4.1.0 24 10.3.1.3 preference 80
```

\# 配置到达10.2.1.4的静态路由：下一跳地址为10.1.1.2。

```
[SwitchA] ip route-static 10.2.1.4 24 10.1.1.2
```

\# 创建管理员名为admin、操作标签为test的NQA测试组。

```
[SwitchA] nqa entry admin test
```

\# 配置测试类型为ICMP-echo。

```
[SwitchA-nqa-admin-test] type icmp-echo
```

\# 配置测试的目的地址为10.2.1.4，下一跳地址为10.1.1.2，以便通过NQA检测Switch A－Switch B－Switch D这条路径的连通性。

```
[SwitchA-nqa-admin-test-icmp-echo] destination ip 10.2.1.4
[SwitchA-nqa-admin-test-icmp-echo] next-hop ip 10.1.1.2
```

\# 配置测试频率为100ms。

```
[SwitchA-nqa-admin-test-icmp-echo] frequency 100
```

\# 配置联动项1（连续失败5次触发联动）。

```
[SwitchA-nqa-admin-test-icmp-echo] reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only
[SwitchA-nqa-admin-test-icmp-echo] quit
```

\# 启动探测。

```
[SwitchA] nqa schedule admin test start-time now lifetime forever
```

\# 配置Track项1，并进入Track视图，关联NQA测试组（管理员为admin，操作标签为test）的联动项1。

```
[SwitchA] track 1 nqa entry admin test reaction 1
[SwitchA-track-1] quit
```

\# 保存配置。

```
[SwitchA] save force
```

### 2. 配置Switch B

\# 创建VLAN，在VLAN中加入对应的端口，并配置各VLAN接口的IP地址。并配置全网路由

```
<SwitchB> system-view
[SwitchB] vlan 2
[SwitchB-vlan2] port gigabitethernet 1/0/1
[SwitchB-vlan2] quit
[SwitchB] vlan 5
[SwitchB-vlan5] port gigabitethernet 1/0/2
[SwitchB-vlan5] quit
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 10.1.1.2 24
[SwitchB-Vlan-interface2] quit
[SwitchB] interface vlan-interface 5
[SwitchB-Vlan-interface5] ip address 10.2.1.2 24
[SwitchB-Vlan-interface5] quit
```

\# 配置到达30.1.1.0/24网段的静态路由：下一跳地址为10.2.1.4。

```
[SwitchB] ip route-static 30.1.1.0 24 10.2.1.4
```

\# 配置到达20.1.1.0/24网段的静态路由：下一跳地址为10.1.1.1。

```
[SwitchB] ip route-static 20.1.1.0 24 10.1.1.1
```

\# 保存配置。

```
[SwitchB] save force
```

### 3. 配置Switch C

\# 创建VLAN，在VLAN中加入对应的端口，并配置各VLAN接口的IP地址。

```
<SwitchC> system-view
[SwitchC] vlan 3
[SwitchC-vlan3] port gigabitethernet 1/0/1
[SwitchC-vlan3] quit
[SwitchC] vlan 4
[SwitchC-vlan4] port gigabitethernet 1/0/2
[SwitchC-vlan4] quit
[SwitchC] interface vlan-interface 3
[SwitchC-Vlan-interface3] ip address 10.3.1.3 24
[SwitchC-Vlan-interface3] quit
[SwitchC] interface vlan-interface 4
[SwitchC-Vlan-interface4] ip address 10.4.1.3 24
[SwitchC-Vlan-interface4] quit
```

\# 配置到达30.1.1.0/24网段的静态路由：下一跳地址为10.4.1.4。

```
[SwitchC] ip route-static 30.1.1.0 24 10.4.1.4
```

\# 配置到达20.1.1.0/24网段的静态路由：下一跳地址为10.3.1.1。

```
[SwitchC] ip route-static 20.1.1.0 24 10.3.1.1
```

\# 保存配置。

```
[SwitchC] save force
```

### 4. 配置Switch D

\# 创建VLAN，在VLAN中加入对应的端口，并配置各VLAN接口的IP地址。

```
<SwitchD> system-view
[SwitchD] vlan 4
[SwitchD-vlan4] port gigabitethernet 1/0/1
[SwitchD-vlan4] quit
[SwitchD] vlan 5
[SwitchD-vlan5] port gigabitethernet 1/0/2
[SwitchD-vlan5] quit
[SwitchD] vlan 7
[SwitchD-vlan7] port gigabitethernet 1/0/3
[SwitchD-vlan7] quit
[SwitchD] interface vlan-interface 4
[SwitchD-Vlan-interface6] ip address 10.4.1.4 24
[SwitchD-Vlan-interface6] quit
[SwitchD] interface vlan-interface 5
[SwitchD-Vlan-interface5] ip address 10.2.1.4 24
[SwitchD-Vlan-interface5] quit
[SwitchD] interface vlan-interface 7
[SwitchD-Vlan-interface7] ip address 30.1.1.1 24
[SwitchD-Vlan-interface7] quit
```

\# 配置到达20.1.1.0/24网段的静态路由：下一跳地址为10.2.1.2，优先级为缺省值60，该路由与Track项1关联。

```
[SwitchD] ip route-static 20.1.1.0 24 10.2.1.2 track 1
```

\# 配置到达10.1.1.0/24网段的静态路由：下一跳地址为10.2.1.2，优先级为缺省值60。

```
[SwitchD] ip route-static 10.1.1.0 24 10.2.1.2
```

\# 配置到达20.1.1.0/24网段的静态路由：下一跳地址为10.4.1.3，优先级为80。

```
[SwitchD] ip route-static 20.1.1.0 24 10.4.1.3 preference 80
```

\# 配置到达10.3.1.0/24网段的静态路由：下一跳地址为10.4.1.3，优先级为80。

```
[SwitchD] ip route-static 10.3.1.0 24 10.4.1.3 preference 80
```

\# 配置到达10.1.1.1的静态路由：下一跳地址为10.2.1.2。

```
[SwitchD] ip route-static 10.1.1.1 24 10.2.1.2
```

\# 创建管理员名为admin、操作标签为test的NQA测试组。

```
[SwitchD] nqa entry admin test
```

\# 配置测试类型为ICMP-echo。

```
[SwitchD-nqa-admin-test] type icmp-echo
```

\# 配置测试的目的地址为10.1.1.1，下一跳地址为10.2.1.2，以便通过NQA检测Switch D－Switch B－Switch A这条路径的连通性。

```
[SwitchD-nqa-admin-test-icmp-echo] destination ip 10.1.1.1

[SwitchD-nqa-admin-test-icmp-echo] next-hop ip 10.2.1.2
```

\# 配置测试频率为100ms。

```
[SwitchD-nqa-admin-test-icmp-echo] frequency 100
```

\# 配置联动项1（连续失败5次触发联动）。

```
[SwitchD-nqa-admin-test-icmp-echo] reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only
[SwitchD-nqa-admin-test-icmp-echo] quit
```

\# 启动探测。

```
[SwitchD] nqa schedule admin test start-time now lifetime forever
```

\# 配置Track项1，并进入Track视图，关联NQA测试组（管理员为admin，操作标签为test）的联动项1。

```
[SwitchD] track 1 nqa entry admin test reaction 1
[SwitchD-track-1] quit
```

\# 保存配置。

```
[SwitchD] save force
```

## 5 验证配置

显示Switch A上Track项的信息。

```
[SwitchA] display track all
Track ID: 1
 State: Positive
 Duration: 0 days 0 hours 0 minutes 32 seconds
 Tracked object type: NQA
 Notification delay: Positive 0, Negative 0 (in seconds)
 Tracked object:
  NQA entry: admin test
  Reaction: 1
  Remote IP/URL: 10.2.1.4
  Local IP: --
  Interface: --
```

显示Switch A的路由表。

```
[SwitchA] display ip routing-table
Destinations : 10    Routes : 10
Destination/Mask  Proto Pre Cost     NextHop     Interface
10.1.1.0/24     Direct 0  0      10.1.1.1    Vlan2
10.1.1.1/32     Direct 0  0      127.0.0.1    InLoop0
10.2.1.0/24     Static 60  0      10.1.1.2    Vlan2
10.3.1.0/24     Direct 0  0      10.3.1.1    Vlan3
10.3.1.1/32     Direct 0  0      127.0.0.1    InLoop0
20.1.1.0/24     Direct 0  0      20.1.1.1    Vlan6
20.1.1.1/32     Direct 0  0      127.0.0.1    InLoop0
30.1.1.0/24     Static 60  0      10.1.1.2    Vlan2
127.0.0.0/8     Direct 0  0      127.0.0.1    InLoop0
127.0.0.1/32    Direct 0  0      127.0.0.1    InLoop0
```

以上显示信息表示，NQA测试的结果为主路由可达（Track项状态为Positive），Switch A通过Switch B将报文转发到30.1.1.0/24网段。

\# 在Switch B上关闭VLAN接口2对应的以太网接口。

```
<SwitchB> system-view
[SwitchB] interface gigabitethernet 1/0/1
[SwitchB-Gigabitethernet 1/0/1] shutdown
```

\# 显示Switch A上Track项的信息。

```
[SwitchA] display track all
Track ID: 1
 State: Negative
 Duration: 0 days 0 hours 0 minutes 32 seconds
 Tracked object type: NQA
 Notification delay: Positive 0, Negative 0 (in seconds)
 Tracked object:
  NQA entry: admin test
  Reaction: 1
  Remote IP/URL: 10.2.1.4
  Local IP: --
  Interface: --
```

\# 显示Switch A的路由表。

```
[SwitchA] display ip routing-table
Destinations : 10    Routes : 10
Destination/Mask  Proto Pre Cost     NextHop     Interface
10.1.1.0/24     Direct 0  0      10.1.1.1    Vlan2
10.1.1.1/32     Direct 0  0      127.0.0.1    InLoop0
10.2.1.0/24     Static 60  0      10.1.1.2    Vlan2
10.3.1.0/24     Direct 0  0      10.3.1.1    Vlan3
10.3.1.1/32     Direct 0  0      127.0.0.1    InLoop0
20.1.1.0/24     Direct 0  0      20.1.1.1    Vlan6
20.1.1.1/32     Direct 0  0      127.0.0.1    InLoop0
30.1.1.0/24     Static 80  0      10.3.1.3    Vlan3
127.0.0.0/8     Direct 0  0      127.0.0.1    InLoop0
127.0.0.1/32    Direct 0  0      127.0.0.1    InLoop0
```

以上显示信息表示，NQA测试的结果为主路由不可达（Track项状态为Negative），则备份路由生效，Switch A通过Switch C将报文转发到30.1.1.0/24网段。

\# 主路由出现故障后，20.1.1.0/24网段内的主机仍然可以与30.1.1.0/24网段内的主机通信。

```
[SwitchA] ping -a 20.1.1.1 30.1.1.1
Ping 30.1.1.1: 56 data bytes, press CTRL+C to break
Reply from 30.1.1.1: bytes=56 Sequence=1 ttl=254 time=2 ms
Reply from 30.1.1.1: bytes=56 Sequence=2 ttl=254 time=1 ms
Reply from 30.1.1.1: bytes=56 Sequence=3 ttl=254 time=1 ms
Reply from 30.1.1.1: bytes=56 Sequence=4 ttl=254 time=2 ms
Reply from 30.1.1.1: bytes=56 Sequence=5 ttl=254 time=1 ms
--- Ping statistics for 30.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.00% packet loss
round-trip min/avg/max/std-dev = 1/1/2/1 ms
```

\# Switch D上的显示信息与Switch A类似。主路由出现故障后，30.1.1.0/24网段内的主机仍然可以与20.1.1.0/24网段内的主机通信。

```
[SwitchD] ping -a 30.1.1.1 20.1.1.1
Ping 20.1.1.1: 56 data bytes, press CTRL+C to break
Reply from 20.1.1.1: bytes=56 Sequence=1 ttl=254 time=2 ms
Reply from 20.1.1.1: bytes=56 Sequence=2 ttl=254 time=1 ms
Reply from 20.1.1.1: bytes=56 Sequence=3 ttl=254 time=1 ms
Reply from 20.1.1.1: bytes=56 Sequence=4 ttl=254 time=1 ms
Reply from 20.1.1.1: bytes=56 Sequence=5 ttl=254 time=1 ms
--- Ping statistics for 20.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.00% packet loss
round-trip min/avg/max/std-dev = 1/1/2/1 ms
```

## 6 配置文件

* Switch A：

```
#
vlan 2
\#
vlan 3
\#
vlan 6
\#
nqa entry admin test
 type icmp-echo
 destination ip 10.2.1.4
 frequency 100
 next-hop ip 10.1.1.2
 reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only
\#
 nqa schedule admin test start-time now lifetime forever
\#
interface Vlan-interface2
 ip address 10.1.1.1 255.255.255.0
\#
interface Vlan-interface3
 ip address 10.3.1.1 255.255.255.0
\#
interface Vlan-interface6
 ip address 20.1.1.1 255.255.255.0
\#
interface GigabitEthernet1/0/1
 port link-mode bridge
 port access vlan 2
\#
interface GigabitEthernet1/0/2
 port link-mode bridge
 port access vlan 3
\#
interface GigabitEthernet1/0/3
 port link-mode bridge
 port access vlan 6
\#
 ip route-static 10.2.1.0 24 10.1.1.2
 ip route-static 30.1.1.0 24 10.1.1.2 track 1
 ip route-static 10.4.1.0 24 10.3.1.3 preference 80
 ip route-static 30.1.1.0 24 10.3.1.3 preference 80
\#
 track 1 nqa entry admin test reaction 1
\#
```

* Switch D

```
#
vlan 4
\#
vlan 5
\#
vlan 7
\#
nqa entry admin test
 type icmp-echo
 destination ip 10.1.1.1
 frequency 100
 next-hop ip 10.2.1.2
 reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only
\#
 nqa schedule admin test start-time now lifetime forever
\#
interface Vlan-interface4
 ip address 10.4.1.4 255.255.255.0
\#
interface Vlan-interface5
 ip address 10.2.1.4 255.255.255.0
\#
interface Vlan-interface7
 ip address 30.1.1.1 255.255.255.0
\#
interface GigabitEthernet1/0/1
 port link-mode bridge
 port access vlan 4
\#
interface GigabitEthernet1/0/2
 port link-mode bridge
 port access vlan 5
\#
interface GigabitEthernet1/0/3
 port link-mode bridge
 port access vlan 7
\#
 ip route-static 10.1.1.0 24 10.2.1.2
 ip route-static 20.1.1.0 24 10.2.1.2 track 1
 ip route-static 10.3.1.0 24 10.4.1.3 preference 80
 ip route-static 20.1.1.0 24 10.4.1.3 preference 80
\#
 track 1 nqa entry admin test reaction 1
\#
```

## 注意事项

### 1.nqa启动报错

Incomplete NQA operation parameters. Can't start the NQA operation.

检查配置

```
[DeviceA-nqa-admin-test1] type icmp-echo
[DeviceA-nqa-admin-test1-icmp-echo] destination ip 10.2.2.2       是否写成了description
```


# 华为


# 华为交换机开启远程Telnet登录

## 配置登录地址

```
[Switch] vlan 10
[Switch-vlan10]  interface vlanif 10    //配置VLANIF10作为管理接口。
[Switch-Vlanif10] ip address 10.1.1.1 24
[Switch-Vlanif10] quit
[Switch] interface gigabitethernet 0/0/10    
[Switch-GigabitEthernet0/0/10] port link-type access    //配置接口类型为access。
[Switch-GigabitEthernet0/0/10] port default vlan 10    //配置接口GE0/0/10加入VLAN 10。
[Switch-GigabitEthernet0/0/10] quit
```

## 配置Telnet

```
[Switch] telnet server enable    //使能Telnet功能。
[Switch] telnet server-source -i Vlanif 10    //配置服务器端的源接口为10.1.1.1对应的接口，假设该接口为Vlanif 10。
[Switch] user-interface vty 0 4    //进入VTY 0～VTY 4用户界面视图。
[Switch-ui-vty0-4] protocol inbound telnet    //指定VTY用户界面所支持的协议为Telnet。
[Switch-ui-vty0-4] user privilege level 15    //配置VTY 0～VTY 4的用户级别为15级。
[Switch-ui-vty0-4] authentication-mode aaa    //配置VTY 0～VTY 4的用户认证方式为AAA认证。
[Switch-ui-vty0-4] quit
[Switch] aaa
[Switch-aaa] local-user admin123 password irreversible-cipher Huawei@6789    //创建名为admin123的本地用户，设置其登录密码为Huawei@6789。V200R003之前的版本，不支持irreversible-cipher，仅支持cipher关键字。
[Switch-aaa] local-user admin123 privilege level 15    //配置用户级别为15级。
Warning: This operation may affect online users, are you sure to change the user privilege level ?[Y/N]y   
[Switch-aaa] local-user admin123 service-type telnet    //配置接入类型为telnet，即：Telnet用户。
[Switch-aaa] quit
```

## 配置文件

Switch的配置文件

```
#
sysname Switch
#
vlan batch 10
#
telnet server enable
telnet server-source -i Vlanif 10
#
clock timezone BJ add 08:00:00
#
aaa
 local-user admin123 password irreversible-cipher %^%#}+ysUO*B&+p'NRQR0{ZW7[GA*Z*!X@o:Va15dxQAj+,$>NP>63de|G~ws,9G%^%#
 local-user admin123 privilege level 15
 local-user admin123 service-type telnet
 local-user admin1234 password irreversible-cipher %^%#}+ysUO*B&+p'NRQR0{ZW7[GA*Z*!X@o:Va15dxQAj+,$>NP>63de|G~ws,9G%^%#
 local-user admin1234 privilege level 15
 local-user admin1234 service-type terminal
#
interface Vlanif10
 ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/10
 port link-type access
 port default vlan 10
#
user-interface con 0
 authentication-mode aaa
user-interface vty 0 4
 authentication-mode aaa
 user privilege level 15 
 protocol inbound telnet
#
return
```

## 脚本

```
telnet server enable
telnet server-source -i all
user-interface vty 0 4
protocol inbound telnet
user privilege level 15 
authentication-mode aaa
quit
aaa
local-user admin password irreversible-cipher Huawei@123
local-user admin123 privilege level 15 
local-user admin123 service-type telnet
quit

```

引用：

{% embed url="<https://support.huawei.com/enterprise/zh/doc/EDOC1000069491/176653a6>" %}


# 华为交换机配置链路聚合

## 配置静态链路聚合示例（交换机之间直连）

### 手工模式链路聚合简介

以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路，从而实现增加链路带宽的目的。链路聚合分为手工模式和LACP模式。

手工模式下，Eth-Trunk的建立、成员接口的加入由手工配置，没有链路聚合控制协议LACP的参与。当需要在两个直连设备间提供一个较大的链路带宽而设备又不支持LACP协议时，可以使用手工模式。手工模式可以实现增加带宽、提高可靠性、负载分担的目的。

手工模式下，所有的活动链路都参与数据转发并分担流量。

### 配置注意事项

* 一个Eth-Trunk接口中的成员接口必须是以太网类型和速率相同的接口。
* Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控配置必须一致。
* 如果本端设备接口加入了Eth-Trunk，与该接口直连的对端接口也必须加入Eth-Trunk，两端才能正常通信。
* 两台设备对接时需要保证两端设备上链路聚合的模式一致。
* 本举例适用于S系列交换机所有产品的所有版本。

### 组网需求

如[图3-75](https://support.huawei.com/enterprise/zh/doc/EDOC1000069491/5d18b4c0#fig_dc_cfg_eth-trunk_003401)所示，SwitchA和SwitchB通过以太链路分别都连接VLAN10和VLAN20的网络，且SwitchA和SwitchB之间有较大的数据流量。

用户希望SwitchA和SwitchB之间能够提供较大的链路带宽来使相同VLAN间互相通信。同时用户也希望能够提供一定的冗余度，保证数据传输和链路的可靠性。

**图3-75** 配置手工模式链路聚合组网图

&#x20;

<figure><img src="https://pic.chjina.com/2023/07/24/download" alt=""><figcaption></figcaption></figure>

### 配置思路

采用如下的思路配置手工模式链路聚合：

1. 创建Eth-Trunk接口并加入成员接口，实现增加链路带宽。
2. 创建VLAN并将接口加入VLAN。
3. 配置负载分担方式，实现流量在Eth-Trunk各成员接口间的负载分担，增加可靠性。

### 操作步骤

1. 在SwitchA和SwitchB上创建Eth-Trunk接口并加入成员接口

   ```
   <HUAWEI> system-view
   [HUAWEI] sysname SwitchA
   [SwitchA] interface eth-trunk 1   //创建ID为1的Eth-Trunk接口
   [SwitchA-Eth-Trunk1] trunkport gigabitethernet 1/0/1 to 1/0/3   //在Eth-Trunk1接口中加入GE1/0/1到GE1/0/3三个成员接口
   [SwitchA-Eth-Trunk1] quit
   ```

   ```
   <HUAWEI> system-view
   [HUAWEI] sysname SwitchB
   [SwitchB] interface eth-trunk 1   //创建ID为1的Eth-Trunk接口
   [SwitchB-Eth-Trunk1] trunkport gigabitethernet 1/0/1 to 1/0/3   //在Eth-Trunk1接口中加入GE1/0/1到GE1/0/3三个成员接口
   [SwitchB-Eth-Trunk1] quit
   ```
2. 创建VLAN并将接口加入VLAN

   \# 创建VLAN10和VLAN20并分别加入接口。SwitchB的配置与SwitchA类似，不再赘述。

   ```
   [SwitchA] vlan batch 10 20
   [SwitchA] interface gigabitethernet 1/0/4
   [SwitchA-GigabitEthernet1/0/4] port link-type trunk   //设置接口链路类型为trunk，接口缺省链路类型不是trunk口
   [SwitchA-GigabitEthernet1/0/4] port trunk allow-pass vlan 10
   [SwitchA-GigabitEthernet1/0/4] quit
   [SwitchA] interface gigabitethernet 1/0/5
   [SwitchA-GigabitEthernet1/0/5] port link-type trunk   //设置接口链路类型为trunk，接口缺省链路类型不是trunk口
   [SwitchA-GigabitEthernet1/0/5] port trunk allow-pass vlan 20
   [SwitchA-GigabitEthernet1/0/5] quit
   ```

   \# 配置Eth-Trunk1接口允许VLAN10和VLAN20通过。SwitchB的配置与SwitchA类似，不再赘述。

   ```
   [SwitchA] interface eth-trunk 1
   [SwitchA-Eth-Trunk1] port link-type trunk   //设置接口链路类型为trunk，接口缺省链路类型不是trunk口
   [SwitchA-Eth-Trunk1] port trunk allow-pass vlan 10 20
   [SwitchA-Eth-Trunk1] quit
   ```
3. 配置Eth-Trunk1的负载分担方式。SwitchB的配置与SwitchA类似，不再赘述。

   ```
   [SwitchA] interface eth-trunk 1
   [SwitchA-Eth-Trunk1] load-balance src-dst-mac   //配置Eth-Trunk1基于源MAC地址与目的MAC地址进行负载分担
   [SwitchA-Eth-Trunk1] quit
   ```
4. 验证配置结果

   在任意视图下执行**display eth-trunk 1**命令，检查Eth-Trunk是否创建成功，及成员接口是否正确加入。

   ```
   [SwitchA] display eth-trunk 1
   Eth-Trunk1's state information is: 
   WorkingMode: NORMAL           Hash arithmetic: According to SA-XOR-DA
   Least Active-linknumber: 1     Max Bandwidth-affected-linknumber: 8
   Operate status: up             Number Of Up Port In Trunk: 3 
   --------------------------------------------------------------------------------
   PortName                           Status       Weight
   GigabitEthernet1/0/1               Up           1
   GigabitEthernet1/0/2               Up           1
   GigabitEthernet1/0/3               Up           1
   ```

   从以上信息看出Eth-Trunk 1中包含3个成员接口GigabitEthernet1/0/1、GigabitEthernet1/0/2和GigabitEthernet1/0/3，成员接口的状态都为Up。Eth-Trunk 1的“Operate status”为**up**。

## 配置LACP模式的链路聚合示例（交换机之间直连）

### LACP模式链路聚合简介

以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路，从而实现增加链路带宽的目的。链路聚合分为手工模式和LACP模式。

LACP模式需要有链路聚合控制协议LACP的参与。当需要在两个直连设备间提供一个较大的链路带宽而设备支持LACP协议时，建议使用LACP模式。LACP模式不仅可以实现增加带宽、提高可靠性、负载分担的目的，而且可以提高Eth-Trunk的容错性、提供备份功能。

LACP模式下，部分链路是活动链路，所有活动链路均参与数据转发。如果某条活动链路故障，链路聚合组自动在非活动链路中选择一条链路作为活动链路，参与数据转发的链路数目不变。

### 配置注意事项

* 一个Eth-Trunk接口中的成员接口必须是以太网类型和速率相同的接口。
* Eth-Trunk链路两端相连的物理接口的数量、速率、双工方式、流控配置必须一致。
* 如果本端设备接口加入了Eth-Trunk，与该接口直连的对端接口也必须加入Eth-Trunk，两端才能正常通信。
* 两台设备对接时需要保证两端设备上链路聚合的模式一致。
* 本举例适用于S系列交换机所有产品的所有版本。

### 背景信息

如[图3-76](https://support.huawei.com/enterprise/zh/doc/EDOC1000069491/5d18b4c0#fig_dc_cfg_eth-trunk_003501)所示，SwitchA和SwitchB通过以太链路分别都连接VLAN10和VLAN20的网络，且SwitchA和SwitchB之间有较大的数据流量。用户希望SwitchA和SwitchB之间能够提供较大的链路带宽来使相同VLAN间互相通信。在两台Switch设备上配置LACP模式链路聚合组，提高两设备之间的带宽与可靠性，具体要求如下：

* 两条活动链路具有负载分担的能力。
* 两设备间的链路具有1条冗余备份链路，当活动链路出现故障时，备份链路替代故障链路，保持数据传输的可靠性。
* 同VLAN间可以相互通信。

**图3-76** 配置LACP模式链路聚合组网图

&#x20;

<figure><img src="https://pic.chjina.com/2023/07/24/download" alt=""><figcaption></figcaption></figure>

### 配置思路

采用如下的思路配置LACP模式链路聚合：

1. 创建Eth-Trunk，配置Eth-Trunk为LACP模式，实现链路聚合功能。
2. 将成员接口加入Eth-Trunk。
3. 配置系统优先级，确定主动端，按照主动端设备的接口选择活动接口。
4. 配置活动接口上限阈值，实现保证带宽的情况下提高网络的可靠性。
5. 配置接口优先级，确定活动链路接口，优先级高的接口将被选作活动接口。
6. 创建VLAN并将接口加入VLAN。

### 操作步骤

1. 在SwitchA上创建Eth-Trunk1并配置为LACP模式。SwitchB的配置与SwitchA类似，不再赘述

   ```
   <HUAWEI> system-view
   [HUAWEI] sysname SwitchA
   [SwitchA] interface eth-trunk 1   //创建ID为1的Eth-Trunk接口
   [SwitchA-Eth-Trunk1] mode lacp   //配置链路聚合模式为LACP模式
   [SwitchA-Eth-Trunk1] quit
   ```
2. 配置SwitchA上的成员接口加入Eth-Trunk1。SwitchB的配置与SwitchA类似，不再赘述

   ```
   [SwitchA] interface gigabitethernet 1/0/1
   [SwitchA-GigabitEthernet1/0/1] eth-trunk 1   //将GE1/0/1接口加入Eth-Trunk1中
   [SwitchA-GigabitEthernet1/0/1] quit
   [SwitchA] interface gigabitethernet 1/0/2
   [SwitchA-GigabitEthernet1/0/2] eth-trunk 1   //将GE1/0/2接口加入Eth-Trunk1中
   [SwitchA-GigabitEthernet1/0/2] quit
   [SwitchA] interface gigabitethernet 1/0/3
   [SwitchA-GigabitEthernet1/0/3] eth-trunk 1   //将GE1/0/3接口加入Eth-Trunk1中
   [SwitchA-GigabitEthernet1/0/3] quit
   ```
3. 在SwitchA上配置系统优先级为100，使其成为LACP主动端

   ```
   [SwitchA] lacp priority 100   //系统LACP优先级缺省为32768，修改SwitchA的优先级大于SwitchB的优先级，作为主动端
   ```
4. 在SwitchA上配置活动接口上限阈值为2

   ```
   [SwitchA] interface eth-trunk 1
   [SwitchA-Eth-Trunk1] max active-linknumber 2   //链路聚合组活动接口数的上限阈值缺省是8，修改活动接口数的上限阈值为2
   [SwitchA-Eth-Trunk1] quit
   ```
5. 在SwitchA上配置接口优先级确定活动链路

   ```
   [SwitchA] interface gigabitethernet 1/0/1
   [SwitchA-GigabitEthernet1/0/1] lacp priority 100   //接口LACP优先级缺省为32768，修改GE1/0/1接口的LACP优先级为100，作为活动接口
   [SwitchA-GigabitEthernet1/0/1] quit
   [SwitchA] interface gigabitethernet 1/0/2
   [SwitchA-GigabitEthernet1/0/2] lacp priority 100   //接口LACP优先级缺省为32768，修改GE1/0/2接口的LACP优先级为100，作为活动接口
   [SwitchA-GigabitEthernet1/0/2] quit
   ```
6. 创建VLAN并将接口加入VLAN。

   \# 创建VLAN10和VLAN20并分别加入接口。SwitchB的配置与SwitchA类似，不再赘述。

   ```
   [SwitchA] vlan batch 10 20
   [SwitchA] interface gigabitethernet 1/0/4
   [SwitchA-GigabitEthernet1/0/4] port link-type trunk   //设置接口链路类型为trunk，接口缺省链路类型不是trunk口
   [SwitchA-GigabitEthernet1/0/4] port trunk allow-pass vlan 10
   [SwitchA-GigabitEthernet1/0/4] quit
   [SwitchA] interface gigabitethernet 1/0/5
   [SwitchA-GigabitEthernet1/0/5] port link-type trunk   //设置接口链路类型为trunk，接口缺省链路类型不是trunk口
   [SwitchA-GigabitEthernet1/0/5] port trunk allow-pass vlan 20
   [SwitchA-GigabitEthernet1/0/5] quit
   ```

   \# 配置Eth-Trunk1接口允许VLAN10和VLAN20通过。SwitchB的配置与SwitchA类似，不再赘述。

   ```
   [SwitchA] interface eth-trunk 1
   [SwitchA-Eth-Trunk1] port link-type trunk   //设置接口链路类型为trunk，接口缺省链路类型不是trunk口
   [SwitchA-Eth-Trunk1] port trunk allow-pass vlan 10 20
   [SwitchA-Eth-Trunk1] quit
   ```
7. 验证配置结果

   \# 查看各Switch设备的Eth-Trunk信息，查看链路是否协商成功。

   ```
   [SwitchA] display eth-trunk 1
   Eth-Trunk1's state information is:
   Local:                                                                          
   LAG ID: 1                       WorkingMode: LACP                             
   Preempt Delay: Disabled         Hash arithmetic: According to SIP-XOR-DIP       
   System Priority: 100            System ID: 00e0-fca8-0417
   Least Active-linknumber: 1      Max Active-linknumber: 2                        
   Operate status: up              Number Of Up Port In Trunk: 2
   --------------------------------------------------------------------------------
   ActorPortName                    Status     PortType PortPri   PortNo PortKey   PortState  Weight
   GigabitEthernet1/0/1             Selected  1GE       100      6145    2865      11111100     1
   GigabitEthernet1/0/2             Selected  1GE       100      6146    2865      11111100     1
   GigabitEthernet1/0/3             Unselect  1GE       32768    6147    2865      11100000     1

   Partner:
   --------------------------------------------------------------------------------
   ActorPortName                     SysPri    SystemID    PortPri PortNo PortKey   PortState
   GigabitEthernet1/0/1              32768  00e0-fca6-7f85  32768     6145   2609      11111100
   GigabitEthernet1/0/2              32768  00e0-fca6-7f85  32768     6146   2609      11111100
   GigabitEthernet1/0/3              32768  00e0-fca6-7f85  32768     6147   2609      11110000
   ```

   ```
   [SwitchB] display eth-trunk 1
   Eth-Trunk1's state information is:
   Local:
   LAG ID: 1                      WorkingMode: LACP
   Preempt Delay: Disabled        Hash arithmetic: According to SIP-XOR-DIP
   System Priority: 32768         System ID: 00e0-fca6-7f85
   Least Active-linknumber: 1     Max Active-linknumber: 8
   Operate status: up             Number Of Up Port In Trunk: 2
   --------------------------------------------------------------------------------
   ActorPortName                   Status     PortType    PortPri   PortNo  PortKey   PortState  Weight
   GigabitEthernet1/0/1            Selected  1GE        32768      6145    2609      11111100     1
   GigabitEthernet1/0/2            Selected  1GE        32768      6146    2609      11111100     1
   GigabitEthernet1/0/3            Unselect  1GE        32768      6147    2609      11110000     1

   Partner:
   --------------------------------------------------------------------------------
   ActorPortName                     SysPri    SystemID     PortPri  PortNo  PortKey   PortState
   GigabitEthernet1/0/1              100    00e0-fca8-0417  100      6145     2865      11111100
   GigabitEthernet1/0/2              100    00e0-fca8-0417  100      6146     2865      11111100
   GigabitEthernet1/0/3              100    00e0-fca8-0417  32768    6147     2865      11100000
   ```

   通过以上显示信息可以看到，SwitchA的系统优先级为100，高于SwitchB的系统优先级。Eth-Trunk的成员接口中GigabitEthernet1/0/1、GigabitEthernet1/0/2成为活动接口，处于“Selected”状态，接口GigabitEthernet1/0/3处于“Unselect”状态，同时实现M条链路的负载分担和N条链路的冗余备份功能。

## 其他说明：

1. ### 设置活动端口

   ![](https://pic.chjina.com/2023/07/24/1.png)

```
[SwitchA] interface eth-trunk 1
[SwitchA-Eth-Trunk1] max active-linknumber 2   //链路聚合组活动接口数的上限阈值缺省是8，修改活动接口数的上限阈值为2
[SwitchA-Eth-Trunk1] quit

```

**只需要在SwitchA上即可，不需要两端都配置。**

引用：

{% embed url="<https://support.huawei.com/enterprise/zh/doc/EDOC1000069491/5d18b4c0>" %}

{% embed url="<https://support.huawei.com/enterprise/zh/doc/EDOC1000141427/f36b09a2>" %}


# 锐捷


# 常用命令

### 常用的查看命令

```
1)Ruijie#show running-config	//查看设备当前的配置
2)Ruijie#show version	//查看设备的软件版本信息
3)Ruijie#show log	//查看设备的日志
4)Ruijie#show ip interface brief   //查看设备的三层接口ip和掩码
5)Ruijie#show interface f0/1	//查看f0/1接口的信息，包括mac地址，流量信息等等
6)Ruijie#show interface status	//查看交换接口的信息,包括状态、vlan、双工、速度和使用介质
7)Ruijie#show vlan	//查看交换接口所属的vlan信息
8)Ruijie#show mac-address-table	//查看交换机当前MAC地址表信息
9)Ruijie#show ip interface brief	//查看接口IP地址
10)Ruijie#show vlan		//查看所有VLAN信息 
11)Ruijie#show aggregateport 1 summary    查看聚合端口AG1的信息  
12)Ruijie#show spanning-tree        //查看生成树配置信息
13)Ruijie#show spanning-tree interface fastethernet 0/1  //查看该端口的生成树状态
14)Ruijie#show port-security         //查看交换机的端口安全配置信息
15)Ruijie#show port-security address   //查看地址安全绑定配置信息
16)Ruijie#show ip access-lists listname  //查看名为listname的列表的配置信息
17)Ruijie#
18)Ruijie#
19)Ruijie#
```

### 交换机命名

```
RuiJie>enable
RuiJie# Configure terminal  
RuiJie(config)# hostname SwitchA 
SwitchA(config)# 
```

### 端口配置

```
RuiJie(config)#interface gigabitEthernet 0/3  //进入g0/3的端口配置模式
RuiJie(config)#interface range gigabitEthernet 0/1-2,0/5,0/7-9  //进入g0/1、g0/2、g0/5、g0/7、g0/8、g0/9的端口配置模式
RuiJie(config-if)#speed 10    //配置端口速率为10M
RuiJie(config-if)#duplex full     //配置端口为全双工模式
RuiJieRuiJie(config-if)#no shutdown       //开启该端口，一般默认开启


1.1）设置端口类型为access模式并放通vlan10通过
RuiJie(config-if)#sswitchport mode access	//将该端口设为access模式
RuiJie(config-if)#switchport access vlan 10  //将该端口划入VLAN10
1.2）设置端口类型为trunk模式并放通vlan11到vlan19通过
RuiJie(config-if)#switchport mode trunk     //将该端口设为trunk模式
RuiJie(config-if)#switchport trunk allowed vlan only 11-19 //trunk模式,放通vlan 11-19
1.3）设置端口类型为trunk模式,设置Untagged为vlan10
RuiJie(config-if)#switchport trunk native vlan 10 //设置Untagged为vlan 10，进入交换机的数据打上vlan10的标签。类似于华三的pvid

RuiJie(config-if)#port-group 1 		//将该端口划入聚合端口AG1中,用于聚合端口 

Ruijie(config)#int g0/24        //进入G0/24口
Ruijie(config-if-GigabitEthernet 0/24)#no switchport    //将接口更改为路由口
Ruijie(config-if-GigabitEthernet 0/24)#ip add 10.10.10.2 255.255.255.0   //配置IP 10.10.10.2/24
```

### 远程登录

```
1)全局开启SSH服务，并制定SSH的版本
Ruijie>enable 
Ruijie#configure terminal
Ruijie(config)#enable service ssh-server   //开启SSH服务，默认关闭
Ruijie(config)#ip ssh version 2               //默认1.99版本，设置为版本2

2)添加登陆的用户名和密码
Ruijie(config)#username ruijie password ruijie    //用户名ruijie密码ruijie

3）在VTY线程下调用
Ruijie(config)#lin vty 0 4
Ruijie(config-line)#password ruijie    //设置登陆密码为ruijie
Ruijie(config-line)# login   local
Ruijie(config-line)#transport input ssh     //设置传输模式是SSH，设置远程登入只允许使用SSH登入，不能使用telnet登入

4）保存配置
Ruijie(config-line)#end          //退出到特权模式
Ruijie#write                   //确认配置正确，保存配置
```

### 创建链路聚合口

```
RuiJie>enable
RuiJie# Configure terminal  
RuiJie#(config)# interface aggregateport 1   //创建聚合接口AG1
RuiJie#(config-if)# switchport mode trunk   //配置并保证AG1为 trunk 模式
RuiJie#(config)#int g0/23-24             //进入端口G0/23和G0/24
RuiJie#(config-if-range)#port-group 1       //将端口（端口组）划入聚合端口AG1中
```

### 配置路由

```
Ruijie(config)# ip  route 192.168.0.0 255.255.0.0 10.10.10.2
192.168.0.0 255.255.0.0 目的网段  
10.10.10.2 下一跳
```

### DHCP服务

```
Ruijie(config)#service dhcp         //启用DHCP服务
Ruijie(config)#int vlan 40     //VLAN创建对应的三层接口
Ruijie(config-if-VLAN 40)#ip add  192.168.40.1  255.255.255.0
Ruijie(config)#ip dhcp pool youxian        //创建DHCP地址池，名字为youxian
Ruijie(dhcp-config)#network 192.168.40.0 255.255.255.0     //为有线用户动态分配192.168.40.0/24网段的地址
Ruijie(dhcp-config)#dns-server 114.114.114.114 8.8.8.8      //为有线用户分配2个DNS地址，分别为114.114.114.114和8.8.8.8
Ruijie(dhcp-config)#default-router 192.168.40.1     //有线用户的网关地址为192.168.40.1
Ruijie(dhcp-config)#exit
```


# 戴尔

Dell 网络交换机简单配置

&#x20;


# DELL 网络交换机 基本配置说明

## 配置账号密码

Dell 默认的用户名和密码都是 admin，如果希望修改或添加新的用户

账号:**admin** 密码:**passwor\_123**

```
OS10# configure terminal
OS10(config)# username admin password passwor_123 role sysadmin
OS10(config)# end
OS10# write memory
```

## 设置带外管理

```
OS10#
OS10# configure terminal  
OS10(config)# interface mgmt 1/1/1
OS10(conf-if-ma-1/1/1)# no ip address dhcp
OS10(conf-if-ma-1/1/1)# no ipv6 address autoconfig
OS10(conf-if-ma-1/1/1)# exit
OS10(config)# ip vrf management
OS10(conf-vrf)# interface management
OS10(conf-vrf)# exit
OS10(config)# interface mgmt 1/1/1
OS10(conf-if-ma-1/1/1)# ip address 10.0.0.1/24
OS10(conf-if-ma-1/1/1)# no shutdown
OS10(conf-if-ma-1/1/1)# show configuration
!
interface mgmt1/1/1
no shutdown
no ip address dhcp
ip address 10.0.0.1/24
OS10(conf-if-ma-1/1/1)# exit
OS10#OS10(config)# management route 0.0.0.0/0 172.16.1.254 (带外网络默认路由)
OS10(config)#do write
```

## 交换机接口配置

### 设置Accsee模式

例：创建 VLAN10 并将 e1/1/1 接口以 access 模式划入 vlan10.

```
OS10# configure terminal
OS10(config)# interface vlan 10            //创建vlan10
OS10(conf-if-vl-10)# exit
OS10(config)# interface e1/1/1
OS10(conf-if-eth1/1/1)# switchport mode access     //设置为accsee模式
OS10(conf-if-eth1/1/1)# switchport access vlan 10   // 设置为vlan 10通过
OS10(conf-if-eth1/1/1)# no shutdown
OS10(conf-if-eth1/1/1)# do write
```

### Trunk 模式

例：创建 VLAN10 和 20，并将 e1/1/2 接口配置为 trunk 模式且放行 vlan10 和 20.

```
OS10# configure terminal
OS10(config)# interface vlan 10
OS10(conf-if-vl-10)# exit
OS10(config)# interface vlan 20
OS10(conf-if-vl-20)# exit
OS10(config)# interface e1/1/2
OS10(conf-if-eth1/1/2)# switchport mode trunk         //设置为trunk模式
OS10(conf-if-eth1/1/2)# switchport trunk allowed vlan 10,20  //允许vlan10 20 通过
OS10(conf-if-eth1/1/2)# show configuration
!
interface ethernet1/1/2
no shutdown
switchport mode trunk
switchport access vlan 1 (如果你希望 默认vlan 为 2，此处请 switch access vlan 2 )
switchport trunk allowed vlan 10,20
OS10(conf-if-eth1/1/2)# do write memory
```

### 修改默认 VLAN

OS10 默认 VLAN 是 1 且默认所有 trunk 口都 untagged vlan1，如果需要修改其他 VLAN 为 默认 VLAN

```
OS10# configure terminal
OS10(config)# interface vlan 4093
OS10(conf-if-vl-4093)# exit
OS10(config)# default vlan-id 4093
OS10(config)# do show vlan
Codes: * - Default VLAN, M - Management VLAN, R - Remote Port Mirroring VLANs
Q: A - Access (Untagged), T - Tagged
NUM Status Description Q Ports
1 Inactive
* 4093 Active A Eth1/1/1-1/1/32
OS10(config)#do write
```

## 设置链路聚合

### 静态链路聚合

本例：对 e1/1/49 和 50 接口静态聚合为 PO1，并且配置为 trunk 模式和放行 vlan10,20

```
OS10# configure terminal
OS10(config)# interface port-channel 1              //创建聚合口1
OS10(conf-if-po-1)# switchport mode trunk             //设置为trunk模式
OS10(conf-if-po-1)# switchport trunk allowed vlan 10,20   //放行vlan 10,20
OS10(conf-if-po-1)# no shutdown
OS10(conf-if-po-1)# exit
OS10(config)# interface range e1/1/49-1/1/50           //进入1/1/49-1/1/50接口
OS10(conf-range-eth1/1/49-1/1/50)# channel-group 1      // 加入聚合口1
OS10(conf-range-eth1/1/49-1/1/50)# no shutdown           
OS10(conf-range-eth1/1/49-1/1/50)# end
OS10#write
查看：
OS10# show interface port-channel 1 summary
```

### 动态 LACP 聚合

```
OS10# configure terminal
OS10(config)# interface port-channel 1
OS10(conf-if-po-1)# switchport mode trunk
OS10(conf-if-po-1)# switchport trunk allowed vlan 10,20
OS10(conf-if-po-1)# no shutdown
OS10(conf-if-po-1)# exit
OS10(config)# interface range e1/1/49-1/1/50
OS10(conf-range-eth1/1/49-1/1/50)# channel-group 1 mode active   //设置为lacp模式
OS10(conf-range-eth1/1/49-1/1/50)# no shutdown
OS10(conf-range-eth1/1/49-1/1/50)# end
OOS100#write
查看：
OOS100# show interface port-channel 1 summary
```

## 本地端口镜像

本例中，将 e1/1/1 口的进和出两个方向的流量镜像到 e1/1/2 口进行抓包分析。

```
OS10(config)# interface e1/1/2
OS10(conf-if-eth1/1/2)# no switchport
OS10(conf-if-eth1/1/2)#exit
OS10(config)# monitor session 1             //创建本地镜像组
OS10(conf-mon-local-1)# source interface ethernet 1/1/1 both    //设置源端口（被监控的）
OS10(conf-mon-local-1)# destination interface e1/1/2            //设置目的端口（监控的）
OS10(conf-mon-local-1)# no shut
```

## DHCP Server 配置

本例中，网段为192.168.10.0/24，网关为192.168.10.1，dns为8.8.8.8和9.9.9.9，

```

OS10# configure terminal
OS10(config)# ip dhcp server
OS10(config-dhcp)# pool 192_168_10
OS10(config-dhcp-192_168_10)# lease 0 6 0 （租期为 6 小时）
OS10(config-dhcp-192_168_10)# network 192.168.10.0/24 （此处的/24 前面是没有空格的）
OS10(config-dhcp-192_168_10)# default-router 192.168.10.1 （网关地址）
OS10(config-dhcp-192_168_10)# dns-server 8.8.8.8
OS10(config-dhcp-192_168_10)# dns-server 9.9.9.9
OS10(config-dhcp-192_168_10)# domain-name dhcp.os10.dell （名称，可选）
OS10(config-dhcp-192_168_10)# exit
OS10(config-dhcp)# no disable
OS10(config-dhcp)# do write
查看地址分配表:
OS10#show ip dhcp binding
```

## 一般命令

#### 保存

```
OS10# write //保存交换机配置，请在完成必要配置之后，记得使用此命令保存，否则交换机重启后没保存的配置将丢失
```

#### 修改名称

```
OS10>en
OS10#configure
OS10(config)#hostname ABC //将交换机改名为ABC
OS10(config)#end
OS10#write
```

#### 配置边缘端口

**连接到此交换机的电脑获取DHCP非常慢，或者很慢才能够识别网络，可以考虑配置**

```
OS10#configure
OS10(config)#interface gi1/0/1 //如果对多个端口同时配置，可以使用interface range gi1/0/1-12
OS10(config-if)# spanning-tree portfast
OS10(config-if)#exit
OS10(config)#end
OS10#write
```

#### 开启巨帧流控

**连接ISCSI存储时一般建议配置巨帧和流控**

```
OS10>enable
OS10#configure
OS10(config)#system jumbo mtu 9216 -------------开巨帧
OS10(config)#flowcontrol receive on -------------开流控
OS10(config)#end
OS10#write
```

#### 删除配置（重置交换机）

```
OS10>enable
OS10#write //保存配置
OS10#delete startup-config //删除启动配置文件
Delete startup-config ? (y/n) y //y 确认删除
OS10# reload //重启交换机
Are you sure you want to reload the stack? (y/n) y //y 确认重启
```


# 博科SAN交换机基本配置

默认管理地址：

```
10.77.77.77
```

账号/密码

```
admin/password
```

串口参数(Console)

```
Bits per second: 9600
Databits: 8
Parity: none
Stop bits: 1
Flow control: none
```

## 配置WWN-Zone

### 1.所有的设备上线开机，连接交换机

### 2.查看端口识别到的wwn

### `switchshow`

```
swd77:admin> switchshow 
switchName:     swd77 
switchType:     71.2 
switchState:    Online 
switchMode:     Native 
switchRole:     Principal 
switchDomain:   1 
switchId:       fffc01 
switchWwn:      10:00:50:eb:1a:3f:0b:98 
zoning:         ON (newconfig) 
switchBeacon:   OFF
​
Index Port Address Media Speed State     Proto 
============================================== 
  0   0   010000   id    N8   Online      FC  F-Port  50:05:07:68:03:09:fb:d8 
  1   1   010100   id    N8   Online      FC  F-Port  50:05:07:68:03:09:fb:d9 
  2   2   010200   id    N8   Online      FC  F-Port  21:00:00:24:ff:0e:19:66 
  3   3   010300   id    N8   Online      FC  F-Port  21:00:00:24:ff:65:e2:49 
  4   4   010400   id    N8   Online      FC  F-Port  10:00:00:05:1e:fd:98:8c 
  5   5   010500   id    N8   Online      FC  F-Port  10:00:00:05:1e:fd:97:48 
  6   6   010600   id    N8   No_Light    FC 
  7   7   010700   id    N8   No_Light    FC 
  8   8   010800    –    N8   No_Module   FC  (No POD License) Disabled 
  9   9   010900    –    N8   No_Module   FC  (No POD License) Disabled 
 10  10   010a00    –    N8   No_Module   FC  (No POD License) Disabled 
 11  11   010b00    –    N8   No_Module   FC  (No POD License) Disabled 
 12  12   010c00    –    N8   No_Module   FC  (No POD License) Disabled 
 13  13   010d00    –    N8   No_Module   FC  (No POD License) Disabled 
 14  14   010e00    –    N8   No_Module   FC  (No POD License) Disabled 
 15  15   010f00    –    N8   No_Module   FC  (No POD License) Disabled 
 16  16   011000    –    N8   No_Module   FC  (No POD License) Disabled 
 17  17   011100    –    N8   No_Module   FC  (No POD License) Disabled 
 18  18   011200    –    N8   No_Module   FC  (No POD License) Disabled 
 19  19   011300    –    N8   No_Module   FC  (No POD License) Disabled 
 20  20   011400    –    N8   No_Module   FC  (No POD License) Disabled 
 21  21   011500    –    N8   No_Module   FC  (No POD License) Disabled 
 22  22   011600    –    N8   No_Module   FC  (No POD License) Disabled 
 23  23   011700    –    N8   No_Module   FC  (No POD License) Disabled
```

### 3.创建服务器wwn的别名

```
alicreate "esx1_HBA1","50:05:07:68:03:09:fb:d8"
alicreate "esx1_HBA2","50:05:07:68:03:09:fb:d9"
alicreate "esx2_HBA1","21:00:00:24:ff:0e:19:66"
alicreate "esx2_HBA2","21:00:00:24:ff:65:e2:49"
```

### 4.创建存储wwn的别名

```
alicreate "Unity_spa01","10:00:00:05:1e:fd:98:8c"
alicreate "Unity_spb01","10:00:00:05:1e:fd:97:48"
```

### 5.创建zone

```
zonecreate "esx1_HBA1_Unity_spa01","esx1_HBA1;Unity_spa01"
zonecreate "esx1_HBA2_Unity_spa01","esx1_HBA2;Unity_spa01"
zonecreate "esx1_HBA1_Unity_spb01","esx1_HBA1;Unity_spb01"
zonecreate "esx1_HBA2_Unity_spb01","esx1_HBA2;Unity_spb01"
zonecreate "esx2_HBA1_Unity_spa01","esx2_HBA1;Unity_spa01"
zonecreate "esx2_HBA2_Unity_spa01","esx2_HBA2;Unity_spa01"
zonecreate "esx2_HBA1_Unity_spb01","esx2_HBA1;Unity_spb01"
zonecreate "esx2_HBA2_Unity_spb01","esx2_HBA2;Unity_spb01"
```

### 6.保存zone

```
cfgcreate "cfg","esx1_HBA1_Unity_spa01"  //创建配置文件cfg，并添加"esx1_HBA1_Unity_spa01"zone
cfgadd "cfg","esx1_HBA2_Unity_spa01"     //添加"esx1_HBA2_Unity_spa01"zone到cfg配置文件
cfgadd "cfg","esx1_HBA1_Unity_spb01"
cfgadd "cfg","esx1_HBA2_Unity_spb01"
cfgadd "cfg","esx2_HBA1_Unity_spa01"
cfgadd "cfg","esx2_HBA2_Unity_spa01"
cfgadd "cfg","esx2_HBA1_Unity_spb01"
cfgadd "cfg","esx2_HBA2_Unity_spb01"
```

### 7.启用配置文件

```
cfgenable "cfg"   输入y
```

### 8.保存配置

```
cfgsave   输入y
```

## 配置端口-Zone

### 1.创建zone

zonecreate "Zone名称","端口;或者别名"

```
zonecreate "esx1_HBA1_Unity_spa01","1,0;1,4"
zonecreate "esx1_HBA2_Unity_spa01","1,1;1,4"
zonecreate "esx1_HBA1_Unity_spb01","1,0;1,5"
zonecreate "esx1_HBA2_Unity_spb01","1,1;1,5"
zonecreate "esx2_HBA1_Unity_spa01","1,2;1,4"
zonecreate "esx2_HBA2_Unity_spa01","1,3;1,4"
zonecreate "esx2_HBA1_Unity_spb01","1,2;1,5"
zonecreate "esx2_HBA2_Unity_spb01","1,3;1,5"
```

### 2.保存zone

```
cfgcreate "cfg","esx1_HBA1_Unity_spa01"  //创建配置文件cfg，并添加"esx1_HBA1_Unity_spa01"zone
cfgadd "cfg","esx1_HBA2_Unity_spa01"     //添加"esx1_HBA2_Unity_spa01"zone到cfg配置文件
cfgadd "cfg","esx1_HBA1_Unity_spb01"
cfgadd "cfg","esx1_HBA2_Unity_spb01"
cfgadd "cfg","esx2_HBA1_Unity_spa01"
cfgadd "cfg","esx2_HBA2_Unity_spa01"
cfgadd "cfg","esx2_HBA1_Unity_spb01"
cfgadd "cfg","esx2_HBA2_Unity_spb01"
```

### 3.启用配置文件

```
cfgenable "cfg"   输入y
```

### 4.保存配置

```
cfgsave   输入y
```

## 常用命令

### 1.更改管理地址

管理地址 192.168.1.1

掩码：255.255.255.0

网关：192.168.1.254

```
Brocade:admin>ipaddrset
    Ethernet IP Address [10.77.77.77]: 192.168.1.1
    Ethernet Subnetmask [0.0.0.0]: 255.255.255.0
    Fibre Channel IP Address [none]:
    Fibre Channel Subnetmask [none]:
    Gateway Address [172.17.1.1]:192.168.1.254
    Set IP address now? [y = set now, n = next reboot]: y
```

### 2.修改密码

```
Brocade:admin>passwd admin
```

### 3.查看当前管理地址

```
ipaddrshow
```

### 4.查看版本

```
version
```

### 5.查看wwn

```
switchshow
```

### 6.查看zone

```
zoneshow
```

### 7.查看配置文件

```
cfgshow
```

### 8.查看光功率

一般:光衰值，RX/TX,同机房4dm，异地机房光纤在7dm

```
sfpshow 1 -f    //查看1口的光功率
```

```
sfpshow -all | grep -E "RX|TX|Port"   //全部端口
```

### 9. 设置日期和时间

设置命令：

```
Date “mmddHHMMyy”
```

**参数描述：**

mm:： 代表月份、设置值为01到12

dd：代表日期，设置值为01到31

hh：代表时间，设置值从00到23

MM：代表分钟，设置值从00到59

yy：代表年，设置值从00到99（大于69代表1970-1999，小于70代表2000-2069）

查看时间

```
switch:admin> date
​
Fri Jan 29 17:01:48 UTC 2000
​
switch:admin> date "0227123003"
​
Thu Feb 27 12:30:00 UTC 200
​
switch:admin>
​
​
```

### 10.修改zone

#### 10.1、删除别名

```
\> alidelete “aliname”  
​
如：
​
\> alidelete “ds4700_A”
```

#### 10.2、删除zone

```
\> zonedelete “zonename”  
​
如：
​
\> zonedelete “Zone_yxdb1”
```

#### 10.3、删除config

```
> cfgdelete “cfgname”   
​
如：
​
\> cfgdelete “Cfg_gztk”
```

#### 10.4、增加成员到已存在的alias

```
> aliadd “aliname”,”member;member” //添加端口或wwn到别名
​
如：
​
\> aliadd "hr_host1","1,5"    
```

#### 10.5、增加成员到已存在的zone

```
>zoneadd “zonename”,”mumber;mumber” //添加别名到zone
​
如：
​
\> zoneadd "Zone_hr","hr_host1"   
```

#### 10.6、增加成员到已存在的config

```
\>cfgadd “cfgname”,”mumber;mumber”  // 添加zone到config
​
如：
​
\> cfgadd "Cfg_gztk","Zone_hr"   
```

#### 10.7、从config移除成员

```
\> cfgremove “cfgname”, ”mumber;mumber”  // 从config移除zone
​
如：
​
\> cfgremove "Cfg_gztk","Zone_hr"   
​
如果config里所有的zone都被移除了那么该config将被删除
```

#### 10.8、从zone移除成员

```
\> zoneremove “cfgname”, ”mumber;mumber”  // 从zone移除alias
​
如：
​
\> zoneremove "Zone_hr ","DS4700_A"  
​
如果Zone里所有的alias都被移除了那么该zone将被删除 
```

#### 10.9、从alias移除成员

```
\> aliremove “aliname”, ”mumber;mumber”  // 从alias移除端口或wwn
​
如：
​
\> aliremove "DS4700_A","1,3" 
​
如果alias里所有的端口或wwn都被移除了那么该alias将被删除  
```

### 删除交换机的配置

\> cfgdisable //删除之前先禁用配置

\> cfgclear //清空所有的配置、zone和别名

\> cfgsave //保存

### .其他维护命令

`uptime` 显示交换机工作时间

`ipaddrshow` 显示交换机IP地址信息

`licenseshow` 显示当前交换机所添加的license信息

`switchshow` 检查交换机信息及端口状态

`switchstatusshow` 显示交换机的运行状态

`firmwareshow` 显示微码版本

`fanshow` 显示风扇运行状态

`tempshow` 显示交换机当前温度信息

`psshow` 显示电源运行状态

`slotshow` 显示板卡运行状态

`hashshow` 显示CP版卡HA状态,

`errdump` 显示错误日志

`fabricshow` 显示fabric信息及级联信息

`cfgshow` 显示交换机配置信息

`porterrshow` 显示交换机端口的错误统计

`chassisshow` 显示外壳信息及序列号

`userconfig --show -a` 查看登录帐号

`domainsshow` 查看交换机的domain信息

`aliashow` 查看别名

***

**级联ping**

级联互ping:`fcping --number 10000 --length 2036 --interval 1 10:00:00:05:33:9f:06:28`

级联更改`portcfglongdistance 0`

***

**备份**

```
configuplocad
​
Protocol (scp or ftp):ftp
​
host:
​
user name:
​
filename:
​
password:
```

***

**恢复**

```
switchdisable  停用交换机
​
configdownload
​
Protocol (scp or ftp):ftp
​
Server Name or IP Address [host]:
​
User Name [user]:
​
File Name [config.txt]:config.txt
​
.........
​
Do you want to continue [y/n]:y
​
Password:
```

恢复出厂设置

```
switchdisable -----停用交换机
​
cfgdisable（按y或者yes）-----禁用区域配置
​
cfgclear（按y或者yes）-----删除所有信息
​
cfgsave（按y或者yes）-----保存配置
​
configdefault -----恢复默认配置
​
switchenable -----重新启用交换机
​
reboot（重启就可以了）
```

***

**端口错误统计信息**

**`porterrshow`**

```
观察报错，主要看enc-out，crc-err是否报错，c3是否有丢包
​
enc-out：单独报错，是光纤线的问题
​
crc-err：数据帧crc效验错误，重启服务器，拔插过线都会有报错，需清除过10分钟后再观察是否有报错
​
disc c3：是否丢包
​
statsclear 清除报错
```

<br>


# 服务器


# 浪潮

浪潮服务器配置笔记

**常用的维护模式进入方法：**

**BISO：**&#x5F00;机自检完成 ，进入 logo页面 按del进去 bios。

**U盘启动：**&#x5F00;机自检完成 ，进入logo界面 按F11 进入U盘启动。

**RAID配置：**&#x5F00;机自检 界面 按提示进入raid卡配置。


# RAID配置


# Ctrl+A  RAID配置

浪潮服务器Raid配置说明

#### 特别说明！

PM8060 RAID卡与其它Ctrl-A系列RAID卡（例如6805/5805等）在JBOD和热备盘的配置方法上不同，区别如下：

1）PM8060 RAID卡配置界面中没有Create JBOD选项，而是通过uninitialize硬盘实现JBOD。

2）PM8060 RAID卡配置界面中没有Global Hotspare选项，需要在BIOS下或通过RAID卡管理工具配置热备。

具体请参考本手册详细内容。<br>

### 一、RAID卡阵列配置

### **1.1 查看Raid状态**

服务器开机自检到浪潮logo画面后，下一步就会进入Raid卡自检过程，此时显示器上会出现Ctrl -A提示，如下图：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/03/20211023100644.jpg)

Optimal表示raid状态正常，Degraded表示有一块硬盘掉线，阵列降级，Offline表示有两块或以上硬盘掉线，阵列不可用 按下Ctrl -A组合键后，自检完成就会进入Raid卡配置界面，如下图：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/03/20211023100914.jpg)

选择Array Configuration Utility进入配置主界面

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/03/20211023101020.jpg)

选择”Manage Arrays“，此时右侧会出现当前配置的raid信息。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/03/20211023101141.png)

上下键选择要查看的raid VD，回车选择。此时红框内显示阵列状态。OPTIMAL是正常状态。Array Size后显示的是阵列大小。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/03/20211023101313.png)

### **1.2 删除Raid阵列**

首先参考”查看raid“章节，进入raid配置界面，在Manage Array上按回车

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/03/20211026230053.jpg)

按delete则弹出删除界面，选择delete后阵列将被删除。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/20211026230142.jpg)

再次查看已经没有raid信息

![](https://typore-img.oss-cn-beijing.aliyuncs.com/img/imge/2021/20211026230214.jpg)

### **1.3 大存储下Raid配置建议**

当存储比较大且安装Window2008R2时，建议先配置一个较小的虚拟盘（VD），进行操作系统的安装。之后安装结束后，再配置另一个较大的虚拟盘（VD）。

比如创建Raid5时（具体步骤请参考后续各种raid配置章节），在创建VD时进行的大小配置，此时显示的是默认大小（最大可使用空间）。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701100256.png)

在此处输入Raid阵列大小，默认为最大空间，这里可以手工修改，建议改成100G-200G即可（只要小于2TB都可以，只用来当做C盘安装系统）。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701100353.png)

之后，在安装完操作系统后，可以将后续很大的空间创建VD，操作系统会自动识别。这样就避免了安装Windows 2008时C盘所在磁盘不能超过2TB问题。

### **1.4 Raid0的配置**

首先参考”查看raid“章节，进入raid配置界面。选择Create Array进入raid配置界面。

注意：在raid开始配置时，如果硬盘不能选择，请先对硬盘做初始化操作，可参考后续硬盘初始化章节。 **特别提醒：不要初始化有数据的硬盘！！！**

1）选择硬盘，这里以四块硬盘为例，按空格键选择

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701100554.jpeg)

2）选择raid0（注意，如果您需要单盘配置raid0，则这里选择volume）

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101652.jpeg)

3）输入Array Label，比如volume1

4）输入Array Size（卷大小），默认容量为最大容量

5）选择条带大小，默认为256KB

6）选择Read Caching（读策略），默认为enabled：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101716.jpeg)

7）选择Write Caching（写策略），默认为Enable always

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101744.jpeg)

选择Enable always后，会有确认提示，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101829.jpeg)

再次确认，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101901.jpeg)

8）选择Raid创建方式，建议选择Quick init（快速初始化）

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101920.jpeg)

9）最后选择【Done】回车，出现完成提示时按任意键退出。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701101942.jpeg)

完成配置后可以在Manage Array中查看阵列状态，其中Optimal为正常，Degraded为阵列降级，代表有硬盘掉线，Offline为阵列掉线。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102000.jpeg)

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102021.jpeg)

### **1.5 Raid1的配置**

首先参考”查看raid“章节，进入raid配置界面。选择Create Array进入raid配置界面。

注意：在raid开始配置时，如果硬盘不能选择，请先对硬盘做初始化操作，可参考后续硬盘初始化章节。 **特别提醒：不要初始化有数据的硬盘！！！**

1\) 选择2块硬盘，按空格键选择

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102117.jpeg)

2\) 选择Raid级别

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102134.jpeg)

3）输入Array Label（卷标），如volume1

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102153.jpeg)

4）输入Array Size（卷大小），默认容量为最大容量

5）Array Size（条带大小）默认为N/A，不可选

6）选择Read Caching（读策略），默认为enabled：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102156.jpeg)

7）选择Write Caching（写策略），默认为Enable always

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102405.jpeg)

选择Enable always后，会有确认提示，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102204.jpeg)

再次确认，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102207.jpeg)

8\) 选择创建raid方式，建议选择Quick Init（快速初始化）

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102212.jpeg)

9）最后选择【Done】回车，出现完成提示按任意键退出，然后在Manage Array中查看raid状态是否配置正常。其中Optimal为正常，Degraded为阵列降级，代表有硬盘掉线，Offline为阵列掉线。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102217.jpeg)

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103902.jpeg)

### **1.6 Raid5的配置**

首先参考”查看raid”章节，进入raid配置界面。选择Create Array进入raid配置界面。

注意：在raid开始配置时，如果硬盘不能选择，请先对硬盘做初始化操作，可参考后续硬盘初始化章节。 **特别提醒：不要初始化有数据的硬盘！！！**

1）最少选择3块硬盘，这里以3块硬盘为例，按空格键选择

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102639.jpeg)

2）选择Raid级别：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102656.jpeg)

3）输入Array Label（卷标），如volume5

4）输入Array Size（卷大小），默认容量为最大容量

5）Array Size（条带大小）默认为N/A，不可选

6）选择Read Caching（读策略），默认为enabled

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102718.jpeg)

7）选择Write Caching（写策略），默认为Enable always

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102754.jpeg)

选择Enable always后，会有确认提示，按Y

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102425.jpeg)

再次确认，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102444.jpeg)

8\) 选择创建raid方式，建议选择Quick Init（快速初始化

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102501.jpeg)

9）最后选择【Done】回车，出现完成提示按任意键退出，然后在Manage Array中查看raid状态是否配置正常。其中Optimal为正常，Degraded为阵列降级，代表有硬盘掉线，Offline为阵列掉

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102518.jpeg)

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701102536.jpeg)

### **1.7 Raid6的配置**

首先参考”查看raid“章节，进入raid配置界面。选择Create Array进入raid配置界面。

注意：在raid开始配置时，如果硬盘不能选择，请先对硬盘做初始化操作，可参考后续硬盘初始化章节。 **特别提醒：不要初始化有数据的硬盘！！！**

1）最少选择4块硬盘，按空格键选择

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103056.jpeg)

2）选择Raid级别：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103123.jpeg)

3）输入Array Label（卷标），如volume5

4）输入Array Size（卷大小），默认容量为最大容量

5）Array Size（条带大小）默认为N/A，不可选

6）选择Read Caching（读策略），默认为enabled：

7）选择Write Caching（写策略），默认为Enable always，保持默认即可，会有确认提示，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103145.jpeg)

再次确认，按Y键

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103203.jpeg)

8）选择创建raid方式，建议选择Quick Init（快速初始化）

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103222.jpeg)

9）最后选择【Done】回车，出现完成提示按任意键退出，然后在Manage Array中查看raid状态是否配置正常。其中Optimal为正常，Degraded为阵列降级，代表有硬盘掉线，Offline为阵列掉线。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701103244.jpeg)

### **1.8 Raid10的配置**

首先参考”查看raid“章节，进入raid配置界面。选择Create Array进入raid配置界面。

注意：在raid开始配置时，如果硬盘不能选择，请先对硬盘做初始化操作，可参考后续硬盘初始化章节。 **特别提醒：不要初始化有数据的硬盘！！！**

1）最少选择4块硬盘，必须是偶数，按空格键选择。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104034.jpeg)

2）选择Raid级别：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104058.jpeg)

3）后续步骤与创建raid5和raid6类相同，不再赘述。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104114.jpeg)

最后，在Manage Array中查看raid状态是否配置正常。其中Optimal为正常，Degraded为阵列降级，代表有硬盘掉线，Offline为阵列掉线。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104133.jpeg)

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104148.jpeg)

### **1.9 JBOD的配置**

#### **1.9.1 6805 RAID卡**

注意：已经配置RAID的磁盘不能再做JBOD，如磁盘已配置RAID，请先删除（注意备份数据！）。

6805 RAID卡配置界面下有Create JBOD选项，回车进入JBOD配置界面。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104217.jpeg)

进入如下界面，上下键选中需要配置JBOD的磁盘，按Insert键进行选择（如果选错可以按Del键进行反选），选完按回车键确认即可。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104235.jpeg)

按Y键确认

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104254.jpeg)

返回RAID配置界面，选择“Manage JBOD”可以看到所有JBOD磁盘.

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104313.jpeg)

在这里按Del可以删除JBOD，也可以按Ctrl+V将JBOD转换为Volume（单盘raid0），转换后的Volume入下图：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104333.jpeg)

#### **1.9.2 PM8060 RAID卡**

注意：已经配置RAID的磁盘不能再做JBOD，如磁盘已配置RAID，请先删除（注意备份数据！）。

PM8060 RAID卡配置界面下没有Create JBOD选项，而是通过uninitialize硬盘实现JBOD。进入RAID卡配置界面，选择“Uninitialize Drivers”进入JBOD配置界面。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104409.png)

进入如下界面，上下键选中需要配置JBOD的磁盘，按Insert键进行选择（如果选错可以按Del键进行反选），选完按回车键确认即可。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104431.png)

### **1.10 热备盘（Hotspare）配置**

#### **1.10.1 6805 RAID卡**

热备盘的作用是如果阵列中有硬盘发生故障，热备盘可以立即顶替，及时将阵列恢复为正常状态。

6805 RAID卡配置界面下有Global Hotspare选项，回车进入热备盘配置界面。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104458.jpeg)

有提示信息，按任意键继续。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104516.jpeg)

左侧列表显示当前所有硬盘，可配置热备的硬盘为白色高亮显示，已配置RAID的磁盘盘则是灰色不可选。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104535.jpeg)

空格选择硬盘

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104552.jpeg)

回车后会有提示是否保存，按Y键确认。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104608.jpeg)

#### **1.10.2 PM8060 RAID卡**

热备盘的作用是如果阵列中有硬盘发生故障，热备盘可以立即顶替，及时将阵列恢复为正常状态。

PM8060 RAID卡配置界面没有”Global Hotspares”选项，可以在操作系统下使用 [**arcconf**](http://www.4008600011.com/wp-content/uploads/2018/01/arcconf.zip) 工具配置，有些机型也支持在BIOS中配置（**NF84XX/TS8xx的服务器不支持在BIOS中配置**）。

不同机型的BIOS界面可能不同，有两种界面配置方法。

**BIOS界面一（此配置方法目前对于双路平台机器可以正常使用，NF84XX/TS8xx的服务器由于BIOS不同，需要系统下使用工具配置热备。）**

进入BIOS — Advanced — CSM Configuration菜单，将Storage选项设置为UEFI，然后F10保存退出。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104630.jpeg)

重启后再次进入BIOS — Advanced — PMC maxView Storage Manager菜单：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104647.jpeg)

BIOS扫描到RAID卡后会出现如下菜单，进入Logical Device Configuration — Global Hotspare菜单：

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104704.jpeg)

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104720.jpeg)

将未配置的硬盘Enable，然后在【ADD】上回车，再Submit提交即可，提示成功后按任意键返回。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104738.jpeg)

最后，请将BIOS选项还原。进入BIOS — Advanced — CSM Configuration菜单，将Storage选项设置为Legacy，F10保存退出。

**BIOS界面二（此配置方法不适用于NF84XX/TS8xx的服务器，NF84XX/TS8xx的服务器由于BIOS不同，需要系统下使用工具配置热备。）**

重启进入BIOS中，在Boot下将Boot Type改为”UEFI Boot Type“

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104757.png)

按F10保存退出

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104818.png)

服务器重启后，在如下界面按DEL键进入Setup界面

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104822.png)

此时的Setup界面和之前的并不一样，多了”Device Management“选项，选择此选项。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104826.png)

选择”PMC maxView Storage Management”进行存储的配置

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104833.png)

回车选择”Scan For Controllers”

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104837.png)

回车选择raid卡控制器

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104841.png)

选择”Logical Device Configuration”

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104845.png)

选择”Global Hotspares”进行热备盘的配置

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104852.png)

回车确认告警

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104858.png)

选择”Add Spares”

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104902.png)

空格键选择热备盘，选择后，磁盘的状态变为”X”。移动到”ADD”项后按回车

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104906.png)

回车确认告警

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104910.png)

热备盘添加成功

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104915.png)

重启后再进入BIOS配置中，将Boot列表下的”Boot Type”改回至”Legacy Boot Type”

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701104919.png)

**操作系统下使用arcconf工具配置热备盘。**

Windows系统下：

1.先解压，然后运行里输入cmd，打开cmd命令后，cd到arcconf.exe所在目录下。

2.查看硬盘状态，确认需要配置热备的物理磁盘的channel号和device号

**arcconf.exe  getconfig 1 pd**

其中的数字1表示raid卡1.

查看返回信息中硬盘状态是ready，状态ready是没有使用的磁盘，把需要配置成热备的硬盘的 channel号和device号记录下来。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105326.jpeg)

3.配置热备： arcconf.exe  setstate 1 device *\<Channel#>   \<Device#>*  hsp

其&#x4E2D;*\<Channel#>* &#x548C;*\<Device#>*&#x4EE5;实际的channel号和device编号为准，例如硬盘的channel号是0，device号是2，实际命令为：arcconf.exe setstate 1 device *0  2*  hsp

可以通过**arcconf.exe  getconfig 1 pd 查看硬盘状态是否配置成功。**

2\. Linux系统下的命令是

**查看硬盘：./arcconf  getconfig 1 pd**

**配置热备： ./arcconf  setstate 1 device &#x20;*****\<Channel#>   \<Device#>*****&#x20; hsp**

### **1.11 控制器属性配置**

在Raid配置界面，选择”Controller Settings”进行控制器属性的配置

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105335.png)

选择”Controller Configuration”

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105339.png)

此时，即显示raid卡的属性配置界面，可以进行查看和修改

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105343.png)

常用配置项<br>

Alarm Control：阵列卡告警设置<br>

Enable：故障时正常蜂鸣<br>

Disable：故障时不蜂鸣<br>

Silence：本次不蜂鸣

## 二、常见问题的故障恢复

重要提示：服务器通过Raid技术可以有效增强数据的安全性，但是不代表做了Raid就永远不会出问题，所以数据还是要经常备份的！

一般我们最常遇到的问题就是有硬盘亮红灯了，有些时候还会有报警声。但是请不要担心，硬盘亮红灯不代表硬盘一定有故障，那么哪些情况会导致硬盘亮红灯呢？

1、人为拔插过硬盘

2、硬盘没有插到位，接触不良

3、意外停电，影响了阵列信息

4、硬盘发生逻辑上的I/O错误

5、硬盘本身故障

如果您是新机器，硬盘亮红灯大多是因为物流等原因，可能某块硬盘没有插到位，接触不良；如果已经使用了一段时间，大多是因为硬盘发生了逻辑上的I/O错误，因为做了Raid以后，需要多块硬盘协同工作，不仅要把文件打碎，还要一起计算校验值，如果在某一块硬盘上计算错误，可能会导致硬盘被踢出阵列，同时亮红灯报警。如果服务器灰尘较多，容易积蓄静电，也会增加硬盘出错的概率。

### **2.1 单盘掉线及处理步骤**

以raid5为例，如果有一块硬盘掉线，raid阵列将变为degraded，数据仍可正常读写

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105405.jpeg)

更换硬盘后会自动同步，显示rebuild进度

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105409.jpeg)

Rebuild完成后，阵列会回到Optimal状态

### **2.2 多盘掉线及处理步骤**

以raid5举例，如果阵列中有两块或以上的盘掉线，则raid状态变为Offline，此时数据不可用，此时需要找数据恢复公司进行数据的恢复。

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105414.jpeg)

### **2.3 初始化硬盘**

如果新更换的硬盘有raid信息或raid信息不正确而导致无法使用时，需要将该硬盘初始化

首先要明白初始化硬盘的意义，当想将硬盘进行raid配置时，需要进行硬盘的初始化，如果不初始化，硬盘则不能进行raid配置。

首先参考”查看raid“章节，进入raid配置界面。选择Initialize Drives

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105419.jpeg)

选择要初始化的硬盘

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105423.jpeg)

按空格键选择硬盘

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105427.jpeg)

弹出警告，需要按Y确认

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105431.jpeg)

再次确认

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105435.jpeg)

初始化成功

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105441.jpeg)

### **2.4 校验硬盘**

当需要检测硬盘时，可以通过校验硬盘来查看硬盘是否有坏道

在主界面中选择Disk Utilities查看物理硬盘列表

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105447.jpeg)

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105453.jpeg)

选择需要校验的硬盘，回车

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105457.jpeg)

第一项为低级格式化硬盘（强烈建议如非必要勿选，若误操作选中则不要停止，让其格式化完成，否则硬盘会损坏），第二项为校验硬盘，第三项为定位硬盘

选择Verify Disk Media

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105502.jpeg)

确认后进入校验界面

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105506.jpeg)

若硬盘正常则一直校验，直至100%，提示completed，若有坏道，则弹出报错提示，需要更换硬盘

![](https://typore-img.oss-cn-beijing.aliyuncs.com/Typecho/img/2022/20220701105510.jpeg)

#### 引用：

{% embed url="<http://www.4008600011.com/archives/9346>" %}


# Ctrl+H  RAID配置

服务器型号：NF5280M4

## Ctrl+H RAID卡配置步骤

**说明**

本手册适用于LSI芯片Raid卡

包括但不限于Inspur 2008/2108 Raid卡、LSI 9240/9260/9261/ 9271 等Raid卡。

不同型号的Raid卡在某些功能上的支持性不同（例如Inspur2008 Raid卡需要有授权才支持Raid5），具体因您的配置而定。

## 一、Raid配置与管理

### 1．查看raid状态

服务器开机自检到浪潮logo画面后，下一步就会进入Raid卡自检过程，此时显示器上会出现Ctrl -H提示，如下图：

&#x20;按下Ctrl -H组合键后，自检完成就会进入Raid卡配置界面，如下图。在这里可以看到Raid卡的型号和Firmware固件版本，点击【Start】按钮进入Raid卡主页。

<figure><img src="https://pic.chjina.com/2022/11/10/h1-1.png" alt=""><figcaption></figcaption></figure>

&#x20;Raid卡首页叫作WebBIOS，如下图。左侧是功能菜单，右侧可以看到所有物理磁盘，本例安装了4块500G硬盘，后面所有的配置都可以在这里完成！

<figure><img src="https://pic.chjina.com/2022/11/10/h02.png" alt=""><figcaption></figcaption></figure>

![img](https://pic.chjina.com/2022/11/10/H03.png)

点击左侧的Logical View进行raid状态的查看。此时右侧显示raid状态为“Optimal”（即正常状态），raid类型为raid5。

![img](https://pic.chjina.com/2022/11/10/H04.png)

### 2．删除单个Raid阵列

当系统中已经创建了多个阵列后，如果只想删除一个阵列，可以依照以下操作进行。

如下图所示，当前有一个阵列，选择左侧的“Virtual Drives”

![img](https://pic.chjina.com/2022/11/10/H05.png)

选择要删除的阵列，以及点选“Properties”，点击Go

![img](https://pic.chjina.com/2022/11/10/H06.png)

此处选择Operations里的“Delete”，点击Go

![img](https://pic.chjina.com/2022/11/10/H07.png)

删除阵列后，数据会丢失，此处需要确认，是否继续删除，选择“Yes”

![img](https://pic.chjina.com/2022/11/10/H08.png)

之后再检查raid配置，会发现当前raid已经删除。

### 3．删除所有Raid阵列

WebBIOS主页点击【Configuration Wizard】，打开配置向导

&#x20;选择【Clear Configuration】，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H09.png" alt=""><figcaption></figcaption></figure>

&#x20;提示清除，选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H10-2.png" alt=""><figcaption></figcaption></figure>

&#x20;阵列删除成功！所有硬盘显示为蓝色unconfigured Good状态

<figure><img src="https://pic.chjina.com/2022/11/10/H11-1.png" alt=""><figcaption></figcaption></figure>

![img](https://pic.chjina.com/2022/11/10/H12-1.png)

### 4．大存储下Raid配置建议

当存储大于2T且准备安装Window系统时，建议先配置一个较小的虚拟盘（VD），大约150G\~250G，进行操作系统的安装。之后安装结束后，再配置另一个较大的虚拟盘（VD）。

可以参考视频如下：

（Lsi raid 1DG TO 2VD视频：<http://pan.baidu.com/s/1bn1Z2IN> ）

首先按正常配置把第一个VD创建分区完成到如下截图，可见右侧只有一个VD（注意要选择back噢）

![img](https://pic.chjina.com/2022/11/10/H13-800x529.png)

选择Add To Span

![img](https://pic.chjina.com/2022/11/10/H14-800x567.png)

点击“Next”

![img](https://pic.chjina.com/2022/11/10/H15-800x537.png)

此时选择“Next”

![img](https://pic.chjina.com/2022/11/10/H16-800x569.png)

注意：update size是选择剩余容量，或者可以自行输入容量大小（注意不要大于剩余容量）

![img](https://pic.chjina.com/2022/11/10/H17-800x577.png)

大功告成。

### 5．Raid5的配置

在WebBIOS主页点击【Configuration Wizard】，打开配置向导

&#x20;选择【Add Configuration】，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H18-5.png" alt=""><figcaption></figcaption></figure>

&#x20;选择【Manual Configuration】，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H19-5.png" alt=""><figcaption></figcaption></figure>

&#x20;左侧方框内可以看到所有未使用的硬盘。我们选择全部（也可以逐个选择），然后点击下方的【Add to Array】将其加入到右侧方框内。

<figure><img src="https://pic.chjina.com/2022/11/10/H20-5.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Accept DG】，创建磁盘组

<figure><img src="https://pic.chjina.com/2022/11/10/H21-5.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H23-5.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Add to SPAN】，将刚才创建好的磁盘组加入到右侧方框内

<figure><img src="https://pic.chjina.com/2022/11/10/H23-5.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H24-5.png" alt=""><figcaption></figcaption></figure>

&#x20;阵列参数配置：第一个参数“Raid Level”选择Raid5，其余保持默认

<figure><img src="https://pic.chjina.com/2022/11/10/H25-5.png" alt=""><figcaption></figcaption></figure>

&#x20;最后一个参数“Select Size”输入阵列容量大小，最大值可参考右侧绿字提示（其中R5代表做Raid5的最大容量），完成后点击【Accept】

<figure><img src="https://pic.chjina.com/2022/11/10/H26-5.png" alt=""><figcaption></figcaption></figure>

&#x20;弹出的任何提示均选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H27-5.png" alt=""><figcaption></figcaption></figure>

&#x20;回到配置页面，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H28-5.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Accept】配置完成！

<figure><img src="https://pic.chjina.com/2022/11/10/H29-5.png" alt=""><figcaption></figcaption></figure>

&#x20;提示保存，选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H30-5.png" alt=""><figcaption></figcaption></figure>

&#x20;（依Raid卡型号不同，有些可能没有此功能，如没有请跳过此步）提示SSD缓存，选择【Cancel】

<figure><img src="https://pic.chjina.com/2022/11/10/H31-5.png" alt=""><figcaption></figcaption></figure>

&#x20;提示初始化，选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H32-5.png" alt=""><figcaption></figcaption></figure>

&#x20;正在初始化，能看到百分比进度条（速度较快，可能一闪而过）

<figure><img src="https://pic.chjina.com/2022/11/10/H33-5.png" alt=""><figcaption></figcaption></figure>

&#x20;初始化完成！点击【Home】返回首页

<figure><img src="https://pic.chjina.com/2022/11/10/H34-5.png" alt=""><figcaption></figcaption></figure>

&#x20;阵列配置完成！

<figure><img src="https://pic.chjina.com/2022/11/10/H35-5.png" alt=""><figcaption></figcaption></figure>

Raid5状态显示“Optimal”表示正常，Drives显示四块硬盘绿色Online正常

&#x20;最后点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器！

<figure><img src="https://pic.chjina.com/2022/11/10/H36-5.png" alt=""><figcaption></figcaption></figure>

### 6．Raid0的配置

Raid0的配置过程与Raid1大致相同，唯一不同是在选择Raid级别这一步选择Raid0即可。

具体步骤请参考下一节

友情提示：Raid0虽然可以大幅提高读写性能，但是有数据丢失风险，请您慎重考虑！

### 7．Raid1的配置

在WebBIOS主页点击【Configuration Wizard】，打开配置向导

&#x20;选择【Add Configuration】，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H37x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;选择【Manual Configuration】，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H38x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;左侧方框内可以看到所有未使用的硬盘。因为要做Raid1，我们选择前两块，然后点击下方的【Add to Array】将其加入到右侧方框内。

<figure><img src="https://pic.chjina.com/2022/11/10/H39x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Accept DG】，创建磁盘组

<figure><img src="https://pic.chjina.com/2022/11/10/H40x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H41x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Add to SPAN】，将刚才创建好的磁盘组加入到右侧方框内

<figure><img src="https://pic.chjina.com/2022/11/10/H42x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H43x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;阵列参数配置：第一个参数“Raid Level”选择Raid1，其余保持默认

<figure><img src="https://pic.chjina.com/2022/11/10/H44x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;最后一个参数“Select Size”输入阵列容量大小，最大值可参考右侧绿字提示（其中R0代表做Raid0最大容量，R1代表做Raid1最大容量），完成后点击【Accept】

<figure><img src="https://pic.chjina.com/2022/11/10/H45x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;弹出的任何提示均选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H46x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;回到配置页面，点击【Next】下一步

<figure><img src="https://pic.chjina.com/2022/11/10/H47x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;点击【Accept】配置完成！

<figure><img src="https://pic.chjina.com/2022/11/10/H48x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;提示保存，选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H49x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;（依Raid卡型号不同，有些可能没有此功能，如没有请跳过此步）提示SSD缓存，选择【Cancel】

<figure><img src="https://pic.chjina.com/2022/11/10/H50x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;提示初始化，选择【yes】

<figure><img src="https://pic.chjina.com/2022/11/10/H51x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;正在初始化，能看到百分比进度条（速度较快，可能一闪而过）

<figure><img src="https://pic.chjina.com/2022/11/10/H52x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;初始化完成！点击【Home】返回首页

<figure><img src="https://pic.chjina.com/2022/11/10/H53x1m.png" alt=""><figcaption></figcaption></figure>

&#x20;阵列配置完成！

<figure><img src="https://pic.chjina.com/2022/11/10/H54x1m.png" alt=""><figcaption></figcaption></figure>

Raid1状态显示“Optimal”表示正常，Drives显示两块硬盘绿色Online正常，如果还有其它未使用的硬盘，会在unconfigured Drives下面蓝色显示。

&#x20;未使用的硬盘可以继续创建阵列，也可以配置成热备盘。

<figure><img src="https://pic.chjina.com/2022/11/10/H55x1m.png" alt=""><figcaption></figcaption></figure>

最后点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器！

### 8．Raid6的配置

在WebBIOS主页点击【Configuration Wizard】，打开配置向导

![img](https://pic.chjina.com/2022/11/10/H56x6m.png)

选择【Add Configuration】，点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H57x6m.png)

选择【Manual Configuration】，点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H58x6m.png)

左侧方框内可以看到所有未使用的硬盘。我们选择全部（也可以逐个选择），然后点击下方的【Add to Array】将其加入到右侧方框内。![img](https://pic.chjina.com/2022/11/10/H59x6m.png)

点击【Accept DG】，创建磁盘组

![img](https://pic.chjina.com/2022/11/10/H60x6m.png)

点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H61x6m.png)

点击【Add to SPAN】，将刚才创建好的磁盘组加入到右侧方框内

![img](https://pic.chjina.com/2022/11/10/H62x6m.png)

点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H63x6m.png)

阵列参数配置：第一个参数“Raid Level”选择Raid6，其余保持默认

![img](https://pic.chjina.com/2022/11/10/H64x6m.png)

最后一个参数“Select Size”输入阵列容量大小，最大值可参考右侧绿字提示（其中R6代表做Raid6的最大容量），完成后点击【Accept】

![img](https://pic.chjina.com/2022/11/10/H65x6m.png)

弹出的任何提示均选择【yes】

![img](https://pic.chjina.com/2022/11/10/H66x6m.png)

回到配置页面，点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H67x6m.png)

点击【Accept】配置完成！

![img](https://pic.chjina.com/2022/11/10/H68x6m.png)

提示保存，选择【yes】

![img](https://pic.chjina.com/2022/11/10/H69x6m.png)

（依Raid卡型号不同，有些可能没有此功能，如没有请跳过此步）提示SSD缓存，选择【Cancel】

![img](https://pic.chjina.com/2022/11/10/H70x6m.png)

提示初始化，选择【yes】

![img](https://pic.chjina.com/2022/11/10/H71x6m.png)

正在初始化，能看到百分比进度条（速度较快，可能一闪而过）

![img](https://pic.chjina.com/2022/11/10/H72x6m.png)

初始化完成！点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/H73x6m.png)

阵列配置完成！

Raid6状态显示“Optimal”表示正常，Drives显示四块硬盘绿色Online正常

![img](https://pic.chjina.com/2022/11/10/H74x6m.png)

最后点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器！

### 9．Raid10的配置

在WebBIOS主页点击【Configuration Wizard】，打开配置向导

![img](https://pic.chjina.com/2022/11/10/H75xxm.png)

选择【Add Configuration】，点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H76xxm.png)

选择【Manual Configuration】，点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H77xxm.png)

左侧方框内可以看到所有未使用的硬盘。因为要做Raid10，我们先选择前两块，然后点击下方的【Add to Array】将其加入到右侧方框内。

![img](https://pic.chjina.com/2022/11/10/H78xxm.png)

点击【Accept DG】，创建第一个磁盘组：Drive Group0

![img](https://pic.chjina.com/2022/11/10/H79xxm.png)

然后再选择后两块硬盘，也点击下方的【Add to Array】将其加入到右侧方框内

![img](https://pic.chjina.com/2022/11/10/H80xxm.png)

点击【Accept DG】，创建第二个磁盘组：Drive Group1

![img](https://pic.chjina.com/2022/11/10/H81xxm.png)

点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H82xxm.png)

点击【Add to SPAN】，将刚才创建好的两个磁盘组分别加入到右侧方框内

![img](https://pic.chjina.com/2022/11/10/H83xxm.png)

将第二个磁盘组也添加过来

![img](https://pic.chjina.com/2022/11/10/H84xxm.png)

点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H85xxm.png)

阵列参数配置：第一个参数“Raid Level”选择Raid10，其余保持默认

![img](https://pic.chjina.com/2022/11/10/H86xxm.png)

最后一个参数“Select Size”输入阵列容量大小，最大值可参考右侧绿字提示（其中R10代表做Raid10的最大容量），完成后点击【Accept】

![img](https://pic.chjina.com/2022/11/10/H87xxm.png)

弹出的任何提示均选择【yes】

![img](https://pic.chjina.com/2022/11/10/H88xxm.png)

回到配置页面，点击【Next】下一步

![img](https://pic.chjina.com/2022/11/10/H89xxm.png)

点击【Accept】配置完成！

![img](https://pic.chjina.com/2022/11/10/H90xxm.png)

提示保存，选择【yes】

![img](https://pic.chjina.com/2022/11/10/H91xxm.png)

（依Raid卡型号不同，有些可能没有此功能，如没有请跳过此步）提示SSD缓存，选择【Cancel】

![img](https://pic.chjina.com/2022/11/10/H92xxm.png)

提示初始化，选择【yes】

![img](https://pic.chjina.com/2022/11/10/H93xxm.png)

正在初始化，能看到百分比进度条（速度较快，可能一闪而过）

![img](https://pic.chjina.com/2022/11/10/H94xxm.png)

初始化完成！点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/H95xxm.png)

阵列配置完成！Raid10状态显示“Optimal”表示正常，所有硬盘绿色Online正常。最后点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器

！

<figure><img src="https://pic.chjina.com/2022/11/10/H96xxm.png" alt=""><figcaption></figcaption></figure>

### 10．热备盘（Hotspare）配置

热备盘的作用是如果阵列中有硬盘发生故障，热备盘可以立即顶替，及时将阵列恢复为正常状态。热备盘的配置非常简单，做完阵列后，未使用的硬盘会在WebBIOS中显示为蓝色unconfigured状态，选中该硬盘进入属性页面。

![img](https://pic.chjina.com/2022/11/10/h001hs.png)

选择【Make Global HSP】，点击【GO】执行 （ 此处可以创建两种热备，分别是全局热备Global HSP和专用热备，建议选择全局热备即可 ）

![img](https://pic.chjina.com/2022/11/10/h002hs.png)

配置完成！点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/h003hs.png)

热备盘显示为粉色Hotspare状态

![img](https://pic.chjina.com/2022/11/10/h004hs.png)

### 11．控制器属性介绍

点击主界面左侧的“Controller Properties”选项，可以对控制器属性进行查看和更改。

如下是控制器选项的第一个页面，点击“Next”可以进入下一个页面。

![img](https://pic.chjina.com/2022/11/10/h005hs.png)

比较重要的是版本和温度等信息，点击“Next”进入下个页面

![img](https://pic.chjina.com/2022/11/10/h006hs.png)

点击“Next”进入配置界面

![img](https://pic.chjina.com/2022/11/10/h007hs.png)

这个界面中比较常用的是：

Alarm Control：可以配置raid卡的告警声音，Enable是正常告警，Disable是不告警，Silence是本次不告警

点击“Next”进入下一个配置界面

![img](https://pic.chjina.com/2022/11/10/h008hs.png)

比较常用的是：

Emergency Spare：即未配置热备盘时，如果配置了这个选项，则UG也会自动当成是备份盘

点击“Submit”，则会进行配置变更的保存。

## 二、常见问题处理

重要提示：服务器通过Raid技术可以有效增强数据的安全性，但是不代表做了Raid就永远不会出问题，所以数据还是要经常备份的！

一般我们最常遇到的问题就是有硬盘亮红灯了，有些时候还会有报警声。但是请不要担心，硬盘亮红灯不代表硬盘一定有故障，而是硬盘离线了。那么哪些情况会导致硬盘亮红灯呢？ 1、人为拔插过硬盘 2、硬盘没有插到位，接触不良 3、意外停电，影响了阵列信息 4、硬盘发生逻辑上的I/O错误 5、硬盘本身故障

如果您是新机器，硬盘亮红灯大多是因为物流等原因，可能某块硬盘没有插到位，接触不良；如果已经使用了一段时间，大多是因为硬盘发生了逻辑上的I/O错误，因为做了Raid以后，需要多块硬盘协同工作，不仅要把文件打碎，还要一起计算校验值，如果在某一块硬盘上计算错误，可能会导致硬盘被踢出阵列，同时亮红灯报警。如果服务器灰尘较多，容易积蓄静电，也会增加硬盘出错的概率。

下面列举了几个最常见的故障现象，请仔细阅读本手册，5-10分钟即可解决问题！

### 1．一块硬盘显示红色Offline（或者Failed）

进入WebBIOS主页，发现一块硬盘显示红色Offline状态，同时阵列降级变成了蓝色Degraded状态，此时数据还是可用的，选中红色硬盘进入属性页面。

![img](https://pic.chjina.com/2022/11/10/h009fm.png)

在属性列表中找到“Media Error”和“Pred Fail Count”两项（如果找不到请点击【Next】翻页），两项都是零，说明硬盘无故障，可以放心使用！

![img](https://pic.chjina.com/2022/11/10/h010fm.png)

选择【Rebuild Drive】，点击【GO】执行

![img](https://pic.chjina.com/2022/11/10/h011fm.png)

阵列开始同步，能看到百分比进度条，点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/h012fm.png)

报错硬盘现在变成了褐色Rebuild状态。如果您着急使用，请点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器，同步过程可以后台进行。我们建议等同步完成再使用，继续查看同步进度请点击左下角【PD Progress Info】

![img](https://pic.chjina.com/2022/11/10/h013fm.png)

查看同步进度

![img](https://pic.chjina.com/2022/11/10/h014fm.png)

### 2．一块硬盘显示红色PD Missing

进入WebBIOS主页，发现一块硬盘显示红色PD Missing状态，同时阵列降级变成了蓝色Degraded状态，此时数据还是可用的，点击【Physical View】进入物理视图。

![img](https://pic.chjina.com/2022/11/10/h015fm.png)

发现一块黑色硬盘显示Foreign Unconfigured Bad状态，选中该硬盘进入属性页面

![img](https://pic.chjina.com/2022/11/10/h016fm.png)

在属性列表中找到“Media Error”和“Pred Fail Count”两项（如果找不到请点击【Next】翻页），两项都是零，说明硬盘无故障，可以放心使用！

![img](https://pic.chjina.com/2022/11/10/h017fm.png)

至此，下面有两种处理办法，都可以解决此问题。（2.2.1和2.2.2任选其一）

**方法1：Clear Foreign Configuration**

选择【Make Unconf Good】，点击【GO】执行

![img](https://pic.chjina.com/2022/11/10/h018fm.png)

点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/h019fm.png)

出现一块蓝色硬盘显示Foreign Unconfigured Good状态，点击【Scan Devices】

![img](https://pic.chjina.com/2022/11/10/h020fm.png)

提示发现外来配置信息，选择【Clear】清除

![img](https://pic.chjina.com/2022/11/10/h021fm.png)

提示清除，选择【Yes】

![img](https://pic.chjina.com/2022/11/10/h022fm.png)

回到WebBIOS主页，报错硬盘现在变成了褐色Rebuild状态。如果您着急使用，请点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器，同步过程可以后台进行。我们建议等同步完成再使用，查看同步进度请点击左下角【PD Progress Info】

![img](https://pic.chjina.com/2022/11/10/h023fm.png)

查看同步进度

![img](https://pic.chjina.com/2022/11/10/h024fm.png)

**方法2：Replace Missing PD**

选择【Make Unconf Good】，点击【GO】执行

![img](https://pic.chjina.com/2022/11/10/h025fm.png)

选择【Replace Missing PD】，点击【GO】执行

![img](https://pic.chjina.com/2022/11/10/h026fm.png)

选择【Rebuild Drive】，点击【GO】执行

![img](https://pic.chjina.com/2022/11/10/h027fm.png)

阵列开始同步，能看到百分比进度条，点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/h028fm.png)

报错硬盘现在变成了褐色Rebuild状态。如果您着急使用，请点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器，同步过程可以后台进行。我们建议等同步完成再使用，继续查看同步进度请点击左下角【PD Progress Info】

![img](https://pic.chjina.com/2022/11/10/h029fm.png)

查看同步进度

![img](https://pic.chjina.com/2022/11/10/h030fm.png)

### 3．多块硬盘显示红色PD Missing

进入WebBIOS主页，发现多块硬盘显示红色PD Missing状态，阵列已经挂掉变成了红色Offline状态，此时数据已经不可用，点击【Physical View】进入物理视图。

![img](https://pic.chjina.com/2022/11/10/h031fm.png)

发现两块黑色硬盘显示Foreign Unconfigured Bad状态，选中一块硬盘进入属性页面

![img](https://pic.chjina.com/2022/11/10/h032fm.png)

在属性列表中找到“Media Error”和“Pred Fail Count”两项（如果找不到请点击【Next】翻页），两项都是零，说明硬盘无故障，可以放心使用！

![img](https://pic.chjina.com/2022/11/10/h033fm.png)

选择【Make Unconf Good】，点击【GO】执行

![img](https://pic.chjina.com/2022/11/10/h034fm.png)

点击【Home】返回首页

![img](https://pic.chjina.com/2022/11/10/h035fm.png)

已经有一块硬盘变成蓝色Foreign Unconfigured Good状态，同理操作另外一块

![img](https://pic.chjina.com/2022/11/10/h036fm.png)

两块硬盘都变成了蓝色Foreign Unconfigured Good状态，点击【Scan Devices】

![img](https://pic.chjina.com/2022/11/10/h037fm.png)

提示发现外来配置信息，选择【Preview】预览

![img](https://pic.chjina.com/2022/11/10/h038fm.png)

可以看到故障发生前的阵列状态，除了第四块硬盘，其余都是绿色Online正常状态，阵列也恢复为蓝色Degraded（降级状态，此时数据已经恢复可用），点击【Import】导入配置。

![img](https://pic.chjina.com/2022/11/10/h039fm.png)

回到WebBIOS主页，阵列不再是红色Offline损坏状态，第四块硬盘褐色Rebuild状态表示正在恢复阵列至正常状态。请点击【Exit】退出，然后【Ctrl-Alt-Delete】组合键重启服务器，顺利的话系统可以正常启动！修复过程可以后台进行。您也可以等待修复完成后在使用，查看同步进度请点击左下角【PD Progress Info】

![img](https://pic.chjina.com/2022/11/10/h040fm.png)

查看同步进度

![img](https://pic.chjina.com/2022/11/10/h041fm.png)

引用

{% embed url="<http://www.4008600011.com/archives/393#4Raid>" %}


# LSI 9271 8i Raid卡开启jbod(直通)功能

服务器型号：NF5280NF

#### 故障现象

LSI 9271-8i raid卡默认无法将硬盘作为jbod，没有jbod选项

#### 涉及范围

LSI9271-8i raid卡

#### 解决方法

需使用命令开启jbod功能，具体命令如下:MegaCli -AdpSetProp -EnableJBOD -1 -a0

1. 自检到raid卡，按【Ctrl Y】进入命令行：

![img](https://pic.chjina.com/2022/11/10/010219_1037_3.png)

1. 敲入`-AdpSetProp -EnableJBOD -1 -a0`

   ![img](https://pic.chjina.com/2022/11/10/010219_1037_4.png)
2. 显示`Set JBOD to Enable success` 就是启用成功。

####


# 启用MWAIT等

**故障现象：**

服务器加入集群或启用EVC模式时，报错：

主机的CPU硬件应支持集群当前的增强型vMotion兼容性模式，但主机现在缺少某些必要的CPU功能。请检查主机的BIOS配置，确保未禁用必要的功能（例如Intel的XD、VT、AES或PCLMULQDQ，或者AMD的NX）

**解决方案**

1、对于双路M4服务器，Intel XD默认已开启，HT、VT和AES选项位置分别如下，请确保处于Enable状态。

![img](https://pic.chjina.com/2022/11/10/VMWT-29.png)

2、vMotion功能还依赖于Mwait，然而2017年4月8号之后生产的通用双路M4机器已经默认关闭了此功能，请开启。

老版BIOS：

`Chipset -> Advance Power Management Configuration -> CPU C State Control -> Monitor/Mwait Support`

新版BIOS：

`Chipset -> Power/Performance Configuration -> Monitor/Mwait Support`

另外，打开Mwait后相当于服务器启用了休眠功能，请登录到Vmware系统下，将电源选项设置为高性能模式。

**引用：**

{% embed url="<http://www.4008600011.com/archives/419#10_VMwareEVCCPU>" %}


# 华为


# 华为2288H v5服务器开启MWAIT功能

近几天装了几台华为的2288Hv5的服务器做虚拟化，使用的VMware7.0.3 ，提示**缺少功能“MWAIT”，但此功能必须存在，无法启动虚拟机，模块“FeatureCompatLate”打开电源失败**

![img](https://pic.chjina.com/2022/08/22/1647224264922.png)

看来下是要开启MWAIT功能，

本文介绍下华为2288H v5服务器开启MWAIT功能，

## 进入BIOS

* 开机引导按`Delete`进入BIOS，默认密码`Admin@9000`

### 1.选择高级——槽位配置

![image-20220914154430302](https://pic.chjina.com/2022/09/14/20220914154524.png)

### 2.选择CPU配置

![img](https://pic.chjina.com/2022/08/22/1647224963932.png)

### 3.选择MONITOR/MWAIT

![img](https://pic.chjina.com/2022/08/22/1647224966131.png)

### 4.开启MONITOR/MWAIT指令

![img](https://pic.chjina.com/2022/08/22/1647224967628.png)

引用参考：

{% embed url="<https://blog.csdn.net/xiezuoyong/article/details/123686809>" %}

{% embed url="<http://www.hnkddz.com/article-detail/BAlplZ6b>" %}

{% embed url="<http://support.xfusion.com/support/#/zh/docOnline/EDOC1000163371?path=zh-cn_topic_0000001136230833>" %}


# 惠普


# HPE服务器安装下载驱动教程

确定配件的型号，如Raid卡，一般配置Raid界面有。

## 1.打开HPE官网

[首页 | HPE 支持部门](https://support.hpe.com/connect/s/?language=zh_CN)

```
https://support.hpe.com/connect/s/?language=zh_CN
```

![image-20240124102239094](https://pic.chjina.com/2024/01/24/image-20240124102239094.png)

## 2.在搜索框输入想找的服务器或者配件的型号，

下面以**388 gen 10**为例

![image-20240124102822851](https://pic.chjina.com/2024/01/24/image-20240124102822851.png)

## 3.确定自己的型号的产品

![image-20240124103014180](https://pic.chjina.com/2024/01/24/image-20240124103014180.png)

## 4.选择驱动程序

![image-20240124103128557](https://pic.chjina.com/2024/01/24/image-20240124103128557.png)

## 5.筛选操作系统来选择驱动程序。

![image-20240124103250620](https://pic.chjina.com/2024/01/24/image-20240124103250620.png)

## 6.下载驱动程序

![image-20240124103744904](https://pic.chjina.com/2024/01/24/image-20240124103744904.png)


# HP ilo5 更改中文

默认为英文界面；

选择左侧菜单栏：Firmware\&OS Software 再选择右侧 Update Firmware

![image-20230220153717398](https://pic.chjina.com/2023/02/20/image-20230220153717398.png)

选择 Local file 再点击选择文件

![image-20230220153803375](https://pic.chjina.com/2023/02/20/image-20230220153803375.png)

选择本段的中文语言包，下载地址：\[无为网盘 (chjina.com)]\(<https://drive.chjina.com/zh-CN/驱动/HP/ILO> 中文语言包/iLO5/)

![image-20230220153810997](https://pic.chjina.com/2023/02/20/image-20230220153810997.png)

点击Flash，上传

![image-20230220153820852](https://pic.chjina.com/2023/02/20/image-20230220153820852.png)

提示更新iLo固件需要重启ilo服务，会导致断开ilo连接。点击OK

![image-20230220153830612](https://pic.chjina.com/2023/02/20/image-20230220153830612.png)

语言包正在更新中，

![image-20230220153837611](https://pic.chjina.com/2023/02/20/image-20230220153837611.png)

语言包安装完成，请等待iLO重启

![image-20230220153845401](https://pic.chjina.com/2023/02/20/image-20230220153845401.png)

重启iLO后，需要重新登录iLO界面，可以选择中文登录

![image-20230220153851212](https://pic.chjina.com/2023/02/20/image-20230220153851212.png)

设置中文为默认语言

![image-20230220153856466](https://pic.chjina.com/2023/02/20/image-20230220153856466.png)


# 戴尔


# ESXi 通过 iDRACTools 重置 iDRAC 账号密码教程

本文适用于 Dell PowerEdge 服务器（支持 iDRAC 7/8/9 系列），通过在 ESXi 主机上安装 iDRACTools 工具包，使用 `racadm` 命令行工具重置 iDRAC 本地账号密码。该方法无需物理接触服务器，仅需获取 ESXi 主机管理权限即可操作。

## 一、 前期准备

### 1.1 必备条件

* 已获取 ESXi 主机的 `root` 账号权限（用于登录 ESXi Shell 或 SSH）；
* ESXi 主机已联网（用于下载 iDRACTools 工具包，离线环境可提前下载后上传）；
* 确认服务器为 Dell PowerEdge 系列，且搭载可正常工作的 iDRAC 控制器；
* 新密码需符合 iDRAC 密码策略：长度≥8 位，包含大写字母、小写字母、数字及特殊符号（如 `@、#、$` 等）。

### 1.2 工具下载

下载对应 ESXi 版本的 Dell EMC iDRACTools VIB 包，下载地址：<https://www.dell.com/support/drivers>

{% stepper %}
{% step %}

### 在下载中心搜索服务器型号

示例：PowerEdge R750、R640 等。
{% endstep %}

{% step %}

### 选择操作系统

选择“操作系统”为对应 ESXi 版本（如 ESXi 6.7、ESXi 7.0）。
{% endstep %}

{% step %}

### 下载 Dell EMC iDRAC Tools VIB 包

找到“Dell EMC iDRAC Tools”分类，下载后缀为 `.zip` 的 VIB 包（如 `DellEMC-iDRACTools-Web-ESX67i.VIB-10.1.0.0-4568_A00.zip`）。
{% endstep %}
{% endstepper %}

## 二、 启用 ESXi SSH 服务（可选）

若通过远程 SSH 登录 ESXi 主机，需先启用 SSH 服务；若直接在服务器本地操作 ESXi Shell，可跳过此步骤。

{% stepper %}
{% step %}

### 在 vSphere / ESXi 管理界面打开主机服务

登录 ESXi 管理界面或在 vCenter 上打开 ESXi 的 SSH 服务。
{% endstep %}

{% step %}

### 导航至服务管理

点击左侧“主机” → 右侧“管理” → “服务”。
{% endstep %}

{% step %}

### 启动 Secure Shell (SSH)

在服务列表中找到“Secure Shell (SSH)”，点击“启动”，并可设置“策略”为“自动启动”（避免重启后失效）。
{% endstep %}
{% endstepper %}

## 三、 上传并安装 iDRACTools 工具包

### 3.1 上传 VIB 包到 ESXi 主机

使用文件传输工具（如 WinSCP、FileZilla）连接 ESXi 主机（用户：root，密码：ESXi root 密码），将下载的 iDRACTools VIB 包上传至 ESXi 主机的临时目录（如 `/tmp`）或数据存储目录。

### 3.2 安装 iDRACTools

{% stepper %}
{% step %}

### 登录 ESXi Shell 或通过 SSH 远程连接

远程 SSH 连接（使用 PuTTY 等工具，输入 ESXi 主机 IP，用户名 root）或直接在服务器本地打开 ESXi Shell。
{% endstep %}

{% step %}

### 切换到 VIB 包所在目录

示例（以上传至 `/tmp` 为例）：

```bash
cd /tmp
```

{% endstep %}

{% step %}

### 执行安装命令

（需指定 VIB 包完整文件名，建议直接复制文件名避免输入错误）：

```bash
esxcli software vib install -d /tmp/DellEMC-iDRACTools-Web-ESX67i.VIB-10.1.0.0-4568_A00.zip
```

{% endstep %}

{% step %}

### 验证安装结果

若输出 `Operation finished successfully` 且 `Reboot Required: false`，说明安装成功，无需重启 ESXi 主机。
{% endstep %}

{% step %}

### 确认 racadm 工具可用

执行：

```bash
racadm help
```

若输出 `racadm` 命令帮助信息，说明工具已正常加载。
{% endstep %}
{% endstepper %}

## 四、 重置 iDRAC 账号密码

### 4.1 确认 iDRAC 用户索引

iDRAC 每个用户对应唯一索引（1\~16），默认管理员账号（通常为 root）的索引为 2。可通过以下命令查看所有用户索引及基本信息：

```bash
racadm get iDRAC.Users
```

输出结果中，`iDRAC.Users.2` 即为默认管理员账号（可通过 `UserName` 字段确认账号名称）。

### 4.2 执行密码重置命令

使用以下命令重置指定索引用户的密码（以重置索引 2 的默认管理员账号为例）：

```bash
racadm set iDRAC.Users.2.Password 新密码
```

示例（设置密码为 P\@ssw0rd）：

```bash
racadm set iDRAC.Users.2.Password P@ssw0rd
```

注意：若修改非默认用户密码，需将命令中的“2”替换为对应用户的索引（如重置索引 3 的用户密码，命令为 `racadm set iDRAC.Users.3.Password 新密码`）。

### 4.3 确认重置成功

若命令执行后输出 `Object value modified successfully`，说明密码已重置成功。

## 五、 验证密码有效性

通过 iDRAC 网页界面验证新密码是否可用：

{% stepper %}
{% step %}

### 查看 iDRAC IP 地址

可通过以下命令查看 iDRAC 的 IP：

```bash
racadm get iDRAC.NIC.IPv4Address
```

{% endstep %}

{% step %}

### 登录 iDRAC 网页

在浏览器中输入 iDRAC 控制器的 IP 地址，进入 iDRAC 登录页面，输入重置后的账号（如 root）和新密码。
{% endstep %}

{% step %}

### 排查登录失败

若能成功登录，说明密码重置生效；若登录失败，可重新执行 4.2 步骤检查命令是否正确，或确认用户索引是否匹配。
{% endstep %}
{% endstepper %}

## 六、 后续操作（可选）

### 6.1 配置 iDRAC 网络地址（可选）

若需设置或修改 iDRAC 的网络地址（静态 IP/动态 IP），可通过以下 `racadm` 命令操作，无需进入 iDRAC 网页界面：

1. 查看当前 iDRAC 网络配置（确认现有 IP、DHCP 状态等）：

```bash
racadm get iDRAC.NIC
```

2. 启用 DHCP（自动获取 IP，适合动态网络环境）：

```bash
racadm set iDRAC.NIC.DHCPEnable 1
```

3. 禁用 DHCP，设置静态 IP（适合固定管理地址场景，需替换为实际网络参数）：

```bash
# 禁用 DHCP
racadm set iDRAC.NIC.DHCPEnable 0

# 设置静态 IP 地址
racadm set iDRAC.NIC.IPv4Address 192.168.1.200

# 设置子网掩码
racadm set iDRAC.NIC.IPv4Netmask 255.255.255.0

# 设置网关地址
racadm set iDRAC.NIC.IPv4Gateway 192.168.1.1

# （可选）设置首选 DNS 服务器
racadm set iDRAC.NIC.DNS1 8.8.8.8

# （可选）设置备用 DNS 服务器
racadm set iDRAC.NIC.DNS2 8.8.4.4
```

注意：修改 iDRAC 网络配置后，需执行 `racadm racreset` 重启 iDRAC 才能生效，重启期间 iDRAC 暂时无法访问，约 1\~2 分钟后恢复。

### 6.2 重启 iDRAC（若需）

部分情况下，修改密码后需重启 iDRAC 才能完全生效，重启命令（不影响 ESXi 主机运行）：

```bash
racadm racreset
```

重启过程约 1\~2 分钟，期间无法访问 iDRAC，重启完成后即可正常使用。

### 6.3 清理临时文件

若 VIB 包上传至 `/tmp` 目录，可删除安装包节省空间：

```bash
rm -rf /tmp/DellEMC-iDRACTools-Web-ESX67i.VIB-10.1.0.0-4568_A00.zip
```

## 七、 常见问题排查

<details>

<summary>racadm: command not found</summary>

原因是 iDRACTools 未安装成功或未加载。解决方案：重新执行安装命令，检查 VIB 包文件名是否正确，或重启 ESXi 主机后再次尝试。

</details>

<details>

<summary>Object value modified successfully 但登录失败</summary>

原因可能是用户索引错误或密码不符合策略。解决方案：通过 `racadm get iDRAC.Users` 确认正确索引，重新设置符合要求的强密码。

</details>

<details>

<summary>安装 VIB 包提示依赖错误</summary>

原因是 VIB 包版本与 ESXi 版本不匹配。解决方案：重新下载对应 ESXi 版本的 iDRACTools 包。

</details>


# ESXi 环境下 iDRAC racadm 命令清单及权限配置

该清单基于 Dell EMC iDRAC Tools VIB 安装完成后的操作，适用于 ESXi 主机本地 Shell/SSH 环境，可快速管理 iDRAC 配置。

## 一、 用户管理命令

### 查看用户列表及详情

```bash
# 列出所有 iDRAC 用户的基本信息
racadm get iDRAC.Users

# 查看指定用户（索引为2）的完整配置（用户名、权限、状态等）
racadm get iDRAC.Users.2
```

### 修改用户密码

```bash
# 设置用户2的密码（替换为实际密码）
racadm set iDRAC.Users.2.Password "YourStrongPassword@123"
```

### 启用/禁用用户

```bash
# 启用用户2
racadm set iDRAC.Users.2.Enabled 1

# 禁用用户2
racadm set iDRAC.Users.2.Enabled 0
```

### 设置用户权限

iDRAC 用户权限用“权限位数值”表示，常见权限组合：

* `0`：无权限
* `4`：只读权限
* `15`：管理员权限（完整控制）

```bash
# 设置用户2为管理员权限
racadm set iDRAC.Users.2.Privilege 15
```

### 创建新用户（适用于 iDRAC 7/8/9）

{% stepper %}
{% step %}

### 启用用户槽位

```bash
# 启用用户槽位3
racadm set iDRAC.Users.3.Enabled 1
```

{% endstep %}

{% step %}

### 设置用户名

```bash
# 设置用户名
racadm set iDRAC.Users.3.UserName "new_admin"
```

{% endstep %}

{% step %}

### 设置密码

```bash
# 设置密码
racadm set iDRAC.Users.3.Password "NewPass@456"
```

{% endstep %}

{% step %}

### 设置管理员权限

```bash
# 设置管理员权限
racadm set iDRAC.Users.3.Privilege 15
```

{% endstep %}
{% endstepper %}

***

## 二、 网络配置命令

### 查看 iDRAC 网络信息

```bash
# 查看完整网络配置（IP地址、子网掩码、网关、DHCP状态等）
racadm get iDRAC.NIC

# 仅查看 IP 地址相关信息
racadm get iDRAC.NIC.IPv4Address
```

### 设置静态 IP/动态 IP

```bash
# 启用 DHCP（自动获取 IP）
racadm set iDRAC.NIC.DHCPEnable 1

# 禁用 DHCP，设置静态 IP
racadm set iDRAC.NIC.DHCPEnable 0
racadm set iDRAC.NIC.IPv4Address 192.168.1.100
racadm set iDRAC.NIC.IPv4Netmask 255.255.255.0
racadm set iDRAC.NIC.IPv4Gateway 192.168.1.1
```

### 查看/设置 DNS 配置

```bash
# 查看 DNS 服务器地址
racadm get iDRAC.NIC.DNS1

# 设置首选 DNS 服务器
racadm set iDRAC.NIC.DNS1 8.8.8.8

# 设置备用 DNS 服务器
racadm set iDRAC.NIC.DNS2 8.8.4.4
```

***

## 三、 系统状态与日志命令

### 查看服务器硬件健康状态

```bash
# 查看整体硬件健康摘要
racadm get system.health

# 查看指定组件（如 CPU、内存、磁盘）健康状态
racadm get system.health.cpu
racadm get system.health.storage
```

### 查看/导出 iDRAC 日志

```bash
# 查看最近的 iDRAC 系统事件日志（SEL）
racadm sel view

# 导出 SEL 日志到本地文件（ESXi 主机存储路径）
racadm sel export -f /tmp/idrac_sel.log
```

### 清除 iDRAC 日志

```bash
# 清除系统事件日志（SEL）
racadm sel clear

# 清除 iDRAC 审计日志
racadm clearlog audit
```

***

## 四、 服务器电源控制命令

{% hint style="warning" %}
电源控制会直接影响服务器运行，生产环境请谨慎操作！
{% endhint %}

```bash
# 查看服务器电源状态（On/Off）
racadm get system.powerstate

# 软关机（正常关闭操作系统，类似手动关机）
racadm serveraction powerdown

# 强制关机（直接切断电源，类似拔电源）
racadm serveraction poweroff

# 开机
racadm serveraction powerup

# 重启服务器（先关机再开机）
racadm serveraction powercycle

# 重置服务器（强制重启，不经过正常关机流程）
racadm serveraction hardreset
```

***

## 五、 iDRAC 自身配置命令

### 查看 iDRAC 版本信息

```bash
# 查看 iDRAC 固件版本、型号等信息
racadm get idrac.info
```

### 重置 iDRAC 配置

```bash
# 重置 iDRAC 到出厂默认设置（保留网络配置）
racadm racresetcfg

# 强制重启 iDRAC服务（不影响服务器运行）
racadm racreset
```

### 查看/启用 iDRAC 服务

```bash
# 查看 SSH/HTTP/HTTPS 服务状态
racadm get iDRAC.SSH.Enable
racadm get iDRAC.HTTPS.Enable

# 启用 iDRAC SSH 访问
racadm set iDRAC.SSH.Enable 1

# 启用 iDRAC HTTPS 访问
racadm set iDRAC.HTTPS.Enable 1
```

***

## 六、 命令使用注意事项

{% stepper %}
{% step %}

### 以 root 用户执行

所有命令需在 ESXi Shell 中以 root 用户执行。
{% endstep %}

{% step %}

### 修改后重启 iDRAC

修改配置后，部分设置（如网络、权限）需重启 iDRAC 生效（执行 `racadm racreset`）。
{% endstep %}

{% step %}

### 密码策略

密码设置需符合 iDRAC 密码策略（默认要求大小写字母 + 数字 + 特殊符号，长度≥8位）。
{% endstep %}
{% endstepper %}


# 虚拟化


# Vmware


# VMware 系列 密钥

本文所公布的密钥均为互联网所得，本文章仅作整理测试、展示使用，本站不负任何责任。如有使用请从官方渠道购买正版密钥，本文如有侵犯的您的权益请联系站长删除。

## VMware 6.X 系列

| 名称                          | 密钥                            |
| --------------------------- | ----------------------------- |
| vSphere 6.X Enterprise Plus | 0A65P-00HD0-3Z5M1-M097M-22P7H |
| vCenter 6.X                 | NA24U-4WK1P-M85Z0-TAA7P-CL808 |
| VSAN 6.X                    | NF4HH-F1K1Q-488R0-3L954-AF828 |
| NSX 6.X                     | H00V6-DW1D4-583D9-091K6-2092L |

## VMware 7.X 系列

| 名称                                                   | 密钥                                                                                                     |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| vSphere ESXi 7.0 Enterprise Plus                     | <p>JJ2WR-25L9P-H71A8-6J20P-C0K3F<br>HN2X0-0DH5M-M78Q1-780HH-CN214<br>JH09A-2YL84-M7EC8-FL0K2-3N2J2</p> |
| vCenter 7.0 Standard                                 | <p>104HH-D4343-07879-MV08K-2D2H2<br>410NA-DW28H-H74K1-ZK882-948L4<br>406DK-FWHEH-075K8-XAC06-0JH08</p> |
| VSAN 7.0 Enterprise Plus                             | <p>HN0D8-AAJ1Q-07D00-6U924-CX224<br>50008-221DH-M7E99-A9CKM-A1030<br>HN0NH-62051-H75E9-P38RM-0H870</p> |
| vSphere 7 Enterprise Plus with Add-on for Kubernetes | <p>J1608-4GJEQ-071L8-9VA0H-2MUK6<br>MM4MR-2G005-H7039-JVCAP-2RAL8<br>M10DH-8YL47-474L1-DV3U0-8H054</p> |
| VMware Horizon 7 Enterprise 100 CCU(s)               | 9H0AK-4Y192-H8JAR-0H7R0-1RZJM                                                                          |
| VMware vCloud Director 9.x                           | <p>JV6X0-2FJ5K-098E9-A91Z0-83RLD<br>0Z45A-AR38H-499K9-R9AE2-3ZAL2<br>1F68H-8V2D0-H9DU9-R3352-9YHH4</p> |
| VMware vCloud Director 10.x                          | <p>HA0DR-6JL50-4A0J0-KH2XH-03UK2<br>JA0J0-6CL9H-HA4M1-TA3X4-9AUH0<br>4C4D2-FYJ5J-MA440-G8AZP-9ZAQ4</p> |
| VMware vRealize Suite 2019 Enterprise                | <p>JV2TK-F8J5N-MA1N1-UKCZP-2PH52<br>NZ0WK-A2H1Q-0A0L1-RACGP-0GK38<br>4F4D2-070DK-4AD49-YJ154-CU868</p> |
| VMware vRealize Network Insight                      | HH4RM-FGL9J-08R61-0JA0P-2TUNL                                                                          |

## VMware 8.X 系列

| 名称                               | 密钥                                                                                                     |
| -------------------------------- | ------------------------------------------------------------------------------------------------------ |
| vSphere ESXi 8.0 Enterprise Plus | <p>HG00K-03H8K-48929-8K1NP-3LUJ4<br>4V492-44210-48830-931GK-2PRJ4</p>                                  |
| vSphere ESXi 8.0 Enterprise      | 4F40H-4ML1K-M89U0-0C2N4-1AKL4                                                                          |
| vCenter 8.0                      | <p>0Z20K-07JEH-08030-908EP-1CUK4<br>0F41K-0MJ4H-M88U1-0C3N0-0A214<br>4F282-0MLD2-M8869-T89G0-CF240</p> |
| VSAN 8.0                         | NF212-08H0K-488X8-WV9X6-1F024                                                                          |
| NSX-T Enterprise Plus            | 5V00K-0C012-M88A9-M02N6-9P244                                                                          |
| NSX Data Center Enterprise Plus  | 0V282-0JHD0-H89M9-892GM-CUAN                                                                           |


# vCenter


# VCSA6.7无DNS安装

官网文档主要安装注意事项：

## 第一阶段：

1. FQDN：VCSA的IP地址
2. IP地址：VCSA的IP地址
3. 子网掩码：VCSA的IP的掩码
4. 网关：VCSA的IP网关
5. DNS：VCSA的IP地址

**FQDN IP地址 DNS** 都是 VCSA的同一个地址

**第一阶段部署完，千万不要点击继续，用浏览器打开5480端口进行部署。**

## 第二阶段

1. 浏览器打开VCSA的5480端口，系统名称`photon-machine`改为 VCSA的地址，打开下面的SSH开关。
2. 点击下一步，这个时候会报错，提示无法保存主机名。
3. 用Xshell 或其他ssh工具，连接VCSA,修改**dnsmasq.conf**的配置文件，让VCSA自己做DNS服务器。

### 修改VCSA的配置文件

进入配置模式：

```
Command> shell
Shell access is granted to root
```

1.备份文件

```
cp /etc/dnsmasq.conf /etc/dnsmasq-bak.conf
```

2.修改文件

```
vi /etc/dnsmasq.conf 
```

按i进入编辑模式

```
将no-hosts改为addn-hosts=/etc/dns_add_hosts
将listen-address=127.0.0.1改为listen-address=192.169.1.22
```

192.168.1.22 为VCSA的地址

按Esc键退出编辑，然后输&#x5165;**`:wq`**&#x4FDD;存文件

3.添加解析记录

```
vi /etc/dns_add_hosts 
```

按i进入编辑模式，输入

```
192.169.1.22 192.169.1.22
192.169.1.22 vcenter   //如果纯IP访问的可以不加
```

按Esc键退出编辑，然后输&#x5165;**`:wq`**&#x4FDD;存文件

4.重启dnsmasq服务

```
systemctl restart dnsmasq
```

5.测试正反向解析

```
nslookup vcenter  
nslookup 192.169.1.22
```

有解析，返回网页的5480点击下一步，愉快的安装吧。

参考链接：

{% embed url="<https://www.cnblogs.com/itfat/p/15234566.html>" %}

{% embed url="<https://docs.vmware.com/cn/VMware-vSphere/index.html>" %}
VMware 官方文档
{% endembed %}


# VCSA7.0.2无DNS安装

7.0.2既 7.0U2

### 第一阶段

* FQDN，IP地址，DNS服务器填写同一个IP地址
* 待第一阶段提示部署成功后，在vsphere web client里，按F2进入VCSA的配置界面，选择Troubleshooting Mode Options，回车进入，选择Enable SSH，然后回车。确保SSH状态开启。
* ssh登录VCSA的管理地址，输入shell，

  ```
    Command> shell
    Shell access is granted to root
  ```
* 编辑/etc/hosts文件，

  ```
  vi /etc/hosts
  ```
* 添加一行如下内容：

  ```
  192.169.1.22 localhost  
  ```

  格式说明：VCSA管理地址 主机名

VCSA7.0默认的主机名是localhost，VCSA6.7默认的主机名是photon-machine。

### 第二阶段

* **如果你进入5480安装，并且更改了默认的主机名localhost，则/etc/hosts文件中的主机名和修改后的主机名一致**

参考链接：

{% embed url="<https://docs.vmware.com/cn/VMware-vSphere/index.html>" %}
VMware 官网文档
{% endembed %}


# vCenter扩容硬盘

最近给客户巡检设备，发现Vmware虚拟化有报警。

### 问题

提示是Log 硬盘分区告警。如下图

![image-20230821134945757](https://pic.chjina.com/2023/08/21/image-20230821134945757.png)

## 解决办法

### 1.查看硬盘情况

登录vcsa的5480端口查看硬盘情况，

<https://192.168.1.1:5480>

账号：**root**

密码：**是当时安装vcsa时设置的密码**

如果登录提示密码过期，使用控制台登录vcsa，然后重置密码即可。

![image-20230821141741199](https://pic.chjina.com/2023/08/21/image-20230821141741199.png)

也可以使用ssh 登录系统查看

![image-20230821142121777](https://pic.chjina.com/2023/08/21/image-20230821142121777.png)

### 2.增加硬盘容量

打开vcsa虚拟机，编辑设置，找到硬盘5，编辑硬盘容量，增加到100G（如果无法编辑查看是否有创建的虚拟机快照，有快照删除即可）

![image-20230821142916424](https://pic.chjina.com/2023/08/21/image-20230821142916424.png)

### 3.扩容硬盘容量

ssh登录vcsa，输入一下命令进行扩容硬盘

```
shell
vpxd_servicecfg storage lvm autogrow
```

```
Command> 
Command> shell
Shell access is granted to root
root@192 [ ~ ]# vpxd_servicecfg storage lvm autogrow
VC_CFG_RESULT=0
```

![image-20230821142205826](https://pic.chjina.com/2023/08/21/image-20230821142205826.png)

### 4.查看扩容后的容量

![image-20230821142241060](https://pic.chjina.com/2023/08/21/image-20230821142241060.png)

### 5.重启服务

```
service-control --start --all
```

### 6.重新登录vcsa的5480端口查看状态，

已经扩容成功了，健康状态也显示正常了

### **vCenter Server Appliance 6.7/7.0 的 VMDK的大小/挂载点/目的列表**

| **磁盘** (VMDK) | **默认大小** （微型，具有默认存储大小） | **挂载点**                             | **目的**                                                                        |
| ------------- | ---------------------- | ----------------------------------- | ----------------------------------------------------------------------------- |
| VMDK1         | 12 GB                  | /(10 GB) /boot (132 MB) SWAP (1 GB) | 存储内核映像和引导加载程序配置的目录。                                                           |
| VMDK2         | 1.8 GB                 | /tmp                                | 用于存储 vCenter Server 中的服务生成或使用的临时文件的目录                                         |
| VMDK3         | 25 GB                  | SWAP                                | 系统内存不足时用于交换到磁盘的目录                                                             |
| VMDK4         | 25 GB                  | /storage/core                       | 用于存储 vCenter Server 中 VPXD 进程的核心转储文件的目录                                       |
| VMDK5         | 10 GB                  | /storage/log                        | vCenter Server 和 Platform Services Controller 存储环境的所有日志的目录                    |
| VMDK6         | 10 GB                  | /storage/db                         | VMware Postgres 数据库存储位置                                                       |
| VMDK7         | 5 GB                   | /storage/dblog                      | VMware Postgres 数据库日志记录位置                                                     |
| VMDK8         | 10 GB                  | /storage/seat                       | VMware Postgres 的统计信息、事件、警报和任务 (SEAT) 目录                                      |
| VMDK9         | 1 GB                   | /storage/netdump                    | VMware Netdump Collector 存储库，用于存储 ESXi 转储                                     |
| VMDK10        | 10 GB                  | /storage/autodeploy                 | VMware Auto Deploy 存储库，存储用于 ESXi 主机无状态引导的 thinpackage                         |
| VMDK11        | 10 GB                  | /storage/imagebuilder               | VMware Image Builder 存储库，用于存储 vSphere 映像配置文件、软件库和 VIB 软件包，例如驱动程序 VIB 和更新 VIB。 |
| VMDK12        | 100 GB                 | /storage/updatemgr                  | VMware Update Manager 存储库，用于存储虚拟机和 ESXi 主机的修补程序和更新                            |
| VMDK13        | 50 GB                  | /storage/archive                    | VMware Postgres 数据库的预写日志记录 (WAL) 位置                                           |

引用：

<https://www.dinghui.org/increasing-the-disk-space-for-the-vcenter-server-appliance.html>


# Vcenter 由于一个或多个 vCenter Server 系统的凭据无效，登录失败

## 1. 报错信息

报错内容如下: 由于一个或多个 vCenter Server 系统的凭据无效，登录失败: <https://192.168.101.221:443/sdk>

![在这里插入图片描述](https://pic.chjina.com/2024/07/03/c987e1d9f6676a11ade3c9cebc47c6db.png)

## 2. 原因

前一天证书快要过期了，重新把证书续订了一遍，但是续订后没有重启服务

## 3. 排除

shell登录后重启vc的服务，

```bash
service-control --stop --all
service-control --start --all
```

或者**直接重启vc**

重新登录恢复正常


# VMware vCenter Server Appliance重置root密码

近期不少用户计划给vCenter升级补丁，但是登录<https://vcsa\\_fqdn:5480；输入root账户和密码之后报错：>

[![img](https://pic.chjina.com/2024/09/23/378515e94697b559bf27959b2d9eeb86.png)](https://www.dinghui.org/wp-content/uploads/2021/04/image-37.png)

root 密码过期时会发生此问题。设备 root 帐户的密码有效期定义为 90 天。如果在有效期内未更改密码，root 用户将无法登录设备管理控制台。（文末也会介绍后续如何规避该问题）

解决办法：

## 修改引导

1、重启VMware vCenter Server Appliance虚拟机，在GNU Grub 界面按 “==e==” , 如下图输入==rw init=/bin/bash==

![img](https://pic.chjina.com/2024/09/23/27e78a4b7557d637d0a2ac7f88cf3408.png)

2、按F10，启动，使用passwd 命令修改root密码

![img](https://www.dinghui.org/wp-content/uploads/2021/04/image-39.png)

3、umount 系统之后，重启。就可以用重置后的密码登陆了。

4、为了规避90天之后又出现同样的无法登录问题，登录<https://vcsa\\_fqdn:5480；系统管理，密码过期设置，编辑，密码到期修改为否。>

\[![img](https://pic.chjina.com/2024/09/23/5435a8dfe31057789aa0b00692bfb2cd.png)

以上是重置密码的方法。

**注意：**

如果你的版本高于vCenter 7.0，而且root密码仅仅忘了配置密码不过期，90天后到期导致无法访问，报错如下：

![img](https://pic.chjina.com/2024/09/23/7b6375f68391af5dd60f09b2a8cfcc82.png)

可以使用如下方法（不用重启vCenter）：

## web修改

1、使用<administrator@vsphere.local>去登录<https://vcsa\\_fqdn:5480；>

![img](https://pic.chjina.com/2024/09/23/5a70e054f017e216e8f4abccf6427056.png)2、操作，更改root密码，输入原始密码，并输入新密码。

\[![img](https://pic.chjina.com/2024/09/23/6454fa5dfda13e4833beafe15c44c289.png)

更改成功后，再次使用修改后的root密码登录进去将密码到期设置为否。

3、如果web登录修改还不行各种报错的话，用<administrator@vsphere.local>登录ssh之后，输入shell切换模式，之后使用

sudo passwd root

\[![img](https://pic.chjina.com/2024/09/23/56671796d21f3f5edff387ec3188b840.png)

如果这个还是行不通，拉到最开头的方法，一定可行！

## 命令修改

直接<administrator@vsphere.local>登陆shell，sudo passwd root就行了！哈哈。实测可以


# ESXi


# 使用命令升级ESXI系统(补丁)

### 1 下载

　在 VMWare 官网下载 ESXi 的软件包。注意，升级时，应该下载 \*\*Offline Bundle 格式（也就是 zip 格式）\*\*的软件包。

### 2 上传文件

点击存储 => datastore1 => 数据存储浏览器 =>上载

<figure><img src="https://pic.chjina.com/2024/03/18/85996713073b5a3ea569ef4b56c0e650.png" alt=""><figcaption></figcaption></figure>

### 3 开启SSH

点击管理 => 服务 => TSM-SSH =>启动

<figure><img src="https://pic.chjina.com/2024/03/18/438e6d345c1aed90c440385ee716f31e.png" alt=""><figcaption></figcaption></figure>

### 4 SSH登录ESXI

账号root

密码：安装时设置的密码

### 5 查看当前版本

当前版本是 6.7U3

```
[root@localhost:~] vmware -vl
VMware ESXi 6.7.0 build-19195723
VMware ESXi 6.7.0 Update 3
```

查看上传的文件

```
[root@localhost:~] cd /vmfs/volumes/datastore1
[root@localhost:/vmfs/volumes/65f7a9a9-c736b201-4867-000c2929362c] ls
VMware-ESXi-7.0.3-22348816-HPE-703.0.0.11.5.0.6-Oct2023-depot.zip
```

### 6 查看配置文件

**VMware-ESXi-7.0.3-22348816-HPE-703.0.0.11.5.0.6-Oct2023-depot.zip** 是下载的升级文件名称

```
esxcli software sources profile list -d /vmfs/volumes/datastore1/VMware-ESXi-7.0.3-22348816-HPE-703.0.0.11.5.0.6-Oct2023-depot.zip
```

HPE定制的升级包

```
[root@localhost:~] esxcli software sources profile list -d /vmfs/volumes/datastore1/VMware-ESXi-7.0.3-22348816-HPE-703.0.0.11.5.0.6-Oct2023-depot.zip
Name                               Vendor                      Acceptance Level  Creation Time        Modification Time
---------------------------------  --------------------------  ----------------  -------------------  -------------------
HPE-Custom-AddOn_703.0.0.11.5.0-6  Hewlett Packard Enterprise  PartnerSupported  2023-10-03T14:15:28  2023-10-03T14:15:28
[root@localhost:~] 

```

一般的升级包会有多个配置文件，一般选择**standard 结尾的那个profile且不带s的**， no-tools结尾的一般用于pxe ，比如 下面的 `ESXi-7.0U3n-21930508-standard`

```
[root@localhost:~] esxcli software sources profile list -d /vmfs/volumes/datastore1/VMware-ESXi-7.0U3n-21930508-depot.zip
Name                           Vendor        Acceptance Level  Creation Time        Modification Time
-----------------------------  ------------  ----------------  -------------------  -----------------
ESXi-7.0U3n-21930508-standard  VMware, Inc.  PartnerSupported  2023-07-06T00:00:00  2023-07-06T00:00:00
ESXi-7.0U3n-21930508-no-tools  VMware, Inc.  PartnerSupported  2023-07-06T00:00:00  2023-06-15T12:39:40

```

### 7 升级命令

```
esxcli software profile update -p HPE-Custom-AddOn_703.0.0.11.5.0-6 -d /vmfs/volumes/datastore1/VMware-ESXi-7.0.3-22348816-HPE-703.0.0.11.5.0.6-Oct2023-depot.zip
```

代码

```
[root@localhost:~] esxcli software profile update -p HPE-Custom-AddOn_703.0.0.11.5.0-6 -d /vmfs/volumes/datastore1/VMware-ESXi-7.0.3-22348816-HPE-703.0.0.11.5.0.6-Oct2023-depot.zip
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: BCM_bootbank_bnxtnet_226.0.121.0-1OEM.700.1.0.15843807, BCM_bootbank_bnxtroce_226.0.121.0-1OEM.700.1.0.15843807, BCM_bootbank_lsi-mr3_7.724.03.00-1OEM.700.1.0.15843807, EMU_bootbank_lpfc_14.2.567.0-1OEM.700.1.0.15843807, HPE_bootbank_amsd_701.11.9.5.16-1OEM.701.0.0.16850804, HPE_bootbank_amsdv_701.11.5.0.2-1OEM.701.0.0.16850804, HPE_bootbank_fc-enablement_700.3.9.0.4-1OEM.700.1.0.15843807, HPE_bootbank_hpe-upgrade_901.1.4.9-1OEM.700.1.0.15843807, HPE_bootbank_ilo_700.10.8.1.6-1OEM.700.1.0.15843807, HPE_bootbank_ilorest_700.4.5.0.0.3-15843807, HPE_bootbank_sut_701.4.5.0.9-1OEM.701.0.0.16850804, HPE_bootbank_vnic-enablement_700.2.10.10-1OEM.700.1.0.15843807, INT_bootbank_i40en_2.4.2.0-1OEM.700.1.0.15843807, INT_bootbank_iavmd_3.2.0.1008-1OEM.700.1.0.15843807, INT_bootbank_icen_1.11.2.0-1OEM.700.1.0.15843807, INT_bootbank_igbn_1.11.2.0-1OEM.700.1.0.15843807, INT_bootbank_ixgben_1.14.2.0-1OEM.700.1.0.15843807, MEL_bootbank_mft-oem_4.25.0.703-0, MEL_bootbank_mft_4.25.0.703-0, MEL_bootbank_nmlx4-core_3.19.70.2001-1OEM.700.1.0.15843807, MEL_bootbank_nmlx4-en_3.19.70.2001-1OEM.700.1.0.15843807, MEL_bootbank_nmlx4-rdma_3.19.70.2001-1OEM.700.1.0.15843807, MEL_bootbank_nmlx5-core_4.22.73.1004-1OEM.703.0.0.18644231, MEL_bootbank_nmlx5-rdma_4.22.73.1004-1OEM.703.0.0.18644231, MEL_bootbank_nmst_4.25.0.703-1OEM.703.0.0.18644231, MIS_bootbank_smartpqi_70.4532.0.108-1OEM.700.1.0.15843807, MIS_bootbank_ssacli2_6.25.9.0-7.0.0.15525992.oem, MVL_bootbank_qlnativefc_5.3.81.2-1OEM.703.0.0.18644231, PEN_bootbank_ionic-en_18.0.12-1OEM.700.1.0.15843807, QLC_bootbank_qcnic_2.0.66.0-1OEM.700.1.0.15843807, QLC_bootbank_qedentv_3.70.35.0-1OEM.700.1.0.15843807, QLC_bootbank_qedf_2.72.2.0-1OEM.700.1.0.15843807, QLC_bootbank_qedi_2.72.2.0-1OEM.700.1.0.15843807, QLC_bootbank_qedrntv_3.70.33.0-1OEM.700.1.0.15843807, QLC_bootbank_qfle3_1.4.46.0-1OEM.700.1.0.15843807, QLC_bootbank_qfle3f_2.1.32.0-1OEM.700.1.0.15843807, QLC_bootbank_qfle3i_2.1.14.0-1OEM.700.1.0.15843807, VMW_bootbank_atlantic_1.0.3.0-8vmw.703.0.20.19193900, VMW_bootbank_brcmfcoe_12.0.1500.2-3vmw.703.0.20.19193900, VMW_bootbank_elxiscsi_12.0.1200.0-9vmw.703.0.20.19193900, VMW_bootbank_elxnet_12.0.1250.0-5vmw.703.0.20.19193900, VMW_bootbank_irdman_1.3.1.22-1vmw.703.0.50.20036589, VMW_bootbank_iser_1.1.0.1-1vmw.703.0.50.20036589, VMW_bootbank_lpnic_11.4.62.0-1vmw.703.0.20.19193900, VMW_bootbank_lsi-msgpt2_20.00.06.00-4vmw.703.0.20.19193900, VMW_bootbank_lsi-msgpt35_19.00.02.00-1vmw.703.0.20.19193900, VMW_bootbank_lsi-msgpt3_17.00.12.00-2vmw.703.0.105.22348816, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.703.0.20.19193900, VMW_bootbank_ne1000_0.9.0-1vmw.703.0.50.20036589, VMW_bootbank_nenic_1.0.33.0-1vmw.703.0.20.19193900, VMW_bootbank_nfnic_4.0.0.70-1vmw.703.0.20.19193900, VMW_bootbank_nhpsa_70.0051.0.100-4vmw.703.0.20.19193900, VMW_bootbank_ntg3_4.1.9.0-5vmw.703.0.90.21686933, VMW_bootbank_nvme-pcie_1.2.3.16-3vmw.703.0.105.22348816, VMW_bootbank_nvmerdma_1.0.3.5-1vmw.703.0.20.19193900, VMW_bootbank_nvmetcp_1.0.0.1-1vmw.703.0.35.19482537, VMW_bootbank_nvmxnet3-ens_2.0.0.22-1vmw.703.0.20.19193900, VMW_bootbank_nvmxnet3_2.0.0.30-1vmw.703.0.20.19193900, VMW_bootbank_pvscsi_0.1-4vmw.703.0.20.19193900, VMW_bootbank_qflge_1.1.0.11-1vmw.703.0.20.19193900, VMW_bootbank_rste_2.0.2.0088-7vmw.703.0.20.19193900, VMW_bootbank_sfvmk_2.4.0.2010-6vmw.703.0.20.19193900, VMW_bootbank_vmkata_0.1-1vmw.703.0.20.19193900, VMW_bootbank_vmkfcoe_1.0.0.2-1vmw.703.0.20.19193900, VMW_bootbank_vmkusb_0.1-8vmw.703.0.85.21424296, VMW_bootbank_vmw-ahci_2.0.11-2vmw.703.0.105.22348816, VMware_bootbank_bmcal_7.0.3-0.105.22348816, VMware_bootbank_cpu-microcode_7.0.3-0.105.22348816, VMware_bootbank_crx_7.0.3-0.105.22348816, VMware_bootbank_elx-esx-libelxima.so_12.0.1200.0-4vmw.703.0.20.19193900, VMware_bootbank_esx-base_7.0.3-0.105.22348816, VMware_bootbank_esx-dvfilter-generic-fastpath_7.0.3-0.105.22348816, VMware_bootbank_esx-ui_2.11.2-21988676, VMware_bootbank_esx-update_7.0.3-0.105.22348816, VMware_bootbank_esx-xserver_7.0.3-0.105.22348816, VMware_bootbank_esxio-combiner_7.0.3-0.105.22348816, VMware_bootbank_gc_7.0.3-0.105.22348816, VMware_bootbank_loadesx_7.0.3-0.105.22348816, VMware_bootbank_lsuv2-hpv2-hpsa-plugin_1.0.0-3vmw.703.0.20.19193900, VMware_bootbank_lsuv2-intelv2-nvme-vmd-plugin_2.7.2173-1vmw.703.0.20.19193900, VMware_bootbank_lsuv2-lsiv2-drivers-plugin_1.0.0-12vmw.703.0.50.20036589, VMware_bootbank_lsuv2-nvme-pcie-plugin_1.0.0-1vmw.703.0.20.19193900, VMware_bootbank_lsuv2-oem-dell-plugin_1.0.0-1vmw.703.0.20.19193900, VMware_bootbank_lsuv2-oem-hp-plugin_1.0.0-1vmw.703.0.20.19193900, VMware_bootbank_lsuv2-oem-lenovo-plugin_1.0.0-1vmw.703.0.20.19193900, VMware_bootbank_lsuv2-smartpqiv2-plugin_1.0.0-9vmw.703.0.105.22348816, VMware_bootbank_native-misc-drivers_7.0.3-0.105.22348816, VMware_bootbank_trx_7.0.3-0.105.22348816, VMware_bootbank_vdfs_7.0.3-0.105.22348816, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.44-1vmw.703.0.20.19193900, VMware_bootbank_vsan_7.0.3-0.105.22348816, VMware_bootbank_vsanhealth_7.0.3-0.105.22348816, VMware_locker_tools-light_12.2.6.22229486-22348808
   VIBs Removed: BCM_bootbank_bnxtnet_219.0.29.0-1OEM.670.0.0.8169922, BCM_bootbank_bnxtroce_219.0.13.0-1OEM.670.0.0.8169922, BCM_bootbank_lsi-mr3_7.716.03.00-1OEM.670.0.0.8169922, ELX_bootbank_elx-esx-libelxima-8169922.so_12.0.1188.0-03, EMU_bootbank_brcmfcoe_12.0.1278.0-1OEM.670.0.0.8169922, EMU_bootbank_elxiscsi_12.0.1188.0-1OEM.670.0.0.8169922, EMU_bootbank_elxnet_12.0.1216.4-1OEM.670.0.0.8169922, EMU_bootbank_lpfc_12.8.528.14-1OEM.670.0.0.8169922, HPE_bootbank_amsd_670.11.8.0.15-1.7535516, HPE_bootbank_amshelpr_670.11.8.0.8-1.7535516, HPE_bootbank_bootcfg_6.7.0.02-06.00.14.7535516, HPE_bootbank_conrep_670.10.8.0.18-6.7.0.7535516, HPE_bootbank_cru_670.6.7.10.14-1OEM.670.0.0.7535516, HPE_bootbank_fc-enablement_670.3.80.6-7535516, HPE_bootbank_hponcfg_6.7.0.5.5-0.18.7535516, HPE_bootbank_ilo_670.10.7.5.2-1OEM.670.0.0.7535516, HPE_bootbank_ilorest_650.3.3.0.2-4240417, HPE_bootbank_oem-build_670.U3.10.9.0.1-7535516, HPE_bootbank_scsi-hpdsa_6.0.0.76-1OEM.600.0.0.2494585, HPE_bootbank_smx-provider_670.03.16.00.3-7535516, HPE_bootbank_sut_6.7.0.2.9.1.0-21, HPE_bootbank_sutesxcli_6.7.0.2.9.1.0-9, HPE_bootbank_testevent_6.7.0.02-01.00.12.7535516, INT_bootbank_i40en_1.14.3.0-1OEM.670.0.0.8169922, INT_bootbank_iavmd_2.7.0.1157-1OEM.670.0.0.8169922, INT_bootbank_icen_1.7.3.0-1OEM.670.0.0.8169922, INT_bootbank_igbn_1.5.2.0-1OEM.670.0.0.8169922, INT_bootbank_ixgben_1.10.3.0-1OEM.670.0.0.8169922, MEL_bootbank_nmlx4-core_3.17.70.1-1OEM.670.0.0.8169922, MEL_bootbank_nmlx4-en_3.17.70.1-1OEM.670.0.0.8169922, MEL_bootbank_nmlx4-rdma_3.17.70.1-1OEM.670.0.0.8169922, MEL_bootbank_nmlx5-core_4.17.71.1-1OEM.670.0.0.8169922, MEL_bootbank_nmlx5-rdma_4.17.71.1-1OEM.670.0.0.8169922, MEL_bootbank_nmst_4.12.0.105-1OEM.650.0.0.4598673, MIS_bootbank_hpessacli_5.30.6.0-6.7.0.7535516.oem, MSCC_bootbank_smartpqi_67.4150.0.119-1OEM.670.0.0.8169922, Marvell_bootbank_qlnativefc_3.1.46.0-1OEM.670.0.0.8169922, Microsemi_bootbank_nhpsa_67.0072.0.149-1OEM.670.0.0.8169922, PEN_bootbank_ionic-en_18.0.0-1OEM.650.0.0.4598673, QLC_bootbank_qcnic_1.0.60.0-1OEM.670.0.0.8169922, QLC_bootbank_qedentv-ens_3.11.43.0-1OEM.670.0.0.8169922, QLC_bootbank_qedentv_3.11.45.0-1OEM.670.0.0.8169922, QLC_bootbank_qedf_2.2.70.0-1OEM.670.0.0.8169922, QLC_bootbank_qedi_2.19.70.0-1OEM.670.0.0.8169922, QLC_bootbank_qedrntv_3.11.43.0-1OEM.670.0.0.8169922, QLC_bootbank_qfle3_1.1.22.0-1OEM.670.0.0.8169922, QLC_bootbank_qfle3f_1.1.25.0-1OEM.670.0.0.8169922, QLC_bootbank_qfle3i_1.1.5.0-1OEM.670.0.0.8169922, VMW_bootbank_ata-libata-92_3.00.9.2-16vmw.670.0.0.8169922, VMW_bootbank_ata-pata-amd_0.3.10-3vmw.670.0.0.8169922, VMW_bootbank_ata-pata-atiixp_0.4.6-4vmw.670.0.0.8169922, VMW_bootbank_ata-pata-cmd64x_0.2.5-3vmw.670.0.0.8169922, VMW_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.670.0.0.8169922, VMW_bootbank_ata-pata-pdc2027x_1.0-3vmw.670.0.0.8169922, VMW_bootbank_ata-pata-serverworks_0.4.3-3vmw.670.0.0.8169922, VMW_bootbank_ata-pata-sil680_0.4.8-3vmw.670.0.0.8169922, VMW_bootbank_ata-pata-via_0.3.3-2vmw.670.0.0.8169922, VMW_bootbank_block-cciss_3.6.14-10vmw.670.0.0.8169922, VMW_bootbank_char-random_1.0-3vmw.670.0.0.8169922, VMW_bootbank_ehci-ehci-hcd_1.0-4vmw.670.0.0.8169922, VMW_bootbank_hid-hid_1.0-3vmw.670.0.0.8169922, VMW_bootbank_ima-qla4xxx_2.02.18-1vmw.670.0.0.8169922, VMW_bootbank_ipmi-ipmi-devintf_39.1-5vmw.670.1.28.10302608, VMW_bootbank_ipmi-ipmi-msghandler_39.1-5vmw.670.1.28.10302608, VMW_bootbank_ipmi-ipmi-si-drv_39.1-5vmw.670.1.28.10302608, VMW_bootbank_iser_1.0.0.0-1vmw.670.1.28.10302608, VMW_bootbank_lpnic_11.4.59.0-1vmw.670.0.0.8169922, VMW_bootbank_lsi-msgpt2_20.00.06.00-2vmw.670.3.73.14320388, VMW_bootbank_lsi-msgpt35_09.00.00.00-5vmw.670.3.73.14320388, VMW_bootbank_lsi-msgpt3_17.00.02.00-1vmw.670.3.73.14320388, VMW_bootbank_misc-drivers_6.7.0-2.48.13006603, VMW_bootbank_mtip32xx-native_3.9.8-1vmw.670.1.28.10302608, VMW_bootbank_ne1000_0.8.4-2vmw.670.2.48.13006603, VMW_bootbank_nenic_1.0.29.0-1vmw.670.3.73.14320388, VMW_bootbank_net-cdc-ether_1.0-3vmw.670.0.0.8169922, VMW_bootbank_net-e1000_8.0.3.1-5vmw.670.3.112.16701467, VMW_bootbank_net-e1000e_3.2.2.1-2vmw.670.0.0.8169922, VMW_bootbank_net-enic_2.1.2.38-2vmw.670.0.0.8169922, VMW_bootbank_net-fcoe_1.0.29.9.3-7vmw.670.0.0.8169922, VMW_bootbank_net-forcedeth_0.61-2vmw.670.0.0.8169922, VMW_bootbank_net-libfcoe-92_1.0.24.9.4-8vmw.670.0.0.8169922, VMW_bootbank_net-nx-nic_5.0.621-5vmw.670.0.0.8169922, VMW_bootbank_net-tg3_3.131d.v60.4-2vmw.670.0.0.8169922, VMW_bootbank_net-usbnet_1.0-3vmw.670.0.0.8169922, VMW_bootbank_net-vmxnet3_1.1.3.0-3vmw.670.3.104.16075168, VMW_bootbank_nfnic_4.0.0.44-0vmw.670.3.104.16075168, VMW_bootbank_ntg3_4.1.5.0-0vmw.670.3.116.16713306, VMW_bootbank_nvme_1.2.2.28-5vmw.670.3.159.18828794, VMW_bootbank_nvmxnet3-ens_2.0.0.21-1vmw.670.0.0.8169922, VMW_bootbank_nvmxnet3_2.0.0.29-1vmw.670.1.28.10302608, VMW_bootbank_ohci-usb-ohci_1.0-3vmw.670.0.0.8169922, VMW_bootbank_pvscsi_0.1-2vmw.670.0.0.8169922, VMW_bootbank_qflge_1.1.0.11-1vmw.670.0.0.8169922, VMW_bootbank_sata-ahci_3.0-26vmw.670.0.0.8169922, VMW_bootbank_sata-ata-piix_2.12-10vmw.670.0.0.8169922, VMW_bootbank_sata-sata-nv_3.5-4vmw.670.0.0.8169922, VMW_bootbank_sata-sata-promise_2.12-3vmw.670.0.0.8169922, VMW_bootbank_sata-sata-sil24_1.1-1vmw.670.0.0.8169922, VMW_bootbank_sata-sata-sil_2.3-4vmw.670.0.0.8169922, VMW_bootbank_sata-sata-svw_2.3-3vmw.670.0.0.8169922, VMW_bootbank_scsi-aacraid_1.1.5.1-9vmw.670.0.0.8169922, VMW_bootbank_scsi-adp94xx_1.0.8.12-6vmw.670.0.0.8169922, VMW_bootbank_scsi-aic79xx_3.1-6vmw.670.0.0.8169922, VMW_bootbank_scsi-fnic_1.5.0.45-3vmw.670.0.0.8169922, VMW_bootbank_scsi-ips_7.12.05-4vmw.670.0.0.8169922, VMW_bootbank_scsi-iscsi-linux-92_1.0.0.2-3vmw.670.0.0.8169922, VMW_bootbank_scsi-libfc-92_1.0.40.9.3-5vmw.670.0.0.8169922, VMW_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.670.0.0.8169922, VMW_bootbank_scsi-megaraid-sas_6.603.55.00-2vmw.670.0.0.8169922, VMW_bootbank_scsi-megaraid2_2.00.4-9vmw.670.0.0.8169922, VMW_bootbank_scsi-mpt2sas_19.00.00.00-2vmw.670.0.0.8169922, VMW_bootbank_scsi-mptsas_4.23.01.00-10vmw.670.0.0.8169922, VMW_bootbank_scsi-mptspi_4.23.01.00-10vmw.670.0.0.8169922, VMW_bootbank_scsi-qla4xxx_5.01.03.2-7vmw.670.0.0.8169922, VMW_bootbank_sfvmk_1.0.0.1003-7vmw.670.3.104.16075168, VMW_bootbank_shim-iscsi-linux-9-2-1-0_6.7.0-0.0.8169922, VMW_bootbank_shim-iscsi-linux-9-2-2-0_6.7.0-0.0.8169922, VMW_bootbank_shim-libata-9-2-1-0_6.7.0-0.0.8169922, VMW_bootbank_shim-libata-9-2-2-0_6.7.0-0.0.8169922, VMW_bootbank_shim-libfc-9-2-1-0_6.7.0-0.0.8169922, VMW_bootbank_shim-libfc-9-2-2-0_6.7.0-0.0.8169922, VMW_bootbank_shim-libfcoe-9-2-1-0_6.7.0-0.0.8169922, VMW_bootbank_shim-libfcoe-9-2-2-0_6.7.0-0.0.8169922, VMW_bootbank_shim-vmklinux-9-2-1-0_6.7.0-0.0.8169922, VMW_bootbank_shim-vmklinux-9-2-2-0_6.7.0-0.0.8169922, VMW_bootbank_shim-vmklinux-9-2-3-0_6.7.0-0.0.8169922, VMW_bootbank_uhci-usb-uhci_1.0-3vmw.670.0.0.8169922, VMW_bootbank_usb-storage-usb-storage_1.0-3vmw.670.0.0.8169922, VMW_bootbank_usbcore-usb_1.0-3vmw.670.0.0.8169922, VMW_bootbank_vmkata_0.1-1vmw.670.0.0.8169922, VMW_bootbank_vmkfcoe_1.0.0.1-1vmw.670.1.28.10302608, VMW_bootbank_vmkplexer-vmkplexer_6.7.0-0.0.8169922, VMW_bootbank_vmkusb_0.1-4vmw.670.3.159.18828794, VMW_bootbank_vmw-ahci_2.0.7-2vmw.670.3.143.17700523, VMW_bootbank_xhci-xhci_1.0-3vmw.670.0.0.8169922, VMware_bootbank_cpu-microcode_6.7.0-3.155.18812553, VMware_bootbank_esx-base_6.7.0-3.163.19195723, VMware_bootbank_esx-dvfilter-generic-fastpath_6.7.0-0.0.8169922, VMware_bootbank_esx-ui_1.33.7-15803439, VMware_bootbank_esx-update_6.7.0-3.163.19195723, VMware_bootbank_esx-xserver_6.7.0-3.73.14320388, VMware_bootbank_lsu-hp-hpsa-plugin_2.0.0-16vmw.670.1.28.10302608, VMware_bootbank_lsu-intel-vmd-plugin_1.0.0-2vmw.670.1.28.10302608, VMware_bootbank_lsu-lsi-drivers-plugin_1.0.0-1vmw.670.2.48.13006603, VMware_bootbank_lsu-lsi-lsi-mr3-plugin_1.0.0-13vmw.670.1.28.10302608, VMware_bootbank_lsu-lsi-lsi-msgpt3-plugin_1.0.0-9vmw.670.2.48.13006603, VMware_bootbank_lsu-lsi-megaraid-sas-plugin_1.0.0-9vmw.670.0.0.8169922, VMware_bootbank_lsu-lsi-mpt2sas-plugin_2.0.0-7vmw.670.0.0.8169922, VMware_bootbank_lsu-smartpqi-plugin_1.0.0-4vmw.670.3.159.18828794, VMware_bootbank_native-misc-drivers_6.7.0-3.89.15160138, VMware_bootbank_rste_2.0.2.0088-7vmw.670.0.0.8169922, VMware_bootbank_vmware-esx-esxcli-nvme-plugin_1.2.0.36-2vmw.670.3.116.16713306, VMware_bootbank_vsan_6.7.0-3.163.19184739, VMware_bootbank_vsanhealth_6.7.0-3.163.19184740, VMware_locker_tools-light_11.3.5.18557794-18812553
   VIBs Skipped: 

```

### 8 升级完成 重启

```
root@localhost:~] reboot 
[root@localhost:~] Connection closing...Socket close.

Connection closed by foreign host.

```

### 9 再次查看版本

重启后SSH会关闭，重新登陆web打开

```
[root@localhost:~] vmware -vl
VMware ESXi 7.0.3 build-22348816
VMware ESXi 7.0 Update 3
```

参考：

{% embed url="<https://www.dinghui.org/upgrade-esxi-patch.html>" %}


# ESXi覆盖安装重置root密码

**一、官方方法**

官方KB说明是通过重新安装来重置root密码。

优点：目前6、7和8的版本都支持这种重置方法

缺点：ESXi主机相关的配置信息全部丢失，就剩内部的虚拟机

1、通过ESXi ISO镜像启动服务器，等待到安装界面，按 **回车** 键继续

![220-10.png](https://pic.chjina.com/2024/06/26/a2310494e458f83480719ced6831fbe3.png)

2、按 **F11** 键继续安装

![220-11.png](https://pic.chjina.com/2024/06/26/769c46a2f7fcad64217ad7e2e8c74135.png)

3、选择安装磁盘（需要选择以前老的ESXi安装的磁盘），选好按 **回车** 键继续

![220-12.png](https://pic.chjina.com/2024/06/26/087ed8c50bdd76fcc53eb2cb8ab697d0.png)

4、这步非常重要，由于是覆盖安装因此会提示“ESXi and VMFS Found”并给出三个装模式选项，这边要选择第二个模式，按 **回车** 键继续。

第一个升级ESXi并保留数据文件：Upgrade ESXi，preserve VMFS datastore

第二个安装ESXi并保留数据文件：Install ESXi，preserve VMFS datastore

第三个安装ESXi并覆盖数据文件：Install ESXi，overwrite VMFS datastore

![220-13.png](https://pic.chjina.com/2024/06/26/099f9e014c945d75855acccd496783f6.png)

5、语言默认即可，按 **回车** 键继续

![220-14.png](https://pic.chjina.com/2024/06/26/26995b62e75669378ae90cd3906403e4.png)

6、输入新的密码，按 **回车** 键继续

![220-15.png](https://pic.chjina.com/2024/06/26/8b2359efc83cf02377692770e584bbcf.png)

7、按 **F11** 键开始安装

![220-16.png](https://pic.chjina.com/2024/06/26/8aa3502ba19eced68cb70a617c24b250.png)

8、按 **回车** 键重启，重启完就是新密码了。

![220-17.png](https://pic.chjina.com/2024/06/26/935f555996d8199e8907fac52e9e2682.png)

参考链接：[ESXI忘记密码 重置root密码 - ashenga - 博客园 (cnblogs.com)](https://www.cnblogs.com/itsheng/p/17254578.html)


# vCenter重置ESXi主机root密码

### 背景：

管理员一般通过vCenter来管理ESXi主机，时间长了，ESXi主机的root密码忘记了，本文主要介绍在vCenter中通过修改主机配置文件来修改ESXI主机的root密码。

（备注：不用重启ESXi主机，不影响ESXi主机上的虚拟机。）

本文以vCenter 6.7为例，其余版本大同小异，版本不同图标位置有些小变化，但是思路不变。

### 1、提取主机配置文件

选中要操作的主机，右键选择“主机配置文件”>>点击“提取主机配置文件”。为方便标识，更改一下名称，如修改root密码。

### 2、选择“菜单”>>“策略和配置文件”，在“主机配置文件”中找到提取的配置文件。

![img](https://pic.chjina.com/2023/08/21/image-7.png)

### 3、选中配置文件，右击点击“编辑主机配置文件”。

取消所有的勾选项。依次选择“安全和服务” >>“安全设置” >>“安全”>>“用户配置”，然后勾选“root”。将密码策略修改成“**固定的密码配置**”，输入要修改的密码，然后点击“保存”。

![img](https://pic.chjina.com/2023/08/21/image-8.png)

### 4、依次选中要重置密码的主机， 右键选择“主机配置文件”>>点击“附加主机配置文件”。

![img](https://pic.chjina.com/2023/08/21/image-10.png)

### 5、修复主机配置文件

选择“菜单”>>“策略和配置文件”，在“主机配置文件”中找到提取的配置文件。 操作，

![img](https://pic.chjina.com/2023/08/21/image-11.png)

取消勾选“自动重新引导需要修复的主机”，点击修复。等待任务执行完毕。

### 6、验证

登录web client，输入账号和密码进行验证。

原文：

{% embed url="<https://www.dinghui.org/reset-esxi-root-password-using-vmware-host-profile.html>" %}


# 系统配置和优化


# Windows

记录Windows下各种系统配置及优化


# Windows挂载NFS

### 1.Windows 安装NFS客户端

启用或关闭Windows功能

NFS服务打勾

### 2.挂载NFS

1. 打开CMD终端。
2. 查看共享目录。 192.168.1.1 为NFS服务器地址

```
showmount -e 192.168.1.1
```

1. 挂载到服务器。 格式：`mount \\服务器地址\目录\目录 挂载的盘符`

```
mount  \\192.168.1.1\volume1\home  Z:
```

​ 提示成功连接到就表示挂载成功了

### 3.取消挂载

取消挂载 `umount 挂载`

```
umount Z:
```


# Windows Server 链路聚合配置

### 1. 创建聚合组

打开服务器管理器=>本地服务器=>NIC组合

![image-20220617145935575](https://pic.chjina.com/2022/07/13/20220617145942.png)

![image-20220617150238274](https://pic.chjina.com/2022/07/13/20220617150238.png)

在组名称中设置链路聚合网卡的名称

### 2. 添加聚合网卡

2.1成员适配器中选中需要聚合的网卡，

![image-20220617152742554](https://pic.chjina.com/2022/07/13/20220617152742.png)

成员模式：

* 交换机独立模式：一般正常的配置这个，交换机端可不用配置链路聚合
* 静态成组模式：交换机需静态配置链路聚合
* LACP模式：交换机端需配置动态链路聚合

点击确定即可。

然后在网络适配器里就可以看见新创建的聚合网卡了。

![image-20220617153326285](https://pic.chjina.com/2022/07/13/20220617153326.png)

### 3. 配置网络信息

配置新的聚合网卡IP地址等信息。 速度显示两个物理网口的合

![image-20220617154846309](https://pic.chjina.com/2022/07/13/20220617154846.png)


# Windows 远程提示函数不受支持

**注意：修改远程的电脑，不是被远程的电脑。**

***

## 一.正常可以打开组策略

### 1、win +R弹出运行窗口输入gpedit.msc，打开计算机组策略配置窗口

![image-20221009090406280](https://pic.chjina.com/2022/10/9/1.png)

### 2.点击计算机配置=>管理模板 =>系统

![image-20221009090521404](https://pic.chjina.com/2022/10/9/2.png)

### 3.在系统设置下找到凭据分配。

![image-20221009090900365](https://pic.chjina.com/2022/10/9/03.png)

### 4.点击凭据分配中的加密数据库修正。

![image-20221009090952670](https://pic.chjina.com/2022/10/9/4.png)

### 5.修改为已启用，保护级别为易受攻击。

![image-20221009091146782](https://pic.chjina.com/2022/10/9/5.png)

### 6.重新远程下连接电脑就可以了。

### 7.如果还是不行，可以把被远程的电脑下面的钩去掉试试。

![image-20230228091929798](https://pic.chjina.com/2023/02/28/image-20230228091929798.png)

## 二. 针对于家庭中文版的没有组策略方法

注：由于作者没有家庭中文版的系统，没有具体实际测试

### 1.win +R弹出运行窗口输入regedit，打开计算机注册表配置窗口

![image-20221009093307625](https://pic.chjina.com/2022/10/9/image-20221009093307625.png)

### 2打开

```
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
```

![image-20221009093413134](https://pic.chjina.com/2022/10/9/image-20221009093413134.png)

### 3.新建\CredSSP\Parameters项

![image-20221009094954199](https://pic.chjina.com/2022/10/9/image-20221009094954199.png)

### 4.点开Parameters，在右侧右键鼠标，新建，选择DWORD(32位)值(D)

![image-20221009100452406](https://pic.chjina.com/2022/10/9/image-20221009100452406.png)

### 5.修改数值名称为AllowEncryptionOracle，数值数据改为2

![image-20221009100607355](https://pic.chjina.com/2022/10/9/image-20221009100607355.png)

### 6.点击确定，应该就可以正常远程桌面了。


# Windows系统配置NTP服务器

## 1.开启Windows 时间服务。

* 在桌面上右击“计算机”，选择“管理”，然后选择“服务”。或者按下windows键+R 组合键打开运行，输入： services.msc
* 选中“Windows Time”，设置为开启，这样就可以将“Windows Time”这一个服务打开。

![img](https://pic.chjina.com/2023/03/14/Pasted-1414.png)

## 2.修改注册表

* “开始”--》“运行”--》输入“regedit”打开注册表，在注册表中依次展开：HKEY\_LOCAL\_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、TimeProviders、NtpServer， 在NtpServer项的右侧键值Enablied，将默认的0改为1，1为启用NTP服务器。

![img](https://pic.chjina.com/2023/03/14/Pasted-1418.png)

![img](https://pic.chjina.com/2023/03/14/Pasted-769.png)

![img](https://pic.chjina.com/2023/03/14/Pasted-1419.png)

* 再在注册表中依次展开：HKEY\_LOCAL\_MACHINE、SYSTEM、CurrentControlSet、Services、W32Time、Config 找到Config项右侧的AnnounceFlags。把默认的10改为5，5的意思就是自身为可靠的时间源。

![img](https://pic.chjina.com/2023/03/14/Pasted-1415.png)

![img](https://pic.chjina.com/2023/03/14/Pasted-1416.png)

## 3.重启NTP服务

* 在命令提示符中输入：net stop w32Time，回车，等待NTP服务停止。
* 然后再输入：net start w32Time，回车，启动NTP服务。

![img](https://pic.chjina.com/2023/03/14/Pasted-1420.png)

## 4.设置防火墙

**NTP服务启动后需要关闭电脑防火墙或者放行入流量UDP 123端口，否则客户端无法正常同步时间信息。**

### 防火墙放通NTP端口(UDP 123)

### 1.点击高级设置。

![image-20230314220958717](https://pic.chjina.com/2023/03/14/image-20230314220958717.png)

### 2.点击入站规则。

![image-20230314221155263](https://pic.chjina.com/2023/03/14/image-20230314221155263.png)

### 3.新建规则

![image-20230314221335006](https://pic.chjina.com/2023/03/14/image-20230314221335006.png)

### 4.选择端口，点击下一步。

![image-20230314221422699](https://pic.chjina.com/2023/03/14/image-20230314221422699.png)

### 5.选择UDP，特定端口输入123，点击下一步。

![image-20230314221504198](https://pic.chjina.com/2023/03/14/image-20230314221504198.png)

### 6.选择允许连接，点击下一步。

![image-20230314221619795](https://pic.chjina.com/2023/03/14/image-20230314221619795.png)

### 7.全部勾选，点击下一步。

![image-20230314221755063](https://pic.chjina.com/2023/03/14/image-20230314221755063.png)

### 8.输入一个你喜爱的名称。点击完成。

![image-20230314221942563](https://pic.chjina.com/2023/03/14/image-20230314221942563.png)

### 9.查看下

![img](https://pic.chjina.com/2023/03/14/Pasted-1421.png)

![img](https://pic.chjina.com/2023/03/14/Pasted-1422.png)


# Windows11系统初始化无网络连接

1.首先进入需要联网的界面，按下键盘上的“`shift+f10`”。有些笔记本按“`Fn+shift+f10`”

2.按下后会打开命令提示符，在其中输入“`oobe\bypassnro`”并按下回车。

3.会重新启动，再进入联网界面后可以发现，右下角多了一个“**我没有internet连接**”。

4.点击它之后进入下图界面，再点击“**继续执行受限设置**”，就可以跳过联网激活，进行后续的设置登录。


# Windows11 右键恢复原始菜单

### Win11切换经典右键菜单

右下角搜索窗口搜索CMD，以管理员身份运行CMD

输入以下命令：

```cmd
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
taskkill /f /im explorer.exe & start explorer.exe
```

### Win11恢复回新右键菜单

右下角搜索窗口搜索CMD，以管理员身份运行CMD

输入以下命令：

```
reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
taskkill /f /im explorer.exe & start explorer.exe 
```


# 向日葵远程无显示器后分辨率最小 WIN版虚拟显示器usbmmidd\_v2

在没有物理显示器的情况下，通过远程软件向日葵或者todesk连接主机，默认显示640\*640分辨率，而且无法修改。

### 下载

软件下载 [usbmmidd\_v2.zip](https://www.amyuni.com/downloads/usbmmidd_v2.zip)

### 使用方法

#### 方法1

右键单击usbmmid.bat和“以管理员身份运行”

#### 方法2

下载软件包后解压，通过管理员身份打开命令提示符，然后依次输入以下命令:

```shell
cd c:\download\usbmmid_v2 (解压的目录)
deviceinstaller64 install usbmmidd.inf usbmmidd
deviceinstaller64 enableidd 1
```

如果是在Windows 10中添加4个虚拟显示器，最多可以运行最后一条命令4次。

如果你使用的是32位系统，将"deviceinstaller64"替换为"deviceinstaller"

包含的批处理文件usbmmid.bat会自动运行这些命令，并在32位或64位版本的设备安装程序之间进行选择。

#### 停用

要停用虚拟监视器，请运行以下命令：

```shell
deviceinstaller64 enableidd 0
```

（如果添加了多个虚拟显示器，请多次运行此命令）

重新激活它：

```shell
deviceinstaller64 enableidd 1
```

#### 卸载

要从系统中完全删除驱动程序，

1.设备管理器并卸载“USB Mobile Monitor Virtual Display”，

2.或者运行以下命令：

```shell
deviceinstaller64 stop usbmmidd
deviceinstaller64 remove usbmmid 
```


# Linux


# Centos


# CentOS网卡配置

### 网卡配置文件

目录地址：`/etc/sysconfig/network-scripts/ifcfg-ens33`

#### 例示：

```

TYPE=Ethernet            //网络类型：Ethernet以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none            //网卡类型 static静态、dhcp动态获取、none不指定
DEFROUTE=yes              //启动默认路由
IPV4_FAILURE_FATAL=no     //不启用IPV4错误检测功能
IPV6INIT=yes              //启用IPV6协议
IPV6_AUTOCONF=yes         //自动配置IPV6地址
IPV6_DEFROUTE=yes         //启用IPV6默认路由
IPV6_FAILURE_FATAL=no     //不启用IPV6错误检测功能
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33                //网卡别名
UUID=c1d713e7-5993-4c4e-8962-cd56d02f5b76       //UUID 可使用uuidgen ens33 自主生成
DEVICE=ens33              //网卡名称
ONBOOT=yes                //开机自动启动网卡
IPADDR=192.168.123.1      //网卡的IP地址
PREFIX=24                 //网卡的IP掩码
GATEWAY=192.168.123.254   //网卡的网关
DNS1=223.5.5.5            //主DNS
DNS2=114.114.114.114      //备用DNS
IPV6_PRIVACY=no
```

### 生成网卡的uuid

命令：`uuidgen ens33`

#### 例示：

```
[root@localhost ~]# uuidgen ens33
4ab75d5e-defa-4935-9c26-039440c26bd3
```

### 查看网卡的uuid

命令：`nmcli con show`

#### 例示：

```
[root@localhost ~]# nmcli con show
NAME   UUID                                  TYPE      DEVICE 
ens33  168fcf94-3f65-49a7-8a80-3e74a622b331  ethernet  ens33
```

### 查看网卡状态

命令：`nmcli device show`

#### 例示：

```
[root@localhost ~]# nmcli device show
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:96:67:CD
GENERAL.MTU:                            1500
GENERAL.STATE:                          100（已连接）
GENERAL.CONNECTION:                     ens33
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/7
WIRED-PROPERTIES.CARRIER:               on 
IP4.ADDRESS[1]:                         192.168.31.190/24
IP4.GATEWAY:                            192.168.31.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.31.1, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.31.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.31.1
IP6.ADDRESS[1]:                         fe80::3369:bdb3:a677:821e/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10（未托管）
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
```

### 重启网络

**注：修改完网卡的配置文件(修改IP)必须要重启才生效，**

命令：`service network restart`

#### 例示：

```
[root@localhost ~]# service network restart
Restarting network (via systemctl):                        [  OK  ]
```

### 查看IP地址

命令：`ip add`

#### 例示：

```
[root@localhost ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:96:67:cd brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.190/24 brd 192.168.31.255 scope global noprefixroute dynamic ens33
       valid_lft 7024sec preferred_lft 7024sec
    inet6 fe80::3369:bdb3:a677:821e/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
```


# CentOS重置密码

## 1.重启系统，开机引导界面按 `E`键

![image-20221008092004913](https://pic.chjina.com/2022/10/08/image-20221008092004913.png)

## 2.进入内核编辑界面

![image-20221008092236063](https://pic.chjina.com/2022/10/08/image-20221008092236063.png)

## 3.按方向“↓”键，往下翻到 linux16 这一行，然后在最后加上 `rd.break`

![image-20221008092938274](https://pic.chjina.com/2022/10/08/image-20221008092938274.png)

## 4.`ctrl + x`保存，将进入 Initramfs 的debug 命令模式

![image-20221008093119723](https://pic.chjina.com/2022/10/08/image-20221008093119723.png)

## 5.输入`mount -o remount,rw /sysroot/` 为/sysroot提供读写权限

![image-20221008093740450](https://pic.chjina.com/2022/10/08/image-20221008093740450.png)

## 6.切换至chroot模式

![image-20221008094020967](https://pic.chjina.com/2022/10/08/image-20221008094020967.png)

## 7.输入 `passwd root` 重置root账户的密码

![image-20221008094155253](https://pic.chjina.com/2022/10/08/image-20221008094155253.png)

## 8.输入两遍新的密码，注：输入的时候屏幕不显示字符，

![image-20221008094450877](https://pic.chjina.com/2022/10/08/image-20221008094450877.png)

## 9.执行 `touch /.autorelabel`命令

![image-20221008094718870](https://pic.chjina.com/2022/10/08/image-20221008094718870.png)

## 10.输入exit 退出chroot模式

![image-20221008094814789](https://pic.chjina.com/2022/10/08/image-20221008094814789.png)

## 11.输入exit 推出Initramfs模式，会自动重启,输入新的密码就可以正常登录了

![image-20221008094841220](https://pic.chjina.com/2022/10/08/image-20221008094841220.png)

## 12.完整操作流程

![image-20221008094903681](https://pic.chjina.com/2022/10/08/image-20221008094903681.png)

## 重启后，输入新的密码就可以登录系统。

引用：

{% embed url="<https://blog.csdn.net/weixin_52270081/article/details/126029470>" %}


# CentOS使用iso镜像作为私有源

小计：

有时候在我们本地搭建一些Linux上的程序运行环境或者安装一些软件的时候，难免会遇到需要使用yum方式安装一些依赖库，但是苦于没有网，无法下载依赖库软件的情况。又或者是在机房中无法连接外网的情况下需要安装一大堆依赖的基础软件。

## 一.虚拟机CD挂载方式

### 1.虚拟机添加CD镜像

### 2.创建挂载路径 /mut/cdrom

```
[root@localhost /]# mkdir -pv /mut/cdrom
```

### 3.挂载CD镜像到 /mut/cdrom

```
[root@localhost cdrom]# mount /dev/cdrom /mut/cdrom/
mount: /dev/sr0 写保护，将以只读方式挂载
```

### 4.查看挂载是否成功 df -h

```
[root@localhost cdrom]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.6M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   11G  2.5G  8.6G   22% /
/dev/sda1               1014M  151M  864M   15% /boot
/dev/mapper/centos-home  4.0G   33M  4.0G    1% /home
tmpfs                    182M     0  182M    0% /run/user/0
/dev/sr0                 4.4G  4.4G     0  100% /mut/cdrom
```

### 5.备份yum源

#### 5.1进入yum源目录

```
[root@localhost /]# cd /etc/yum.repos.d/
```

#### 5.2 创建备份文件夹backup

```
[root@localhost yum.repos.d]# mkdir -pv backup
```

#### 5.3 备份到backup文件夹

```
[root@localhost yum.repos.d]# mv ./*.repo ./backup
```

### 6.创建yum更新源local.repo

```
[root@localhost yum.repos.d]# vi local.repo
```

#### 6.1编写local.repo yum源

```
[LocalRepo]
name=LocalRepo
baseurl=file:///mut/cdrom/
enabled=1
gpgcheck=0
```

命令含义：

\[LocalRepo] :表示一个yum源配置段的名称，可以自定义。

name:表示该yum源的名称 baseurl:表示yum源的目录，使用file:///表示指向的是本地文件系统上的目录，注意：有三个斜杠。 enabled:表示该yum配置段是否生效，1表示生效，0表示无效 gpgcheck:表示是否对yum源指定的软件包进行安全校验，0表示不校验，本地挂载的镜像可以认为软件就是安全的，不必校验；

### 7.清除yum源的缓存

```
[root@localhost yum.repos.d]# yum clean all
已加载插件：fastestmirror
正在清理软件源： LocalRepo
Cleaning up list of fastest mirrors
Other repos take up 169 M of disk space (use --verbose for details)

```

### 8.查看加载的yum源，如果列出很多，说明加载成功

```
[root@localhost yum.repos.d]# yum list all
```

### 9.卸载挂载目录

```
umount /mut/cdrom/
```

## 二.挂载本地ISO文件方式

### 1.上传iso镜像文件到Linux本地

### 2.创建挂载路径 /mut/iso

```
[root@localhost /]# mkdir /mnt/iso
```

### 3.把镜像挂载在/mnt/iso路径下

```
[root@localhost /]# mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/iso
mount: /dev/sr0 写保护，将以只读方式挂载
```

### 4.查看挂载是否成功 df -h

```
[root@localhost cdrom]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.6M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   11G  2.5G  8.6G   22% /
/dev/sda1               1014M  151M  864M   15% /boot
/dev/mapper/centos-home  4.0G   33M  4.0G    1% /home
tmpfs                    182M     0  182M    0% /run/user/0
/dev/sr0                 4.4G  4.4G     0  100% /mnt/iso
```

### 5.备份yum源

#### 5.1进入yum源目录

```
[root@localhost /]# cd /etc/yum.repos.d/
```

#### 5.2 创建备份文件夹backup

```
[root@localhost yum.repos.d]# mkdir -pv backup
```

#### 5.3 备份到backup文件夹

```
[root@localhost yum.repos.d]# mv ./*.repo ./backup
```

### 6.创建yum更新源local.repo

```
[root@localhost yum.repos.d]# vi local.repo
```

#### 6.1编写local.repo yum源

```
[LocalRepo]
name=LocalRepo
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
```

命令含义：

\[LocalRepo] :表示一个yum源配置段的名称，可以自定义。

name:表示该yum源的名称 baseurl:表示yum源的目录，使用file:///表示指向的是本地文件系统上的目录，注意：有三个斜杠。 enabled:表示该yum配置段是否生效，1表示生效，0表示无效 gpgcheck:表示是否对yum源指定的软件包进行安全校验，0表示不校验，本地挂载的镜像可以认为软件就是安全的，不必校验；

gpgkey：表示公钥验证地址，对gpgcheck进行校验，可以不写

### 7.清除yum源的缓存

```
[root@localhost yum.repos.d]# yum clean all
已加载插件：fastestmirror
正在清理软件源： LocalRepo
Cleaning up list of fastest mirrors
Other repos take up 169 M of disk space (use --verbose for details)

```

### 8.查看加载的yum源，如果列出很多，说明加载成功

```
[root@localhost yum.repos.d]# yum list all
```

### 9.卸载挂载目录

```
umount /mnt/iso
```

参考链接：

{% embed url="<https://www.jb51.net/article/141402.htm>" %}


# CentOS防火墙

### firewalld 防火墙状态命令

命令：`systemctl status firewalld`

执行上述命令，即可查看当前防火墙的状态。 如果防火墙的状态参数Active是active (running)，则防火墙为开启状态。如果防火墙的状态参数是inactive (dead)，则防火墙为关闭状态。 实例：

```cmd
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
```

上述例子中防火墙Active为inactive (dead)，所以防火墙处于关闭状态。

```cmd
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2023-07-04 18:06:58 CST; 5s ago
     Docs: man:firewalld(1)
 Main PID: 16208 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─16208 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

Jul 04 18:06:58 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 04 18:06:58 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jul 04 18:06:58 localhost.localdomain firewalld[16208]: WARNING: AllowZoneDrifting is enabled. This is considered...now.
Hint: Some lines were ellipsized, use -l to show in full.
```

上述例子中防火墙Active为inactive (running)，所以防火墙处于开启状态。

### 查看开放规则

命令`sudo firewall-cmd --list-all`

```cmd
[root@localhost ~]# sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: dhcpv6-client ssh
  ports: 443/tcp 19988/tcp 26084/tcp 7800/tcp 35601/tcp 35601/udp 8008/tcp 5555/tcp 8181/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
```

上述例子中可以看到当前的防火墙配置如下：

* 区域（Zone）：public（活动状态）
* 默认目标（Target）：default
* ICMP反转（icmp-block-inversion）：未启用
* 接口（Interfaces）：eth0、eth1
* 源地址（Sources）：无
* 服务（Services）：dhcpv6-client、ssh
* 端口（Ports）：443/tcp、19988/tcp、26084/tcp、7800/tcp、35601/tcp、35601/udp、8008/tcp、5555/tcp、8181/tcp
* 协议（Protocols）：无
* 伪装（Masquerade）：未启用
* 转发端口（Forward-ports）：无
* 源端口（Source-ports）：无
* ICMP阻塞（ICMP-blocks）：无
* Rich规则（Rich rules）：无

这些配置表示在public区域中，允许通过防火墙的服务有dhcpv6-client和ssh，允许通过的端口有443/tcp、19988/tcp、26084/tcp、7800/tcp、35601/tcp、35601/udp、8008/tcp、5555/tcp、8181/tcp。

### 放通(关闭)端口

参数说明：

firewall-cmd:是linux提供的操作firewall的一个工具

\--permanent:将规则永久性地添加到防火墙配置中，使其在系统重启后保持有效。

\--add-port:从防火墙规则中添加指定的端口

\--remove-port=:从防火墙规则中移除指定的端口

\--add-service= : 从防火墙规则中添加指定的服务。

\--remove-service=: 从防火墙规则中移除指定的服务。

\--reload: 重新加载防火墙配置，以使新的规则生效

#### 放开端口

开放445端口，可以使用以下命令：

```
sudo firewall-cmd --zone=public --add-port=445/tcp --permanent
```

这将在public区域中永久允许TCP协议的445端口通过防火墙。请确保在执行此命令之前已经了解了相关安全风险，并且只在必要时开放端口。

执行完上述命令后，使用`--reload`选项重新加载防火墙配置，使更改生效：

```
sudo firewall-cmd --reload
```

这样就成功开放了445端口。

#### 关闭端口

关闭445端口并阻止通过防火墙，

1. 使用以下命令将445端口从防火墙规则中删除：

   ```
   sudo firewall-cmd --zone=public --remove-port=445/tcp --permanent
   ```

   这将从防火墙规则中删除TCP协议的445端口。
2. 重新加载防火墙配置以使更改生效：

   ```
   sudo firewall-cmd --reload
   ```

   现在，445端口将被防火墙阻止，并且无法通过该端口进行连接。

### 放通(关闭)服务

#### 开放服务

开放SSH服务并允许通过防火墙，

1. 确保防火墙允许SSH服务通过。使用命令添加SSH服务到防火墙规则：

   ```
   sudo firewall-cmd --zone=public --add-service=ssh --permanent
   ```

   这将在防火墙规则中添加SSH服务。
2. 执行完上述命令后，使用`--reload`选项重新加载防火墙配置，使更改生效：

   ```
   sudo firewall-cmd --reload
   ```

   现在，SSH服务将通过防火墙，并且您应该能够通过SSH远程连接到系统。

#### 关闭服务

关闭SSH服务并阻止通过防火墙，请按照以下步骤进行操作：

1. 使用以下命令将SSH服务从防火墙规则中删除：

   ```
   sudo firewall-cmd --zone=public --remove-service=ssh --permanent
   ```

   这将从防火墙规则中删除SSH服务。
2. 重新加载防火墙配置以使更改生效：

   ```
   sudo firewall-cmd --reload
   ```

   现在，SSH服务将被防火墙阻止，并且无法通过SSH进行远程连接。

### 查询端口

查询8080端口是否开放

`firewall-cmd --query-port=8080/tcp`

```
[root@185 ~]# firewall-cmd --query-port=8080/tcp
no
```

返回no表示没有开放

返回yes表示已经开放

### 开启或关闭防火墙命令

* 开启命令：`systemctl start firewalld`
* 临时关闭命令：`systemctl stop firewalld`（服务器重启后会重新启动）
* 永久关闭命令：`systemctl disable firewalld`（服务器重启后会不会启动）
* 查看防火墙状态命令：\`\`systemctl status firewalld


# 创建systemd service服务

## 创建服务

编写 Systemd 服务文件是一种在 Linux 中管理系统服务的标准方法。下面是一个简单的示例，展示了如何编写一个 Systemd 服务文件：

### 1.创建服务文件

首先，使用你喜欢的文本编辑器创建一个新的服务文件。通常情况下，这些文件存储在 `/etc/systemd/system/` 目录下，并以 `.service` 为扩展名。例如，我们可以创建一个名为 `my_service.service` 的文件。

```bash
vi /etc/systemd/system/my_service.service
```

### 2.编写服务文件

在编辑器中，添加以下内容作为你的服务文件模板：

```plaintext
[Unit]
Description=My Custom Service
After=network.target

[Service]
Type=simple
ExecStart= /usr/bin/python3 /path/to/your/script.py
Restart=always

[Install]
WantedBy=multi-user.target
```

* `[Unit]` 部分用于定义单元的属性，如描述和依赖关系。
* `[Service]` 部分用于指定服务的类型、启动命令和重启策略。
* `[Install]` 部分用于指定服务的安装位置，例如在哪个 target 下启用该服务。

确保将 `/path/to/your/script.py` 替换为你的 Python 脚本的实际路径。

### 3.保存文件

保存并退出编辑器。

### 4.重新加载 Systemd 配置

运行以下命令以重新加载 Systemd 配置文件：

```bash
sudo systemctl daemon-reload
```

这样做可以使 Systemd 意识到新的服务文件。

### 5.启动服务

使用以下命令启动你的服务：

```bash
sudo systemctl start my_service.service
```

如果你想要开机自启动，可以使用以下命令：

```bash
sudo systemctl enable my_service.service
```

现在，你的 Python 脚本应该作为一个 Systemd 服务在后台运行了。

## 查看日志

要查看服务的日志，你可以使用 `journalctl` 命令。以下是一些常用的选项：

### 1.**查看特定服务的日志**：

```bash
journalctl -u your_service_name.service
```

将 `your_service_name.service` 替换为你要查看的服务名称。

### 2.**实时查看日志**：

```bash
journalctl -u your_service_name.service -f
```

这会实时显示服务的日志输出。按 `Ctrl + C` 可以退出实时查看。

### 3.**查看最近的日志条目**：

```bash
journalctl -u your_service_name.service --since "1 hour ago"
```

这会显示最近一小时内的日志条目。你可以更改 `1 hour ago` 为其他时间范围，如 `1 day ago`、`30 minutes ago` 等。

### 4.**按照时间戳排序**：

```bash
journalctl -u your_service_name.service --since "1 hour ago" --utc
```

添加 `--utc` 标志可以确保按照 UTC 时间戳排序。

### 5.**以更简洁的格式显示日志**：

```bash
journalctl -u your_service_name.service --since "1 hour ago" --no-pager
```

添加 `--no-pager` 标志可以在终端中显示完整的日志内容，而不是使用分页器显示。

通过这些命令，你可以方便地查看和分析你的服务日志，以便进行故障排除和监视服务的运行情况。


# Ubuntu


# Ubuntu 24.04 server 安装

### 1.开机进入引导界面后，会有安装服务和测试内存两个选择，选择第一个进行安装。

![img](https://pic.chjina.com/2024/08/19/476eb5e6473576881f4ebca0d92101ef.jpeg)

### 2.这里的语言选择的是安装过程中的语言，默认使用英文就好。

![img](https://pic.chjina.com/2024/08/19/98fdb28019f498eca58add6810fd01b2.jpg)

### 3.配置键盘布局，默认即可。

![](https://pic.chjina.com/2024/08/19/7d9e7ac0d7c5be6d338492bdc84200b8.jpg)

### 4.安装类型这里我们一般都会选择第一个Ubuntu server

![img](https://pic.chjina.com/2024/08/19/e52c86374fec2c10468c31dc89ec4659.jpg)

### 5.网卡设置，一般服务器都是配置固定IP，再进行后续安装。

#### 5.1选择ipv4。

![img](https://pic.chjina.com/2024/08/19/0321323f4339ad46dacb07f9998d1c51.jpg)

#### 5.2进入ipv4配置界面

![img](https://pic.chjina.com/2024/08/19/aacdb6a7e9440d063f60de92e1517f9e.jpg)

#### 5.3选择静态设置

![img](https://pic.chjina.com/2024/08/19/95754bb655a803cdc5606cccfebb420a.jpg)

#### 5.4配置地址

```
Subnet：子网段 192.168.1.0/24
Address：IP地址 192.168.1.2
Gateway：网关  192.168.1.1
Name servers：域名服务器，多个可以使用逗号隔开 223.5.5.5
Search domains：域（非必填）
```

![img](https://pic.chjina.com/2024/08/19/0985d351f96bf18ea8cd56d814d0703a.jpg)

### 6确认后点击下一步

![img](https://pic.chjina.com/2024/08/19/0b35c139b2a698f079e99d82026cafb8.jpg)

### 7.配置代理，默认为空即可

![img](https://pic.chjina.com/2024/08/19/40e7dcf03fd73daffd9ac90db6b2080e.jpg)

### 8.配置安装源，如果服务器无法连接互联网的默认即可，也可以配置国内的阿里云的镜像源。后期更新系统软件，会快些。当然安装完系统也可以自行配置。

```
https://mirrors.aliyun.com/ubuntu/
```

![img](https://pic.chjina.com/2024/08/19/14f42d9b66f26056759ff30156adc2b7.jpg)

#### 8.1我这里为因为无法连接互联网，提示无法访问安装源。点击确定

![img](https://pic.chjina.com/2024/08/19/18ceba2d06dff4935cf8b410d2be11c8.jpg)

### 9.存储配置，默认即可，如需要特殊配置，可以选择下面的自定义。

![img](https://pic.chjina.com/2024/08/19/8e7afa4430de2793219fc480c538b468.jpg)

### 10.默认自动分区，确定下一步

![img](https://pic.chjina.com/2024/08/19/2a8b9eb16935823ad813ca60976b6936.jpg)

#### 10.1提示需要格式化硬盘，确保硬盘数据都备份，点击done

![img](https://pic.chjina.com/2024/08/19/2617094a279e23b27fdf03313ecb0860.jpg)

### 11设置用户名密码，这里不能设置root用户，

![bdb0753dd28844b49a6c2f0339583b36](https://pic.chjina.com/2024/08/19/4be45a522b9ded7b229e92f5942a8b2c.png)

### 12.是否订阅pro计划，是Ubuntu推出的付费计划。跳过即可

![img](https://pic.chjina.com/2024/08/19/35f0ce90857ccf5a125512e20a17db49.jpg)

### 13.选择安装ssh server 后续可以使用ssh登录即可。

![img](https://pic.chjina.com/2024/08/19/f27596806fd35b438379ff319868509b.jpg)

### 14.正在安装系统

![img](https://pic.chjina.com/2024/08/19/eb2cde20475ff7d253e1ef7d3632918c.jpg)

### 15.安装完毕，选择重启系统

![img](https://pic.chjina.com/2024/08/19/2c75006fac53e51f54c6e92afd8e11ab.jpg)


# Ubuntu安装ssh

### Ubuntu主机联网

#### 1.更新下软件包

```
sudo apt update
```

#### 2.安装ssh服务端

```
sudo apt-get install openssh-server
```

#### 3.查看ssh服务端运行状态

```
sudo systemctl status ssh
```

#### 4.测试 client能否ssh登录到Ubuntu，如不能连接到Ubuntu，尝试放通Ubuntu防火墙

```
sudo ufw allow ssh
```

### Ubuntu主机不能联网

[点击下载离线安装包](https://drive.chjina.com/ISO/Linux/Ubuntu/deb%E5%8C%85/sshd/)

上传到Ubuntu主机内

安装

```
sudo -dpkg dpkg -i openssh-server.deb
sudo -dpkg dpkg -i openssh-sftp-server.deb 
```


# Ubuntu修改ip地址

Ubuntu 网卡的配置文件在`/etc/netplan/`目录下

## 1.修改为静态地址

一般为`/etc/netplan/50-installer-config.yaml`

```yaml
# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
  version: 2
  renderer: networkd  # 使用 systemd-networkd 管理网络
  ethernets:
    ens33:
      dhcp4: false    # 显式关闭 DHCP
      addresses:
        - 192.168.144.12/24  # 静态 IPv4 地址
      nameservers:
        addresses: [223.5.5.5]  # DNS 服务器（阿里 DNS）
        search: []      # 空搜索域列表
      routes:
        - to: default
          via: 192.168.144.2  # 默认网关

```

使用vi 编辑器进行更改

```
sudo vi /etc/netplan/50-cloud-init.yaml

然后输入密码
```

按i键进入编辑模式进行修改，修改完后按键盘的`Esc`推出编辑模式，按`：wq`进行保存。

### YAML语法有非常严格的格式

1. **格式标准化**
   * 所有缩进统一为 **2 个空格**（YAML 标准）
   * 删除冗余的垂直空行，保持结构紧凑
   * 添加简洁注释（可选，用于解释关键配置）

#### **验证与应用步骤**

**检查语法合法性**

```bash
sudo netplan generate  # 无输出表示语法正确
```

然后输入sudo netplan apply 使网卡生效

```bash
sudo netplan apply
```

## 2.如果将配置修改为DHCP

```yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
  version: 2
  ethernets:
    ens33:
      dhcp4: yes  # 启用DHCP
      # 下面的设置在DHCP模式下将被忽略
      # addresses:
      # - 192.168.144.12/24
      # nameservers:
      #   addresses:
      #   - 223.5.5.5
      # search: []
      routes:
      # 默认路由通常由DHCP服务器提供，因此也可以省略
      # - to: default
      #   via: 192.168.144.2
```

然后输入sudo netplan apply 使网卡生效

```
sudo netplan apply
```


# Docker


# Docker常用命令

### 修改Docker 镜像源

#### 1.编辑一下文件

```
sudo vi /etc/docker/daemon.json
```

#### 2.修改成一下配置

```
{
  "registry-mirrors": [
    "你自己的加速地址",
    "https://dh.chjina.com",
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
```

#### 3.重启docker

```
sudo systemctl daemon-reload
sudo systemctl restart docker
```

### Docker CLI详解

例：

```
docker run -d --restart=unless-stopped -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" alist666/alist:latest
```

#### 核心结构

```
docker run [参数] 镜像名:标签
```

表示启动一个新的 Docker 容器，使用 `alist666/alist:latest` 镜像的最新版本。

#### 参数详解

1. **后台运行模式**

   ```bash
   -d
   ```

   * 以守护进程（detached）模式运行容器，即容器在后台运行。
2. **自动重启策略**

   ```
   --restart=unless-stopped
   ```

   * 容器异常退出时会自动重启（如程序崩溃、系统重启等）。
   * 如果用户手动停止容器（`docker stop`），则不会自动重启。
3. **数据卷映射**

   ```
   -v /etc/alist:/opt/alist/data
   ```

   * 前面是宿主机的目录。后面是容器的目录一般修改前面的宿主机的目录即可，修改容器的目录可能会无法启动。将宿主机的 `/etc/alist` 目录挂载到容器的 `/opt/alist/data`。
   * **作用**：配置文件和数据持久化（重启容器不丢失数据）。
   * **注意**：需确保宿主机 `/etc/alist` 目录存在，否则会自动创建空目录。
4. **端口映射**

   ```
   -p 5244:5244
   ```

   * 将宿主机的 5244 端口映射到容器的 5244 端口。
   * **访问方式**：通过 `http://宿主机IP:5244` 访问 Alist 服务。
5. **用户权限配置**

   ```
   -e PUID=0 -e PGID=0
   ```

   * 设置容器内进程的运行用户权限。
   * `PUID=0` 和 `PGID=0` 表示以 root 用户运行（0 是 root 的 ID）。
   * **安全问题**：非容器作者推荐不建议使用此命令
6. **文件权限掩码**

   ```
   -e UMASK=022
   ```

   * 控制新建文件的默认权限（UNIX 权限掩码）。
   * `022` 表示文件权限为 `755`（目录）和 `644`（文件）。
7. **容器命名**

   ```
   --name="alist"
   ```

   * 将容器命名为 `alist`，便于通过名称管理容器（如 `docker stop alist`）。

#### 镜像信息

```
alist666/alist:latest
```

* 使用 Docker Hub 上用户 `alist666` 维护的 Alist 镜像。
* `latest` 标签表示使用最新版本（生产环境建议指定稳定版本号）。

### Docker Compose 详解

```
version: '3.3'                 # 指定 Docker Compose 版本
services:                     # 定义服务列表
  alist:                      # 服务名称（自定义）
    image: 'alist666/alist:beta' # 指定镜像（此处为 beta 测试版）
    container_name: alist     # 容器命名（覆盖默认生成的名称）
    volumes:                  # 数据卷配置
      - '/etc/alist:/opt/alist/data'  # 宿主机目录映射，前面的是宿主机，后面是容器内
    ports:                    # 端口映射
      - '5244:5244'           # 宿主机端口:容器端口
    environment:              # 环境变量
      - PUID=0                # 用户权限
      - PGID=0                # 用户组权限
      - UMASK=022             # 文件权限掩码
    restart: unless-stopped   # 重启策略 容器异常退出时会自动重启（如程序崩溃、系统重启等）手动
```

### Docker 常用命令

```
查看运⾏中的容器
sudo docker ps

查看所有容器
docker ps -a

搜索镜像
docker search nginx

下载镜像
docker pull nginx

下载指定版本镜像
docker pull nginx:1.26.0

查看所有镜像
docker images

删除指定id的镜像
docker rmi e784f4560448

运⾏⼀个新容器
docker run nginx

停⽌容器
docker stop keen_blackwell

启动容器
docker start 592

重启容器
docker restart 592

查看容器资源占⽤情况
docker stats 592

查看容器⽇志
docker logs 592

删除指定容器
docker rm 592

强制删除指定容器
docker rm -f 592
 
后台启动容器
docker run -d --name mynginx nginx
 
后台启动并暴露端⼝
docker run -d --name mynginx -p 80:80 nginx
 
进⼊容器内部
docker exec -it mynginx /bin/bash
 
提交容器变化打成⼀个新的镜像
docker commit -m "update index.html" mynginx mynginx:v1.0
 
保存镜像为指定⽂件
docker save -o mynginx.tar mynginx:v1.0
 
删除多个镜像
docker rmi bde7d154a67f 94543a6c1aef e784f4560448
```


# UFW管理Docker端口

&#x20;       目前新的解决方案只需要修改一个 UFW 配置文件即可，Docker 的所有配置和选项都保持默认。

修改 UFW 的配置文件 `/etc/ufw/after.rules`，在最后添加上如下规则：

```
# BEGIN UFW AND DOCKER
*filter
:ufw-user-forward - [0:0]
:ufw-docker-logging-deny - [0:0]
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ufw-user-forward

-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16

-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN

-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12

-A DOCKER-USER -j RETURN

-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] "
-A ufw-docker-logging-deny -j DROP

COMMIT
# END UFW AND DOCKER
```

然后重启 UFW，`sudo systemctl restart ufw`。现在外部就已经无法访问 Docker 发布出来的任何端口了，但是容器内部以及私有网络地址上可以正常互相访问，而且容器也可以正常访问外部的网络。**可能由于某些未知原因，重启 UFW 之后规则也无法生效，请重启服务器。**

原文链接：[chaifeng/ufw-docker: To fix the Docker and UFW security flaw without disabling iptables](https://github.com/chaifeng/ufw-docker?tab=readme-ov-file#解决-ufw-和-docker-的问题)


# KMS激活命令

KMS激活windows和office


# kms命令激活office

使用大客户版的office软件，早期在msdn上下载的带vol标示的，

### 1.进入到自己电脑office的安装目录

一般是`C:\Program Files\Microsoft Office\`这个目录下会有个Office16 或者其他的

office16是office2016，office15就是2013，office14就是2010

里面会有个`OSPP.VBS`的文件，如下图所示:

![image-20220905101443553](https://pic.chjina.com/2022/09/05/OSPP.png)

使用管理员打开CMD命令窗口，

#### 1.1输入你的office的地址，就是你有`OSPP.VBS`的那个目录

```
cd "C:\Program Files (x86)\Microsoft Office\Office16"
```

### 2.设置KMS服务器的地址

```
cscript ospp.vbs /sethst:kms.chjina.com
```

### 3.执行激活命令

```
cscript ospp.vbs /act
```

如有提示以下提示代表激活成功

```
<Product activation successful>
```

```
Installed product key detected - attempting to activate the following product:
SKU ID: b322da9c-a2e2-4058-9e4e-f59a6970bd69
LICENSE NAME: Office 15, OfficeProPlusVL_KMS_Client edition
LICENSE DESCRIPTION: Office 15, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: GVGXT
<Product activation successful>
---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: d450596f-894d-49e0-966a-fd39ed4c4c64
LICENSE NAME: Office 16, Office16ProPlusVL_KMS_Client edition
LICENSE DESCRIPTION: Office 16, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: WFG99
<Product activation successful>
---------------------------------------
Installed product key detected - attempting to activate the following product:
SKU ID: e13ac10e-75d0-4aff-a0cd-764982cf541c
LICENSE NAME: Office 15, OfficeVisioProVL_KMS_Client edition
LICENSE DESCRIPTION: Office 15, VOLUME_KMSCLIENT channel
Last 5 characters of installed product key: RM3B3
<Product activation successful>
---------------------------------------
---------------------------------------
---Exiting-----------------------------
```


# kms命令激活windows系统

**背景：**

1.VL系统，全新安装，或之前没有手动安装密钥，

### 激活

使用管理员权限的cmd，输入以下命令。会全自动激活

```
slmgr /skms kms.chjina.com && slmgr /ato
```

### 未成功

如果之前改过密钥，或者使用其他工具激活过系统。

可在[微软官网](https://docs.microsoft.com/zh-cn/windows-server/get-started/kms-client-activation-keys)查看kms密钥，或在文章末尾处查找

#### 查看系统版本

如果您不知道您的系统是什么版本，可在命令行输入以下命令查看

```
wmic os get caption
```

#### 更改密钥

查看您的系统，并输入对应的密钥

```
slmgr /ipk xxxxx-xxxxx-xxxxx-xxxxx
```

重新执行下一键激活命令即可

```
slmgr /skms kms.chjina.com && slmgr /ato
```

### 通用批量许可证密钥 (GVLK) <a href="#generic-volume-license-keys-gvlk" id="generic-volume-license-keys-gvlk"></a>

**Windows Server（LTSC 版本）**

**Windows Server 2022**

| 操作系统版本                         | KMS 客户端产品密钥                   |
| ------------------------------ | ----------------------------- |
| Windows Server 2022 Datacenter | WX4NM-KYWYW-QJJR4-XV3QB-6VM33 |
| Windows Server 2022 Standard   | VDYBN-27WPP-V4HQT-9VMD4-VMK7H |

**Windows Server 2019**

| 操作系统版本                         | KMS 客户端产品密钥                   |
| ------------------------------ | ----------------------------- |
| Windows Server 2019 Datacenter | WMDGN-G9PQG-XVVXX-R3X43-63DFG |
| Windows Server 2019 Standard   | N69G4-B89J2-4G8F4-WWYCC-J464C |
| Windows Server 2019 Essentials | WVDHN-86M7X-466P6-VHXV7-YY726 |

**Windows Server 2016**

| 操作系统版本                         | KMS 客户端产品密钥                   |
| ------------------------------ | ----------------------------- |
| Windows Server 2016 Datacenter | CB7KF-BWN84-R7R2Y-793K2-8XDDG |
| Windows Server 2016 Standard   | WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY |
| Windows Server 2016 Essentials | JCKRF-N37P4-C2D82-9YXRT-4M63B |

**Windows Server（半年频道版本）**

**Windows Server，版本 20H2、2004、1909、1903 和 1809**

| 操作系统版本                    | KMS 客户端产品密钥                   |
| ------------------------- | ----------------------------- |
| Windows Server Datacenter | 6NMRW-2C8FM-D24W7-TQWMY-CWH2D |
| Windows Server Standard   | N2KJX-J94YW-TQVFB-DG9YT-724CC |

**Windows 11 和 Windows 10（半年频道版本）**

有关受支持的版本和服务终止日期的信息，请参阅 [Windows 生命周期情况说明书](https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet)。

| 操作系统版本                                  | KMS 客户端产品密钥                   |
| --------------------------------------- | ----------------------------- |
| Windows 11 专业版 Windows 10 专业版           | W269N-WFGWX-YVC9B-4J6C9-T83GX |
| Windows 11 专业版 N Windows 10 专业版 N       | MH37W-N47XK-V7XM9-C7227-GCQG9 |
| Windows 11 专业工作站版 Windows 10 专业工作站版     | NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J |
| Windows 11 专业工作站版 N Windows 10 专业工作站版 N | 9FNHH-K3HBT-3W4TD-6383H-6XYWF |
| Windows 11 专业教育版 Windows 10 专业教育版       | 6TP4R-GNPTD-KYYHQ-7B7DP-J447Y |
| Windows 11 专业教育版 N Windows 10 专业教育版 N   | YVWGF-BXNMC-HTQYQ-CPQ99-66QFC |
| Windows 11 教育版 Windows 10 教育版           | NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 |
| Windows 11 教育版 N Windows 10 教育版 N       | 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ |
| Windows 11 企业版 Windows 10 企业版           | NPPR9-FWDCX-D2C8J-H872K-2YT43 |
| Windows 11 企业版 N Windows 10 企业版 N       | DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 |
| Windows 11 企业版 G Windows 10 企业版 G       | YYVX9-NTFWV-6MDM3-9PT4T-4M68B |
| Windows 11 企业版 G N Windows 10 企业版 G N   | 44RPN-FTY23-9VTTB-MP9BX-T84FV |

**Windows 10（LTSC/LTSB 版本）**

**Windows 10 LTSC 2021 和 2019**

| 操作系统版本                                                | KMS 客户端产品密钥                   |
| ----------------------------------------------------- | ----------------------------- |
| Windows 10 企业版 LTSC 2021 Windows 10 企业版 LTSC 2019     | M7XTQ-FN8P6-TTKYV-9D4CC-J462D |
| Windows 10 企业版 N LTSC 2021 Windows 10 企业版 N LTSC 2019 | 92NFX-8DJQP-P6BBQ-THF9C-7CG2H |

**Windows 10 LTSB 2016**

| 操作系统版本                     | KMS 客户端产品密钥                   |
| -------------------------- | ----------------------------- |
| Windows 10 企业版 LTSB 2016   | DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ |
| Windows 10 企业版 N LTSB 2016 | QFFDN-GRT3P-VKWWX-X7T3R-8B639 |

**Windows 10 LTSB 2015**

| 操作系统版本                     | KMS 客户端产品密钥                   |
| -------------------------- | ----------------------------- |
| Windows 10 企业版 2015 LTSB   | WNMTR-4C88C-JK8YV-HQ7T2-76DF9 |
| Windows 10 企业版 2015 LTSB N | 2F77B-TNFGY-69QQF-B8YKP-D69TJ |

**早期版本的 Windows Server**

**Windows Server 版本 1803**

| 操作系统版本                    | KMS 客户端产品密钥                   |
| ------------------------- | ----------------------------- |
| Windows Server Datacenter | 2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG |
| Windows Server Standard   | PTXN8-JFHJM-4WC78-MPCBR-9W4KR |

**Windows Server 版本 1709**

| 操作系统版本                    | KMS 客户端产品密钥                   |
| ------------------------- | ----------------------------- |
| Windows Server Datacenter | 6Y6KB-N82V8-D8CQV-23MJW-BWTG6 |
| Windows Server Standard   | DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4 |

**Windows Server 2012 R2**

| 操作系统版本                            | KMS 客户端产品密钥                   |
| --------------------------------- | ----------------------------- |
| Windows Server 2012 R2 Standard   | D2N9P-3P6X9-2R39C-7RTCD-MDVJX |
| Windows Server 2012 R2 Datacenter | W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 |
| Windows Server 2012 R2 Essentials | KNC87-3J2TX-XB4WP-VCPJV-M4FWM |

**Windows Server 2012**

| 操作系统版本                             | KMS 客户端产品密钥                   |
| ---------------------------------- | ----------------------------- |
| Windows Server 2012                | BN3D2-R7TKB-3YPBD-8DRP2-27GG4 |
| Windows Server 2012 N              | 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY |
| Windows Server 2012 单语言版           | 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ |
| Windows Server 2012 特定国家/地区版       | 4K36P-JN4VD-GDC6V-KDT89-DYFKP |
| Windows Server 2012 Standard       | XC9B7-NBPP2-83J2H-RHMBY-92BT4 |
| Windows Server 2012 MultiPoint 标准版 | HM7DN-YVMH3-46JC3-XYTG7-CYQJJ |
| Windows Server 2012 MultiPoint 高级版 | XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G |
| Windows Server 2012 Datacenter     | 48HP8-DN98B-MYWDG-T2DCC-8W83P |

**Windows Server 2008 R2**

| 操作系统版本                                  | KMS 客户端产品密钥                   |
| --------------------------------------- | ----------------------------- |
| Windows Server 2008 R2 Web 版            | 6TPJF-RBVHG-WBW2R-86QPH-6RTM4 |
| Windows Server 2008 R2 HPC 版            | TT8MH-CG224-D3D7Q-498W2-9QCTX |
| Windows Server 2008 R2 标准版              | YC6KT-GKW9T-YTKYR-T4X34-R7VHC |
| Windows Server 2008 R2 企业版              | 489J6-VHDMP-X63PK-3K798-CPX3Y |
| Windows Server 2008 R2 Datacenter       | 74YFP-3QFB3-KQT8W-PMXWJ-7M648 |
| 面向基于 Itanium 系统的 Windows Server 2008 R2 | GT63C-RJFQ3-4GMB6-BRFB9-CB83V |

**Windows 2008 Server**

| 操作系统版本                                 | KMS 客户端产品密钥                   |
| -------------------------------------- | ----------------------------- |
| Windows Web Server 2008                | WYR28-R7TFJ-3X2YQ-YCY4H-M249D |
| Windows Server 2008 标准版                | TM24T-X9RMF-VWXK6-X8JC9-BFGM2 |
| 不带 Hyper-V 的 Windows Server 2008 标准版   | W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ |
| Windows Server 2008 企业版                | YQGMW-MPWTJ-34KDK-48M3W-X4Q6V |
| 不带 Hyper-V 的 Windows Server 2008 企业版   | 39BXF-X8Q23-P2WWT-38T2F-G3FPG |
| Windows Server 2008 HPC                | RCTX3-KWVHP-BR6TB-RB6DM-6X7HP |
| Windows Server 2008 Datacenter         | 7M67G-PC374-GR742-YH8V4-TCBY3 |
| 不带 Hyper-V 的 Windows Server 2008 数据中心版 | 22XQ2-VRXRG-P8D42-K34TD-G3QQC |
| 面向基于 Itanium 系统的 Windows Server 2008   | 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK |

**早期版本的 Windows**

**Windows 8.1**

| 操作系统版本            | KMS 客户端产品密钥                   |
| ----------------- | ----------------------------- |
| Windows 8.1 专业版   | GCRJD-8NW9H-F2CDX-CCM8D-9D6T9 |
| Windows 8.1 专业版 N | HMCNV-VVBFX-7HMBH-CTY9B-B4FXY |
| Windows 8.1 企业版   | MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 |
| Windows 8.1 企业版 N | TT4HM-HN7YT-62K67-RGRQJ-JFFXW |

**Windows 8**

| 操作系统版本          | KMS 客户端产品密钥                   |
| --------------- | ----------------------------- |
| Windows 8 专业版   | NG4HW-VH26C-733KW-K6F98-J8CK4 |
| Windows 8 专业版 N | XCVCF-2NXM9-723PB-MHCB7-2RYQQ |
| Windows 8 企业版   | 32JNW-9KQ84-P47T8-D8GGY-CWCK7 |
| Windows 8 企业版 N | JMNMF-RHW7P-DMY6X-RF3DR-X2BQT |

**Windows 7**

| 操作系统版本          | KMS 客户端产品密钥                   |
| --------------- | ----------------------------- |
| Windows 7 专业版   | FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 |
| Windows 7 专业版 N | MRPKT-YTG23-K7D7T-X2JMM-QY7MG |
| Windows 7 专业版 E | W82YF-2Q76Y-63HXB-FGJG9-GF7QX |
| Windows 7 企业版   | 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH |
| Windows 7 企业版 N | YDRBP-3D83W-TY26F-D46B2-XCKRJ |
| Windows 7 企业版 E | C29WB-22CC8-VJ326-GHFJW-H9DH4 |

##


# 办公技巧


# WPS右键新建文档保存弹出兼容性警告问题解决

**适用版本**：WPS 11.8.2.X

**适用系统**：64位Windows系统（WPS默认安装路径）

**问题现象**：桌面右键新建Word/Excel等WPS关联文档，打开保存时弹出兼容性警告，提示文件格式包含不兼容功能，需选择是否保持格式或保留功能。

![img](/files/acc4dd2f2a1239d6aac865778d5390c37b207682)

## 一、基础解决方法：WPS自带配置修复

适用于普通用户，先通过WPS自身配置工具重新关联文件，步骤如下：

{% stepper %}
{% step %}

## 打开配置工具

打开WPS，点击左上角「WPS文字/表格/演示」，找到右上角**小齿轮图标**；
{% endstep %}

{% step %}

## 进入兼容设置

选择「配置与修复工具」→「高级」→「兼容设置」；
{% endstep %}

{% step %}

## 重新勾选兼容选项

找到兼容相关选项：**WPS Office兼容第三方系统和软件**、**与Microsoft Office 2003/2007/2010兼容**，将这些选项**全部取消勾选后重新勾选**；
{% endstep %}

{% step %}

## 重新关联文件并确认

勾选下方文件关联选项（Word/Excel/PDF/图片等），点击「确定」完成配置。

![img](/files/98c9e88fcf451d5416850a93d688e95989631e91)
{% endstep %}
{% endstepper %}

## 二、问题根源分析

若基础方法无效，大概率是**注册表项版本号不匹配**导致：

1. 右键新建文档的模板路径注册表项中，版本号`%WPSVERSION%`与实际安装的WPS版本号不一致；
2. 验证方法：WPS界面按`F12`，若实际文件格式为`txt`，可确定是注册表问题；
3. 关键注册表路径（关联新建文档模板）：

   ```
   HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew
   ```

   正常项值应为：

   ```
   C:\Program Files (x86)\Kingsoft\WPS Office\%WPSVERSION%\office6\mui\zh_CN\templates\newfile.doc
   ```
4. WPS安装/升级时未自动校验并修复注册表项，覆盖安装、卸载重装均无法解决该问题。

## 三、批处理脚本修复（手动指定版本）

通过批处理修改注册表，匹配实际WPS版本号，**需以管理员身份运行**。

### 脚本代码

将第一行`11.8.2.X`替换为自身WPS实际版本号：

```bat
set "version=11.8.2.X"
set /p "user_confirm=是否使用预设版本号 %version%? (Y/N): "
if /i "%user_confirm%"=="N" (
    set /p "version=请输入自定义的版本号: "
)
reg delete "HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew" /f
reg delete "HKEY_CLASSES_ROOT\.docx\Word.Document.12\ShellNew" /f
reg delete "HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew" /f
reg delete "HKEY_CLASSES_ROOT\.xlsx\Excel.Sheet.12\ShellNew" /f 
reg add "HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew" /v "FileName" /t REG_SZ /d "C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.doc" /f
reg add "HKEY_CLASSES_ROOT\.docx\Word.Document.12\ShellNew" /v "NullFile" /t REG_SZ /d "" /f
reg add "HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew" /v "FileName" /t REG_SZ /d "C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.xls" /f
reg add "HKEY_CLASSES_ROOT\.xlsx\Excel.Sheet.12\ShellNew" /v "FileName" /t REG_SZ /d "C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.xlsx" /f
```

### 操作步骤

1. 记事本复制上述代码，保存为`*.bat`格式；
2. 右键该文件，选择「以管理员身份运行」；
3. 按提示确认版本号，执行完成后，新建文档测试是否解决问题。

## 四、批处理脚本修复（自动识别版本）

优化版脚本，可**自动读取注册表中的WPS版本号**，无需手动输入，同样**以管理员身份运行**。

### 核心注册表路径（WPS版本号存储位置）

```
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Kingsoft Office\DisplayVersion
```

### 脚本代码

```bat
@echo off
setlocal 
REM 输出警告声明
echo ————————WARNING—————————
echo 本脚本将对注册表进行操作，请确保您有足够的权限！
echo 对注册表的操作不可逆，请您确定！
echo ————————WARNING—————————
echo. 
set "regPath=HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Kingsoft Office"
set "regKey=DisplayVersion"
for /f "tokens=3" %%A in ('reg query "%regPath%" /v "%regKey%" 2^>nul') do (
    set "version=%%A"
) 
REM 询问用户是否使用默认版本号
set /p "user_confirm=是否使用当前WPS版本号%version%? (Y/N): " 
REM 根据用户输入决定版本号
if /i "%user_confirm%"=="N" (
    set /p "version=请输入自定义的版本号: "
) 
echo ——————————————————————
echo 即将删除原本的注册表项Word.Document.8、Word.Document.12、Excel.Sheet.8、Excel.Sheet.12 
REM 删除注册表项
reg delete "HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew" /f
reg delete "HKEY_CLASSES_ROOT\.docx\Word.Document.12\ShellNew" /f
reg delete "HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew" /f
reg delete "HKEY_CLASSES_ROOT\.xlsx\Excel.Sheet.12\ShellNew" /f 
REM 重新添加注册表项，使用选择或默认的版本号
echo ——————————————————————
echo 即将重新添加注册表项，注册表项内容如下：
echo 向HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew\FileName添加值C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.doc
echo 向HKEY_CLASSES_ROOT\.doc\Word.Document.12\ShellNew\FileName添加空值
echo 向HKEY_CLASSES_ROOT\.doc\Excel.Sheet.8\ShellNew\FileName添加值C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.xls
echo 向HKEY_CLASSES_ROOT\.doc\Excel.Sheet.12\ShellNew\FileName添加值C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.xlsx 
reg add "HKEY_CLASSES_ROOT\.doc\Word.Document.8\ShellNew" /v "FileName" /t REG_SZ /d "C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.doc" /f
reg add "HKEY_CLASSES_ROOT\.docx\Word.Document.12\ShellNew" /v "NullFile" /t REG_SZ /d "" /f
reg add "HKEY_CLASSES_ROOT\.xls\Excel.Sheet.8\ShellNew" /v "FileName" /t REG_SZ /d "C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.xls" /f
reg add "HKEY_CLASSES_ROOT\.xlsx\Excel.Sheet.12\ShellNew" /v "FileName" /t REG_SZ /d "C:\Program Files (x86)\Kingsoft\WPS Office\%version%\office6\mui\zh_CN\templates\newfile.xlsx" /f 
echo 全部操作完成！
pause 
endlocal
```

### 操作步骤

1. 记事本复制代码，保存为文件编码为 ANSI`*.bat`格式；
2. 右键「以管理员身份运行」，脚本自动读取WPS版本号；
3. 按提示确认版本号（可手动修改），执行完成后测试即可。

## 五、注意事项

1. 上述脚本**仅适用于64位系统+WPS默认安装路径**，大规模部署需先修改调试；
2. 注册表操作有风险，执行前建议备份注册表相关项；
3. 脚本运行后若仍有问题，检查WPS安装路径是否为`C:\Program Files (x86)\Kingsoft\WPS Office\`，若路径不同需对应修改脚本中的路径。


# 各厂商默认管理地址

## 服务器系列

| 厂商名称   | 设备型号     | 地址                    | 账号     | 密码            |
| ------ | -------- | --------------------- | ------ | ------------- |
| DEll   | IDRAC    | 192.168.0.120/24或DHCP | root   | calvin/标签密码   |
| Lenovo | IMM      | 192.168.70.125        | USERID | PASSW0RD      |
| H3C    | R4900 G3 | 192.168.1.2           | amdin  | Password@\_\_ |

## 存储系列

| 厂商名称                                 | 设备型号 | 地址                                                                      | 账号          | 密码               |
| ------------------------------------ | ---- | ----------------------------------------------------------------------- | ----------- | ---------------- |
| 惠普存储                                 | 存储   | <p>A控制器管理口IP默认为10.0.0.2<br>B控制器管理口IP默认为10.0.0.3</p>                     | manage      | ！manage          |
| 日立                                   | G350 | <p>管理口默认（可更改）IP:192.168.0.16/17<br>维护口默认（不可更改）(小扳手) IP:10.0.0.16/17</p> | maintenance | raid-maintenance |
| <p>HP 3par<br>H3C UniStor CFxxxx</p> | 存储   |                                                                         | 3paradm     | 3pardata         |

## 网络系列

| 厂商名称 | 设备型号  |  端口  | 地址                      | 账号                           | 密码                              |
| ---- | ----- | :--: | ----------------------- | ---------------------------- | ------------------------------- |
| F5   | I4600 |   -  | <https://192.168.1.254> | <p>web:admin<br>ssh:root</p> | <p>web:admin<br>ssh:default</p> |
| 天融信  | 防火墙   | eth0 | <https://192.168.1.254> | superman                     | talent                          |

## 光纤交换机

| 厂商名称    | 设备型号 | 地址          | 账号    | 密码       |
| ------- | ---- | ----------- | ----- | -------- |
| 博科光纤交换机 |      | 10.77.77.77 | admin | password |


# 清单

《塔木德》-犹太人的经济


# 空气果Fun

劫持校时域名：

`apn.airnut.com`

`apn2.airnut.com`

劫持到 Homeassistant


# 合宙Air700E780E短信转发

前几天撸了个合宙的 Air700E开发板用来做短信转发。

* Air700E(只支持移动卡)
* Air780E(支持移动,联通,电信不能收发短信，只上网)
* Air724UG(支持移动，联通，电信)

  作者的GitHub:[GitHub - 0wQ/air780e-forwarder: Air700E / Air780E / Air780EG 短信转发 (不支持电信卡, Air700E 只支持移动卡)](https://github.com/0wQ/air780e-forwarder)

官方开发板资料

* Air780E : <https://doc.openluat.com/wiki/37?wiki\\_page\\_id=4454>
* Air700E : <https://doc.openluat.com/wiki/44?wiki\\_page\\_id=4730>
* Air780EG : <https://doc.openluat.com/wiki/40?wiki\\_page\\_id=4588>

## 1.下载官方烧录工具

下载地址：<https://luatos.com/luatools/download/last>

### LuaTools 安装

1、下载[Luatools\_v2.7z](https://luatos.com/luatools/download/last)，解压后是一个文件名为Luatools\_v2.exe的运行程序。

&#x20;2、新建一个 LuaTools文件夹，将Luatools\_v2.exe拷贝或移动到LuaTools文件夹下&#x20;

3、双击 Luatools\_v2.exe开始安装，出现如下情况，点击更多信息选项，然后选择仍要运行选项即可完成安装。

&#x20;![img](https://pic.chjina.com/2025/09/27/cc8151d8f1378afbc5ba8b35c8af6497.png)&#x20;

4、运行Luatools后会提示开始升级，点击开始，进行升级，升级完成后可正常使用。

## 2.下载短信转发项目

#### 2.1下载作者的GitHub项目

[GitHub - 0wQ/air780e-forwarder: Air700E / Air780E / Air780EG 短信转发 (不支持电信卡, Air700E 只支持移动卡)](https://github.com/0wQ/air780e-forwarder)

其他项目 <https://github.com/hsSam/air780e-forwarder/>

下载下来会有两个文件夹

core是存放开发板固件

script是存放开发板脚本

soc后缀的是固件，lua后缀的是脚本

![image-20230409122118382](https://pic.chjina.com/2023/04/9/image-20230409122118382.png)

#### 2.2修改配置文件

用记事本打开script下的config.lua文件，根据文件要求改成自己的接口

![image-20230409123007331](https://pic.chjina.com/2023/04/9/image-20230409123007331.png)

参数解释：

```
 NOTIFY_TYPE = "pushdeer",
```

设置通知的类型，可以设置多个用`,`隔开，下方的配置具体的参数，配置什么通知类型，下面通知参数就填上对应的信息。

设置好详细的参数后保存即可。

## 3.刷写固件和脚本

### 3.1打开官方烧录工具

1. 勾选4G模块USB打印
2. 项目管理测试

   ![image-20230409124036415](https://pic.chjina.com/2023/04/9/image-20230409124036415.png)
3. 点击创建项目

   ![image-20230409124411614](https://pic.chjina.com/2023/04/9/image-20230409124411614.png)
4. 添加固件和脚本文件

   ![image-20230409125001888](https://pic.chjina.com/2023/04/9/image-20230409125001888.png)
5. 点击下载底层和脚本，软件提示请按住BOOT键复位设备.......

   ![image-20230409125258063](https://pic.chjina.com/2023/04/9/image-20230409125258063.png)
6. 按BOOT键和电源键，下图三个按键，从左到右依次是，BOOT键 复位键 电源键 （700E 780E通用按键）

   ![image-20230409125812217](https://pic.chjina.com/2023/04/9/image-20230409125812217.png)
7. 软件提示刷写完成，这时候拔掉数据线插上手机卡可以用了

## 4.其他说明

### 后期想改配置文件

更改config.lua配置文件，在烧录的界面，点击下载脚本就行了，不用再选底层和脚本了

### 设置来电自动启动

默认是通电按电源键启动，万一断电后，忘记按电源键启动了，后期就收不到短信了

方法：短接电源键旁边的空焊盘，可以动一个0欧的电阻或直接用焊锡点上。

![image-20230409132926088](https://pic.chjina.com/2023/04/9/image-20230409132926088.png)


# 随身WIFI

高通随身WIFI作为短信转发折腾记录


# 高通随身WIFI，短信转发自动开启WIFI，关闭数据流量

短信转发自动开启WIFI 关闭数据流量和热点

### 前提

**1.WIFI 首先root**

### 开始

#### 1.连接ADB 上传脚本文件

```
# 上传enable_wifi.sh文件到wifi棒子的/data/local/tmp/目录
adb push enable_wifi.sh /data/local/tmp/
```

#### 2.挂载 system 分区可读写

```
# 挂载 system 分区可读写
adb shell   #通过 ADB 连接到 Android 设备的命令行界面
su    #切换到超级用户 (root) 权限，这需要设备已经获取 root 权限
mount -o remount,rw /system   #将 /system 分区重新挂载为可读写模式（默认通常是只读的）


adb shell 
su
mount -o remount,rw /system
```

#### 3.配置WIFI自启动脚本 并修改权限

```
# 配置WIFI自启动脚本 并修改权限
cp -a /data/local/tmp/enable_wifi.sh /data/adb/service.d/
chmod 777 /data/adb/service.d/enable_wifi.sh
chown root:root /data/adb/service.d/enable_wifi.sh


cp -a /data/local/tmp/enable_wifi.sh /data/adb/service.d/
将/data/local/tmp/目录下的enable_wifi.sh脚本，复制到/data/adb/service.d/目录
-a参数表示保持文件的原有属性（如权限、时间戳等）进行递归复制
/data/adb/service.d/是 Magisk 等 root 工具的启动脚本目录，该目录下的脚本会在系统启动时自动执行
chmod 777 /data/adb/service.d/enable_wifi.sh
为复制后的脚本设置权限：777表示所有用户（所有者、所属组、其他用户）都拥有读、写、执行权限
这是为了确保脚本能够被系统执行（但777权限过于宽松，实际使用中755通常已足够，且更安全）
chown root:root /data/adb/service.d/enable_wifi.sh
将脚本的所有者和所属组设置为root（系统超级用户）
符合 Android 系统中系统级脚本的权限规范，避免因权限不足导致脚本无法执行
```

#### 4.选择模式

```
# 默认脚本刷入后采用热点和卡自带流量模式，如果需要使用WiFi，那么在
 
adb shell 
su
 
echo 1 > /data/adb/enable_wifi
 
# 重启设备后讲默认开启wif，关闭热点、禁用4G移动数据
 
# 1 开启wif，关闭热点、禁用4G移动数据
 
# 0 关闭WiFi，开启热点 (设置--移动数据自行ARDC开启，避免无流量的卡出问题)


adb shell连接到 Android 设备的命令行界面。
su切换到 root 权限（需要设备已 root），否则后续写入文件的操作会因权限不足失败。
echo 1 > /data/adb/enable_wifi
在/data/adb/目录下创建（或覆盖）一个名为enable_wifi的文件
向该文件写入内容1（通常1表示 “启用”，0表示 “禁用”，具体逻辑由读取该文件的程序定义）
```

```shell
# 上传enable_wifi.sh文件到wifi棒子的/data/local/tmp/目录
adb push enable_wifi.sh /data/local/tmp/
 
# 挂载 system 分区可读写
adb shell - 通过 ADB 连接到 Android 设备的命令行界面
su - 切换到超级用户 (root) 权限，这需要设备已经获取 root 权限
mount -o remount,rw /system - 将 /system 分区重新挂载为可读写模式（默认通常是只读的）


adb shell 
su
mount -o remount,rw /system
# 配置WIFI自启动脚本 并修改权限
cp -a /data/local/tmp/enable_wifi.sh /data/adb/service.d/
chmod 777 /data/adb/service.d/enable_wifi.sh
chown root:root /data/adb/service.d/enable_wifi.sh
 
 
 
# 默认脚本刷入后采用热点和卡自带流量模式，如果需要使用WiFi，那么在
 
adb shell 
su
 
echo 1 > /data/adb/enable_wifi
 
# 重启设备后讲默认开启wif，关闭热点、禁用4G移动数据
 
# 1 开启wif，关闭热点、禁用4G移动数据
 
# 0 关闭WiFi，开启热点 (设置--移动数据自行ARDC开启，避免无流量的卡出问题)
```

### enable\_wifi.sh 文件内容

enable\_wifi.sh

```enable_wifi.sh
#!/system/bin/sh

# 开关
file_path="/data/adb/enable_wifi"

# 检查文件是否存在
if [ ! -f "$file_path" ]; then
  # 如果文件不存在，创建文件并写入 "0"
  echo "0" > "$file_path"
fi

file_content=$(cat $file_path)

LOGF=/data/local/tmp/service.d/enable_wifi.log
mkdir -p $(busybox dirname "$LOGF")
rm -f $LOGF
echo "Env info:" >> $LOGF
export >> $LOGF

SVC=/system/bin/svc

switch_data(){
    while true; do
        $SVC data enable  # 启用移动数据
        sleep 3         # 等待3秒
        $SVC data disable # 禁用移动数据
        sleep 250       # 等待250秒
    done
}

wifiMode() {
    echo "Enabling Wifi..."
    $SVC data disable # avoid expensive data usage!
    service call wifi 29 i32 0 i32 0 # name=null, enable=false
    $SVC wifi disable
    sleep 2
    $SVC wifi enable
    sleep 2
    $SVC wifi prefer
    # svc usb setFunction diag,serial_smd,rmnet_bam,adb  rndis
    # svc usb setFunction diag,serial_smd,rndis,adb  
    # $SVC usb setFunction diag,serial_smd,adb
}

tetherMode() {
    echo "Enabling Tether..."
    # $SVC data disable # avoid expensive data usage!
    $SVC wifi disable
    service call wifi 29 i32 0 i32 1 # name=null, enable=true
}


checkWifi() {
    if ip a show wlan0 | grep inet | grep -v "scope link" | grep -v "169.254" >/dev/null; then
        echo "Has WiFi IP"
        return 0
    else
        echo "No WiFi IP"
        return 1
    fi
}


mainFunc() {
    set -x
    if [ -z "$DEBUG" ]; then
        echo "Waiting for bootup!"
        sleep 60
    fi
    
    for i in $(busybox seq 1 20); do # 1min not connected then go hotspot
        wifiMode;
        if checkWifi; then
            echo "Wifi Connected, good to go!"
            break
        fi
        if [ $i = 20 ]; then
            echo "Failed to connect to WiFi! Going to tether mode!"
            tetherMode;
            break
        fi
        sleep 3
    done
    
    echo "Updating clock!"
    for i in $(busybox seq 1 20); do
        am broadcast -a android.intent.action.NETWORK_SET_TIME -f 536870912
        sleep 2
    done
}


# 检查文件内容
if [ "$file_content" = "1" ]; then
  mainFunc >> $LOGF 2>&1
else
  tetherMode >> $LOGF 2>&1
  $SVC data enable
fi
```


# 短信转发提示证书验证失败

用高通随身WIFI安装短信转发 [GitHub](https://github.com/pppscn/SmsForwarder/)应用，设置通道时，提示证书验证失败。

![img](https://pic.chjina.com/2025/09/27/7f2bc2e4217fddf7cc605211dbd74efb.png)

### **替换随身WIFI系统证书，需要Root**

使用RE文件管理器，替换新的的根证书到老旧设备的 /system/etc/security/cacerts/内，**修改权限为644后重启**。

```
/system/etc/security/cacerts
```

新的的根证书可以从新版本的安卓手机中提取。也可以用网友提供的证书。

网友提供证书下载链接，以下证书随意替换一个即可。

1\.

{% embed url="<https://github.com/user-attachments/files/20394975/cacerts.zip>" %}

2.<https://cooanaoo.lanzoub.com/ir69E33kq84f>

{% embed url="<https://cooanaoo.lanzoub.com/ir69E33kq84f>" %}

3.备份下载

{% embed url="<https://drive.chjina.com/%E6%8D%A1%E5%9E%83%E5%9C%BE/%E9%9A%8F%E8%BA%ABWIFI/%E9%AB%98%E9%80%9A%E9%9A%8F%E8%BA%ABWFI%E7%9F%AD%E4%BF%A1%E8%BD%AC%E5%8F%91%E8%AF%81%E4%B9%A6%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5/%E8%AF%81%E4%B9%A6>" %}

![image-20250927082715425](https://pic.chjina.com/2025/09/27/bd12f05b0cad4fc9d96910f91ed462bd.png)


