当前位置: 首页 > news >正文

玩转 hostnamectl set-hostname:Linux 主机名管理的优雅方式 - 实践

在 Linux 系统管理中,主机名就像服务器的 "身份证"—— 它不仅是系统的标识,更是网络通信、日志记录、集群管理中的重要依据。今天我们聚焦 hostnamectl set-hostname 这条命令,聊聊它如何让主机名管理变得简单高效。

一、命令的适用场景:什么时候需要它?

主机名并非一成不变,在这些场景下你一定会用到 hostnamectl set-hostname

  • 新服务器初始化:刚部署的服务器默认可能带着一串随机字符(比如 localhost.localdomain),需要设置一个有意义的名称
  • 集群环境管理:在 Kubernetes、分布式存储等集群中,用主机名区分节点角色(如 k8s-master-01storage-node-03
  • 系统用途变更:当服务器从测试环境转为生产环境,或从 Web 服务器改为数据库服务器时,更新主机名适配新角色
  • 规范化管理:企业内部推行命名规范时,批量调整不符合规则的主机名

相比传统的 hostname 命令,hostnamectl 的优势在于:修改是持久化的(重启不失效),无需手动编辑 /etc/hostname 等配置文件。

二、命令基本语法格式:简单却不简陋

hostnamectl set-hostname 的基础语法非常直观:

hostnamectl set-hostname  [选项]
  • hostnamectl:systemd 系统中用于管理主机名的核心工具
  • set-hostname:子命令,用于设置主机名
  • <主机名>:必填参数,即你要设置的新主机名
  • [选项]:可选参数,用于高级配置(后文详解)

主机名命名规则

  • 长度建议不超过 64 个字符
  • 可包含小写字母(a-z)、数字(0-9)、连字符(-)
  • 不能以连字符开头或结尾,避免使用空格、下划线等特殊字符

三、命令的基本使用方法:3 步搞定主机名修改

修改主机名其实很简单,以设置主机名为 web-prod-01 为例:

  1. 执行修改命令(需要 root 权限):
    sudo hostnamectl set-hostname web-prod-01
  2. 立即验证结果
    无需重启,修改立即生效,用以下命令查看:
    hostnamectl  # 查看详细主机名信息
    # 或简单查看
    hostname  # 输出:web-prod-01
  3. 检查配置文件(可选):
    hostnamectl 会自动更新 /etc/hostname 文件,可确认:
    cat /etc/hostname  # 输出:web-prod-01

这就是最基础的用法 —— 一行命令完成修改,无需重启,全程无感知。

四、命令的高级使用方法:不止于 "改个名"

hostnamectl 支持三种类型的主机名,灵活满足不同场景:

  • 态主机名(static):系统默认使用的持久化主机名(/etc/hostname 中存储)
  • 瞬态主机名(transient):临时主机名,通常由网络配置动态分配(如 DHCP),优先级低于静态主机名
  • 美化主机名(pretty):用于显示的 "人性化" 名称,可包含空格和特殊字符(如 Web Production Server 01

1. 单独设置美化主机名

sudo hostnamectl set-hostname "Web Production Server 01" --pretty

2. 仅设置瞬态主机名(临时生效,重启失效)

sudo hostnamectl set-hostname temp-web-01 --transient

注意:如果已设置静态主机名,系统会提示 Hint: static hostname is already set, so the specified transient hostname will not be used

3. 同时设置多种主机名

bash
sudo hostnamectl set-hostname web-prod-01 \
--pretty "Web Production Server 01" \
--static web-prod-01

4. 清除已设置的美化主机名

sudo hostnamectl set-hostname --pretty ""

通过 hostnamectl 命令可一次性查看所有类型的主机名:

hostnamectl status

五、命令的最佳实践:让主机名管理更规范

  1. 制定命名规范
    建议格式:功能-环境-编号,例如:
    • 生产环境 Web 服务器:web-prod-01web-prod-02
    • 测试环境数据库:db-test-01
      统一的命名能让运维效率提升 30% 以上。
  2. 修改后同步 hosts 文件
    虽然不是必须,但建议在 /etc/hosts 中添加新主机名与本地 IP 的映射:
    hostnamectl status
  3. 避免频繁修改
    主机名会被日志系统、监控工具记录,频繁变更可能导致历史数据混乱。
  4. 权限控制
    只有 root 用户或 sudo 权限才能执行该命令,避免普通用户误操作。
  5. 跨系统兼容
    该命令依赖 systemd,适用于 CentOS 7+、Ubuntu 16.04+ 等系统;老系统(如 CentOS 6)需用 hostname 命令配合修改配置文件。

六、shell 脚本开发中的使用示例:服务器初始化自动化

在新服务器初始化时,自动设置符合规范的主机名是常见需求。下面是一个实用脚本,可根据服务器角色和编号自动生成主机名:

#!/bin/bash
# 脚本名称:init_hostname.sh
# 功能:根据角色和编号自动设置主机名,并解决sudo解析问题
# 使用方法:sudo ./init_hostname.sh
# 检查参数是否完整
if [ $# -ne 3 ]; then
echo "用法错误!正确格式:sudo $0   "
echo "示例:sudo $0 web 01 prod"
exit 1
fi
ROLE=$1
NUMBER=$2
ENV=$3
# 验证编号格式(2位数字)
if ! [[ $NUMBER =~ ^[0-9]{2}$ ]]; then
echo "错误:编号必须是2位数字(如01、09)"
exit 1
fi
# 生成主机名
HOSTNAME="$(echo $ROLE | tr 'A-Z' 'a-z')-${ENV}-${NUMBER}"
# 获取本机IP地址(取第一个非回环地址)
LOCAL_IP=$(hostname -I | awk '{print $1}')
if [ -z "$LOCAL_IP" ]; then
echo "错误:无法获取本机IP地址"
exit 1
fi
echo "检测到本机IP地址:$LOCAL_IP"
# 关键修复:先临时设置主机名(不写入配置),避免sudo解析错误
hostname $HOSTNAME
# 准备hosts文件内容(一次性写入,减少sudo调用)
HOSTS_CONTENT=$(cat > /etc/hosts"
# 正式设置主机名(写入配置)
echo "正在设置主机名为:$HOSTNAME"
sudo hostnamectl set-hostname $HOSTNAME
# 强制刷新所有相关服务
sudo systemctl restart systemd-hostnamed
sudo systemctl restart systemd-resolved >/dev/null 2>&1
# 验证结果
echo "设置完成,当前状态:"
echo -n "主机名:"
hostnamectl | grep "Static hostname" | awk '{print $3}'
echo "IP与主机名关联记录:"
grep "$HOSTNAME" /etc/hosts

使用方法:

# 给脚本执行权限
chmod +x init_hostname.sh
# 设置主机名为 web-prod-01(角色:web,编号:01,环境:prod)
sudo ./init_hostname.sh web 01 prod

这个脚本在批量部署服务器时特别有用,只需传入角色、编号和环境参数,就能自动完成主机名的规范化设置,避免人工操作的疏漏。

总结

hostnamectl set-hostname 看似简单,却藏着 Linux 系统管理的设计哲学 —— 用简洁的命令解决复杂的问题。无论是单机修改还是批量自动化,掌握它的用法都能让你的系统管理工作更高效、更规范。记住:一个好的主机名,是系统可维护性的开始。

相关文章:

玩转 hostnamectl set-hostname:Linux 主机名管理的优雅方式 - 实践

玩转 hostnamectl set-hostname:Linux 主机名管理的优雅方式 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier Ne…...

DES原理与举例说明

DES原理与举例说明一、DES 核心原理:6 大关键步骤 DES 的加密过程可拆解为 “初始置换→密钥扩展→16 轮迭代→逆初始置换” 四大阶段,其中 16 轮迭代是加密的核心,每轮又包含 “扩展置换、异或、S 盒替换、P 盒置换”4 个步骤。整体流程如下: 1. 预处理:明文初始置换(IP…...

Spring八股文 - 实践

Spring八股文 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…...

Morpheus 审计报告分享2:ChianLink 数据源有着不同的“心跳”

漏洞信息 漏洞报告https://code4rena.com/audits/2025-08-morpheus/submissions/S-709漏洞代码https://github.com/code-423n4/2025-08-morpheus/blob/a65c254e4c3133c32c05b80bf2bd6ff9eced68e2/contracts/capital-protocol/ChainLinkDataConsumer.sol#L78-L107漏洞背景 Heart…...

「嘶吼」第一章:吃饭睡觉打豆豆

标准的鹅蛋脸圆圆的,瞪着一双大眼,大双眼皮显得格外精神,小肚子微微隆起,头发及腰,常常梳着高马尾。因为从小营养过剩,她个子在幼儿园里偏高,跑得快,力气大,小胳膊小腿扑腾起来可折腾人了,用不完的精力都用在调皮捣蛋上了。小胖妞?这无疑是对李鹤然最好的形容。一岁…...

Clion 基础设置

切换中英文切换老 UI 在 CLion 2024.2 及更高版本中,旧版 UI 已不再作为内置选项,而是通过插件提供。...

《Vuejs设计与实现》第 16 章(解析器) 上 - 教程

《Vuejs设计与实现》第 16 章(解析器) 上 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospac…...

go代码(1)

package main import "fmt" func main() { fmt.Println("hello world") } 运行: $ go run hello-world.go hello world $ go build hello-world.go $ ls hello-world hello-world.go $ ./hello-world hello world本文来自博客园,作者:gosamuel,转载…...

7种常见的入侵检测系统规避技术解析

本文详细解析了攻击者常用的7种入侵检测系统(IDS)规避技术,包括文件恶意软件、混淆技术、IP分片、源路由等,并提供了相应的缓解措施,帮助企业安全团队加强网络防护。7种常见的入侵检测系统规避技术 恶意攻击者使用各种规避策略渗透网络,而入侵检测系统(IDS)却未能察觉。了解…...

js的引用

js代码 JavaScript又称ECMAScript,常用的版本通常有es5以及es6 元素中的代码 a元素除了能定义链接地址,同样可以定义js <a href="javascript:window.alert(hello)">Hello</a>我们可以通过按钮的单击事件实现上面相同的效果,其中事件也就是什么情况下执…...

P3957 [NOIP 2017 普及组] 跳房子

题目描述 给出 \(n\) 个点的坐标 \(a_i\) 和权值 \(s_i\),每次向右移动正距离 \(p\),满足 \(d-x \le p \le d+x\) 且落在给定的点上,求使经过点值的最大和不小于 \(k\) 的最小 \(x\)。 思路 step1-二分答案 这道题我们要求的是最小的 \(x\),可显然我们无法将 \(x\) 设计到状…...

C++中常用的STL容器

C++中常用的STL容器: Vector:变长数组:数组长度是可以动态变化的,倍增 Pair<X,Y>:二元组:前后两个元素类型可以不同 string:字符串:常见的函数:substr()截取一段字串,c_str()返回字符串的头指针 queue:队列:先进先出,push()插入,pop() 弹出,front() 返回…...

我的数据科学探索之旅:从兴趣到公考与学习计划

一.关于我:不止于代码的多面手我的兴趣:在热爱里收获成长​ 生活中的我,总喜欢在艺术相关的领域折腾。从初中开始,我就爱上了跳舞,第一次跟着视频练基础动作时,肢体僵硬得像 “机器人”,连简单的 wave 都做不流畅,反复练习后还总跟不上节奏。但我没放弃,每周坚持练 3 …...

MySQL 核心记录解析:从配置到存储的 “说明书 + 记录仪” 系统

MySQL 核心记录解析:从配置到存储的 “说明书 + 记录仪” 系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&quo…...

JavaScript Array 对象

JavaScript 中的 Array 对象是用于存储多个值的特殊类型的对象。 Array 是按顺序存储元素的,可以根据索引(从 0 开始)来访问它们。 创建数组 可以通过几种方式创建数组: 使用 Array 构造函数: let arr1 = new Array(3); // 创建一个长度为 3 的空数组 let arr2 = new Arr…...

代码规范

C++ 编码规范 一 版式 1.程序块缩进 4 个空格,只能使用空格键,不能使用 TAB 键。 2.相对独立的程序块之间、变量说明之后必须加空行,函数之间也用空行分开。 3.一行只写一条语句,if、for、do、while 等语句自占一行,且执行语句部分无论多少都要加括号 {}。 4.代码行之内应…...

mac远程连接windows

安装 Windows App 在app store 中安装windows app添加pcip可以在windows 电脑的终端上键入ipconfig查看ipv4地址。 双击连接 凭据是windows电脑的账户跟密码,例如Administrator,password 要求是在同一局域网内! 在mac终端上ping一下windows的ip看能否ping的通就知道了。...

子类不依赖泛型,重写父类方法,通过强制类型转换父类方法参数出现的问题。——— 一个例子引发的思考

使用泛型(推荐)public interface FlowHandlerGateway<P extends FlowApprovalPageCondition> {Page<FlowApprovalPage> pageQuery(P condition); }//父类 @Slf4j @Component @RequiredArgsConstructor public class FlowHandlerGatewayImpl<P extends FlowApp…...

WebStorm代码一键美化

还在手动调整代码格式?还在为团队代码风格不统一而头疼? 相信很多朋友都遇到过这样的痛苦场景:写完代码一团糟,看着就难受 团队成员代码风格千差万别,维护起来要命 每次提交代码前都要手动整理格式,费时费力上一篇《10分钟搞定Vue3项目》已经搭建好了项目基础架构,脚手架…...

3分钟搞定Vue组件库

还在为写前端页面发愁?还在为设计按钮、表格这些基础组件浪费时间? 经过上一篇《WebStorm代码一键美化》的学习,相信你已经掌握了 Prettier、ESLint、TypeScript 这三大开发神器。 今天,我要教你一个更厉害的招式:3分钟搞定高颜值UI组件库!学会这一招,你的前端开发效率将…...

Golang中设置HTTP请求代理的策略

在Golang中设置HTTP请求代理涉及 net/http包中的 http.Transport结构体,它控制着HTTP请求的细节。要定义代理,可以使用 http.ProxyURL函数配合 url.Parse函数来创建一个 url.URL对象,然后将该对象赋值给 Transport结构体的 Proxy字段。 以下是配置HTTP代理的典型步骤:引入必…...

[开源免费] iGTTS(Gemini TTS) 文本转语音(TTS)的命令行工具。

iGTTS(Gemini TTS) iGTTS(Gemini TTS) 开源免费的文本转语音(TTS)的命令行工具。 iGTTS(Gemini TTS) 是通过调用 Gemini TTS 的接口,实现文本转语音(TTS)的命令行工具。 添加 API key # 编辑 .zshrc: vim ~/.zshrc# 添加信息(导入环境变量): export GEMINI_API_KEY=&l…...

结合Spring和MyBatis实现DAO层操作综述

在Java企业级开发中,Spring框架和MyBatis持久层框架的结合使用已成为常见模式。下面进行详细介绍如何结合这两个框架实现DAO层(数据访问层)操作。 首先,我们需要明确Spring框架和MyBatis的角色定位。Spring是一个全方位的企业级开发框架,提供了包括但不限于依赖注入、事务…...

202205_CHIMA_follow

流量分析,CHIMA,应急响应,文件拼接Tags:流量分析,CHIMA,应急响应 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202205_CHIMA_follow.zip发起攻击的IP地址受到攻击的资产的IP+Port上传的木马完整路径上传的文…...

Lua脚本协助Redis分布式锁实现命令的原子性

在实现Redis分布式锁的过程中,Lua脚本的使用可以确保命令的原子性,这是因为Redis会将整个Lua脚本执行作为一个不可分割的整体,从而在多客户端环境中保证数据的一致性和安全性。 分布式锁通常是为了在不同进程或服务器间同步访问共享资源。在Redis中,SETNX命令可以用来实现锁…...

快读快写 学习笔记

在OI中,经常有输入输出量巨大的题,这一类题一般需要非常快速的输入输出方式,于是便有了快读快写 下面是模板(原理无需理解,用的时候直接复制上就行): #include <cstdio> #include <cctype> using namespace std; int precision=-1; char buf[100000],*p1=bu…...

Ubuntu 安装 CLion

下载网址:https://www.jetbrains.com/clion/download/?section=linux 安装在 /opt/clion: sudo mkdir /opt/clion 将安装包解压到 /opt/clion: sudo tar -zxvf CLion-2025.2.1.tar.gz -C /opt/clion ls /opt/clion/clion-2025.2.1这样就安装好了。 启动: sh /opt/clion/cl…...

AI编程实战

不久前我用trace体验了一把AI编程,完成了一个股票交易记录软件的开发,这次有个紧急项目,有了上次的AI编程实践,我决定让AI编程帮我一把 工具选择 上次说千问没有IDE,但阿里云出了一个Qoder,在这个紧急项目之前,我刚好开始使用Qoder,接到紧急项目的时候,是时候让AI真正…...

25/9/13(补)

做了下20年csps的单选,错了两道,后边随机跳题了个之前wa的题(p7777 shelter),数学标签,有编号1~n的石子,用两种抓取方式吧石子抓完,第一种抓法是选一个数i把第i堆石子抓走,代价为ip。第二种是选两个数i,j,把第i,j堆石子抓走,代价为|i-j|q。 发现性质: 第一,二种方…...

面向对象编程(OOP)的原则

面向对象编程(OOP)的原则面向对象编程有一系列核心原则,这些原则指导着我们如何设计高质量、可维护和可扩展的软件系统。这些原则可以分为两大类:基本特性和设计原则。 一、面向对象编程的四大基本特性(基石) 1. 封装 (Encapsulation) 核心思想:将数据和对数据的操作捆绑…...

【龙智Atlassian插件】Confluence周报插件上线AI智能总结,一键生成专业报告 - 实践

【龙智Atlassian插件】Confluence周报插件上线AI智能总结,一键生成专业报告 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…...

数字化(管理)系统的工具化思考

一、引言:数字化转型的背景与逻辑 进入 21 世纪,信息技术、互联网、大数据、人工智能与物联网的迅速发展,使得企业与组织的运作方式发生了深刻变革。管理学界普遍认为,传统的经验管理与制度管理正逐步向 数字化管理系统 过渡。这不仅是工具更迭的问题,更是认知范式、管理模…...

详细介绍:传统神经网络实现-----手写数字识别(MNIST)项目

详细介绍:传统神经网络实现-----手写数字识别(MNIST)项目pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New",…...

C#语言中使用using关键字

在 C# 语言中,“using”关键字被用于不同的上下文和目的,它的用法大体上可以被分为三类:导入命名空间、简化资源管理和提供别名。 首先,"using"关键字最常见的用途是导入命名空间。这在 C# 程序中非常普遍,因为它可以允许程序员引用命名空间中定义的类型,而不需…...

中育新版本OSS Token获取API分析

中育新版本OSS Token获取API分析 在8/28更新中(或更早),中育彻底停用了旧版本的GenerateTokenAsyncAPI,转而使用GenerateTokenV2AsyncAPI,新的API使用了签名和一些不明所以的参数,并可能限制了可以上传的路径。 为了尽快迁移旧的工具、程序,我对web端的OSS逻辑进行了分析。…...

25/9/12(补,上一篇是9/11的)

把昨天没改完的码积木改完了,最终解法先发现一个性质是往上堆一个就算和下一个高度重叠也对下一个没有影响,所升序排完后设变量m(m初始等于a[1]),如果m比当前遍历到的a[i]大代表这个a[i]有重叠,更新答案,如果比a[i]小就让m=a[i]保持同频。 改完这题后又去改暑假的T3,就是…...

动态编译 vs. 静态编译,容器时代那个更有优势?

动态编译 vs. 静态编译,容器时代那个更有优势?一、动态编译 vs. 静态编译:一场关于“依赖”的战争 要理解静态编译,我们首先要明白它的对立面——动态编译,这也是 C、C++ 以及 Java、Python、C#、Ruby 等大多数主流语言所采用的方式。 1. 动态编译:运行时“借”东西 想象…...

实用指南:操作系统类型全解析:从批处理到嵌入式

实用指南:操作系统类型全解析:从批处理到嵌入式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace…...

【C++ 类和对象・高阶深化(下)】再探构造函数(含初始化列表),吃透 static 成员、友元、内部类及对象拷贝编译器优化 - 指南

【C++ 类和对象・高阶深化(下)】再探构造函数(含初始化列表),吃透 static 成员、友元、内部类及对象拷贝编译器优化 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…...

2

C++ 数据结构数组 链表 队列 堆 树 map/set hashmysql 索引 索引就像是数据的目录。索引的好处就是可以提高查询速度,但是会占用物理空间,而且创建和维护索引要耗费时间,每次进行增删改操作都需要动态维护。索引的分类数据结构:B+ 树索引,hash,full-text物理存储:聚簇索…...

VSCode 运行 C/C++ 程序

VSCode 安装插件:重点参考: https://blog.csdn.net/icacxygh001/article/details/120981354 https://code.visualstudio.com/docs/cpp/config-linux#_running-the-build...

3 字节

进程与线程的区别 线程是轻量级进程,每个进程中都有唯一的主线程,主线程和进程是相互依存的关系。进程是资源分配和拥有的基本单位;线程是系统调度的基本单位进程拥有CPU 资源,内存资源,文件资源,句柄等;线程拥有程序计数器,寄存器,栈和状态字切换情况:进程由操作系统…...

Springcloud Alibaba(一)

一、什么是Springcloud Alibaba它是微服务概念的一种实现,解决了如下问题N个服务,如何管理?(服务治理 注册中心【服务的注册、发现、删除】)nacos N个服务,如何通信?feign N个服务,客户端如何访问?gateway N个服务,一旦出现问题了,怎么处理?(容错)sentinel N个服…...

111111111

1111111111...

202204_DASCTF_SimpleFlow

流量分析,DASCTF,WebShell,蚁剑AntSwordTags:流量分析,DASCTF,WebShell,蚁剑AntSword 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202204_DASCTF_SimpleFlow.zip 0x01. WP 1. 分析http协议,找到附件数据 …...

使用 Winscope 跟踪窗口转换

Winscope 是一款 Web 工具,可以让用户在动画和转换期间和之后记录、重放和分析多个系统服务的状态。Winscope 将所有相关的系统服务状态记录在一个跟踪文件中。使用带有跟踪文件的 Winscope 界面,您可以通过重放、单步执行和调试过渡来针对每个动画帧检查这些服务的状态(无论…...

25/9/12(补)

做了下19csps初试,60多分,记不清了,反正能过,写完后改一道暑假没过的题,没改完就下课了...

深入解析:“纳米总管”——Arduino Nano 的趣味生活

深入解析:“纳米总管”——Arduino Nano 的趣味生活pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monosp…...

洛谷题目难度系统优化

以下为优化后的难度系统:优化后难度 对应KaTex数学公式\(\color{FE4C61}{{入门}}\) \color{FE4C61}{{入门}}\(\color{F39C11}{{普及-}}\) \color{F39C11}{{普及-}}\(\color{FFC116}{{普及}}\) \color{FFC116}{{普及}}\(\color{FFD700}{{普及+}}\) \color{FFD700}{{普及+}}\(\c…...

202112_摆烂杯_WhatAHack!

流量分析Tags:流量分析,CTFSHOW 0x00. 题目 这是你沐师傅的站的流量,最近你沐师傅去跟着某讯搭了一个WP平台后发了一篇文章再测试了一下自己的网站就再也没去管过平台了。结果被某位名字貌似大概可能叫g4_simon的大黑阔给hack掉了网站,并进行了一些操作拿到了沐师傅放在平台里…...