标签 服务器配置 下的文章

分享个 Proxmox VE (PVE) “黑产级” 小技巧,通过改一点点后台代码和前端脚本,直接让 PVE 的侧边栏显示 VM 的备注第一行,支持显示为中文。效果就是一眼望去,你的 “测试机”、“数据库”、“挂机宝” 全都清清楚楚。

注意:此操作是基于 8.2.2 版本,操作前务必先备份文件,万一代码对不齐把网页搞崩了,还能救回来。

一共三个步骤:

  • 后端: 让 PVE 的 API 在获取集群资源时,顺便去读一下 VM 配置文件里的备注字段。
  • 前端: 让网页侧边栏拿到这个字段,并把它显示出来。
  • 重启: 刷新服务生效。

直接上代码,可以直接把下面这一整段代码复制到 PVE 的 Shell 里执行。代码里加上了自动备份功能,改错了也能找回原文件。

# ==========================================
# 第一步:后端修改 (让 API 吐出备注数据)
# ==========================================

# 先备份,万一翻车好救命

cp /usr/share/perl5/PVE/API2/Cluster.pm /usr/share/perl5/PVE/API2/Cluster.pm.bak

# 在 API 定义里加个 description 字段

sed -i "/name => {/i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ description => { description => \"Description\", type => \"string\", optional => 1 }, " /usr/share/perl5/PVE/API2/Cluster.pm

# 注入读取逻辑:直接去读 /etc/pve/ 下的配置文件第一行注释

sed -i "/my \$entry = PVE::API2Tools::extract_vm_stats/a \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eval { my \$raw = PVE::Tools::file_get_contents(\"/etc/pve/\" . (\$entry->{type} eq 'lxc' ? 'lxc' : 'qemu-server') . \"/\$vmid.conf\"); if (\$raw =~ /^#(\\\\S+)/) { \$entry->{description} = \$1; } };" /usr/share/perl5/PVE/API2/Cluster.pm

# ==========================================
# 第二步:前端修改 (让网页侧边栏显示备注)
# ==========================================

# 还是先备份

cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak

# 在 ResourceStore 资源池里注册一下 description 字段

sed -i "4000,4500s|name: {|description: { header: gettext('Description'), type: 'string', hidden: true }, name: {|" /usr/share/pve-manager/js/pvemanagerlib.js

# 修改侧边栏显示逻辑:如果有备注就显备注,没备注就显原来的名字

sed -i "s|text += \" (\" + info.name + ')';|text += \" (\" + (info.description ? decodeURIComponent(info.description).split('\\\\n')[0] : info.name) + ')';|" /usr/share/pve-manager/js/pvemanagerlib.js

# ==========================================
# 第三步:重启服务,刷新页面
# ==========================================

systemctl restart pvedaemon pveproxy

执行之后,使用 Ctrl+F5 强制刷新 PVE 网页。
选中一个虚拟机,点开备注。
在备注的第一行写上你想显示的文字,比如:核心数据库。
填了之后侧边栏 ID 后面括号里显示的就是你填的备注,支持中文和特殊字符。

关于更新: PVE 每次大版本更新,这些系统文件都会被覆盖。到时候如果你发现备注没了,再跑一遍这个脚本就行。

万一网页打不开了: 别慌,用 cp /usr/share/pve-manager/js/pvemanagerlib.js.bak/usr/share/pve-manager/js/pvemanagerlib.js 把备份覆盖回去,再重启服务就恢复了。


📌 转载信息
转载时间:
2026/1/16 12:29:50

前言
前面已经成功搭建了苹果 CMS 影视站,详细教程查看《苹果 CMS V10 搭建教程》。在上一篇文章末尾,留了几个问题:

1、服务器配置到底如何选择

2、如何修改当前模板的网站的 Logo

3、网站首页的封面如何设置

4、模板不好看如何安装其它模板

5、如何通过域名访问网站

接下来,将逐一回答,如果有其它问题,欢迎大家进交流群一起探讨:点击进入站长破壁者交流群

1、服务器配置到底如何选择
搭建影视站服务器如何选择,正如前面说的,这取决于后续具体应用场景,这里简单说明下需要考虑的点:

如果只是学习 / 玩,在自己本地搭建即可。

如果单纯为了,搭建一个影视站,然后能够在互联网访问,则需要服务器了,对于配置其实没什么要求,1 核 1G 也能够安装。

如果想搭建一个让很多人观看的影视站,那么对服务器配置就有一定要求了,比如:用户在大陆则买大陆的服务器比较好;用户在亚太则买香港、日本的服务器;用户在海外则推荐买美国服务器。配置建议选择不低于 2 核 4G 的服务器,通常配置越高后续程序运行越流畅,视频采集速度也更快。

这里稍微展开说明下,影视站如果需要体验观感比较好,那么线路的选择就比较重要了,建议选择三网精品线路的服务器,并且线路的带宽大小也非常重要:大陆线路的带宽通常比较小;亚太次之并且价格通常比较贵;美国的三网精品服务器带宽一般都比较大性价比较高。教程中使用的服务器是 VMRack 三网精品服务器,体验非常好。

2、如何修改当前模板的网站的 Logo
登录管理后台,在系统 -> 网站参数配置中修改网站的基本信息。


访问网站首页,发现刚才设置的 logo 并没有生效,检查代码发现,logo 是固定写死的,所以我们在宝塔面板中,重新上传 logo 即可。

在网站的模板目录下,上传 logo 图片:

上传后 / 或者修改源码:

刷新官网:

可以看到 icon 与 logo 都更新了,对于有基础的朋友,就可以根据自己需求修改模板。 3、网站首页的封面如何设置 设置封面非常简单,只需要把视频推荐设置为推荐 9 即可:

点击视频编辑,上传视频的海报图,即可:

刷新官网,可以看到封面已设置:

当设置多个封面后,轮播图功能并为生效:

查看模板源码,发现轮播图功能源码在 script.js 文件实现:

打开浏览器控制台,发现并未加载轮播图的 js 文件: 当知道问题出在什么地方,解决就非常简单了,通过查看源码,发现 js 文件都在这里设置的,那么只需要把 script.js 路径加上即可:

当修改好代码后,刷新官网,此时轮播图功能就正常了。 4、模板不好看如何安装其它模板 在网上搜索 maccms10 模板,这个就不多介绍了:


当找到心仪的模板后,下载源码:

一般都会有模板安装的教程:

仿爱电影 MizhiADY 模板源码下载:仿爱电影 MizhiADY 板源码.zip

上传模板源码到网站 template 目录,解压后把 mizhiady 文件移动到 template 下即可:

在管理后台模板中,可以看见模板已上传成功:

设置网站的模板:

设置成功后,按照教程先刷新官网:

设置主题后台地址: MZADY 觅知主题,/mac.php/admin/mizhiady/mzadyset

保存后,刷新管理后台,发现左侧菜单新增 MZADY 主题,进入主题,可以进行相关设置:

至此,安装其它模板的流程就结束了,关于模板的选择全凭个人爱好了,值得注意的是,网上的模板可能存在一些广告。 5、如何通过域名访问网站 网站通过域名访问的前提是得有一个域名,如何购买域名这里就略过了。 在宝塔面板,网站列表中,点击设置:

这里填写需要访问的域名地址:

在域名服务商进行域名解析,这里以 CF 为例:

通过域名访问:

此处,域名访问成功设置。 此时,浏览器提示不安全,是因为网站未设置 SSL 证书,接下来,继续为网站设置证书。为什么给网站需要设置证书?这里简单说明下,设置证书后网站会更安全。 如何给网站设置证书呢?需要先申请 SSL 证书,这里以 VMRack 的证书为例,主要是永久免费还能自动续费。 登录 VMRack 控制台,进入 SSL 证书页面,在右上角点击申请证书:

接下来需要在域名服务商填写 CNAME 域名解析:

这里还是以 CF 为例:

填写完成后,回到控制台,点击验证解析记录:

当状态都成功后,点击申请证书:

只需要等待几分钟即可:

点击管理,即可查看证书的详情信息:

下载证书:

只需要把证书,上传到宝塔的 SSL:

把前面申请好的证书信息,分别复制 / 粘贴过来即可:

可以看到证书已上传成功:

在网站设置中,直接部署证书:

开启强制 HTTPS 访问:

访问官网,此时浏览器已经未提示不安全了:

至此,苹果 CMS 的搭建;一些简单使用;通过域名访问以及简单的源码修改等,都已简单介绍,如果对此感兴趣的朋友欢迎来,站长破壁者交流群共同探讨学习,点击进入交流群。


📌 转载信息
原作者:
Rosna
转载时间:
2026/1/15 18:20:51

提前叠甲:雨云 aff 很疯狂,但本文无 aff。
使用该方法搭建的 frp 速度在 100 mbps 左右。

一、登录雨云领取初始积分

加入 Q 群 → 我爱雨云
关注 B 站 → 雨云爱你
关注淘宝 → 成功加入

二、领取游戏云、配置 frp

在积分商城里可以很容易的买到 E5 入门版游戏云,无货的话等刷新就好。
在 NAT 端口映射管理界面配置至少 2 个端口(一个用于 FRP 服务,一个用于要暴露的内网服务)


然后进入控制台


除了 启动脚本外的内容都可以删掉,再上传 frps、frps.toml
https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_linux_amd64.tar.gz


这一步建议用 SFTP 工具来操作,因为自带的文件管理上传大文件很容易失败。
启动脚本的内容如下

./frps -c frps.toml

frps.toml 内容如下

bindPort = 10000 auth.token = "passwd" 

端口就写前面映射的端口,再设置个密码防止被人白嫖。
如果只有自己用的话不建议用 frpc 直接暴露内网服务,建议 frpc 暴露 easytier。

三、自动签到、续费

github 上有现成的自动签到,不过部署起来比较麻烦,我这里改了个 docker 版本,可以一键构建镜像部署。
续费的话用官方的 api ,替换 api key 和 服务器 id 即可。

curl --location --request POST 'https://api.v2.rainyun.com/product/point_renew' \
--header 'x-api-key: key' \
--header '
Content-Type: application/json' \
--data-raw '
{ "duration_day": 7, "product_id": id, "product_type": "rgs" }'

📌 转载信息
原作者:
fatekey
转载时间:
2025/12/30 18:18:48

MySQL 主从同步集群搭建

使用docker方式创建,主从服务器IP一致,端口号不同

docker服务名分别为:

yuluo-mysql-master port: 3306
yuluo-mysql-slave1 port: 3307
yuluo-mysql-slave2 port:3308

确保关闭服务器防火墙

centos: systemctl stop firewalld

ubuntu: systemctl stop ufw

主服务器配置

1. 创建并启动MySQL主服务器

docker run -d \
-p 3306:3306 \
-v /home/yuluo/shardingsphere-env/master/conf:/etc/mysql/conf.d \
-v /home/yuluo/shardingsphere-env/master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name yuluo-mysql-master \
mysql:8.0.29        

2. 创建 MySQL 主服务器配置文件

vim /home/yuluo/shardingsphere-env/master/conf/my.cnf

[mysqld]
# 服务器唯一id,默认值1
server-id=1
# 设置日志格式,默认值ROW
binlog_format=STATEMENT
# 二进制日志名,默认binlog
# log-bin=binlog
# 设置需要复制的数据库,默认复制全部数据库
#binlog-do-db=mytestdb
# 设置不需要复制的数据库
#binlog-ignore-db=mysql
#binlog-ignore-db=infomation_schema

查看docker的容器状态,确保为up状态

3. 测试连接

进入MySQL主服务器登录mysql

#进入容器:env LANG=C.UTF-8 避免容器中显示中文乱码
docker exec -it yuluo-mysql-master env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p123456
#修改默认密码校验方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

4.主节点创建slave用户

CREATE USER 'yuluo_slave'@'%';
-- 设置密码
ALTER USER 'yuluo_slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
-- 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'yuluo_slave'@'%';
-- 刷新权限
FLUSH PRIVILEGES;

5. 在主机中查询master状态:

show master status
记下File和Position的值。执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。

从服务器配置1

1.启动从服务器1

docker run -d \
-p 3307:3306 \
-v /home/yuluo/shardindsphere-env/slave1/conf:/etc/mysql/conf.d \
-v /home/yuluo/shardingsphere-env/slave1/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name yuluo-mysql-slave1 \
mysql:8.0.29

查看容器状态,确保处于up状态

2.从服务器配置文件1

vim /home/yuluo/shardingsphere-env/slave1/conf/my.cnf

[mysqld]
# 服务器唯一id,每台服务器的id必须不同,如果配置其他从机,注意修改id
server-id=2
# 中继日志名,默认xxxxxxxxxxxx-relay-bin
#relay-log=relay-bin

3.测试连接

#进入容器:env LANG=C.UTF-8 避免容器中显示中文乱码
docker exec -it yuluo-mysql-slave1 env LANG=C.UTF-8 /bin/bash
#进入容器内的mysql命令行
mysql -uroot -p123456
#修改默认密码校验方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

4.在从机中配置主从关系

CHANGE MASTER TO MASTER_HOST='192.168.3.16', 
MASTER_USER='yuluo_slave',MASTER_PASSWORD='123456', MASTER_PORT=3306,
MASTER_LOG_FILE='binlog.000005',MASTER_LOG_POS=157; 

5. 启动从机的复制功能

START SLAVE;
-- 查看状态(不需要分号)
SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

两项都为Yes,即搭建成功!

从服务器配置2

按照上述从服务器1的配置创建从服务器2

创建并启动从服务器2

docker run -d \
-p 3308:3306 \
-v /home/yuluo/shardindsphere-env/slave2/conf:/etc/mysql/conf.d \
-v /home/yuluo/shardingsphere-env/slave2/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name yuluo-mysql-slave2 \
mysql:8.0.29

从服务器配置文件1

[mysqld]
# 服务器唯一id,每台服务器的id必须不同,如果配置其他从机,注意修改id
server-id=3
# 中继日志名,默认xxxxxxxxxxxx-relay-bin
#relay-log=relay-bin

在从机2中配置主从关系

CHANGE MASTER TO MASTER_HOST='192.168.3.16', 
MASTER_USER='yuluo_slave',MASTER_PASSWORD='123456', MASTER_PORT=3306,
MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=157; 

主从同步测试

在主机中执行以下SQL,在从机中查看数据库、表和数据是否已经被同步

CREATE DATABASE db_user;

USE db_user;

CREATE TABLE t_user (
 id BIGINT AUTO_INCREMENT,
 uname VARCHAR(30),
 PRIMARY KEY (id)
);

INSERT INTO t_user(uname) VALUES('zhang3');
INSERT INTO t_user(uname) VALUES(@@hostname);

停止和重置

-- 在从机上执行。功能说明:停止I/O 线程和SQL线程的操作。
stop slave; 

-- 在从机上执行。功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件。
reset slave;

-- 在主机上执行。功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。
-- 用于第一次进行搭建主从库时,进行主库binlog初始化工作;
reset master;

常见错误解决

1.启动主从同步后,常见错误是Slave_IO_Running: No 或者 Connecting 的情况,此时查看下方的 Last_IO_ERROR错误日志

-- 在从机停止slave
stop slave; 

-- 在主机查看mater状态
SHOW MASTER STATUS;
-- 在主机刷新日志
FLUSH LOGS;
-- 再次在主机查看mater状态(会发现File和Position发生了变化)
SHOW MASTER STATUS;
-- 修改从机连接主机的SQL,并重新连接即可

-- 查看server_id 
show variables like 'server_id';

-- 如果为1 查看配置文件是否映射进去

2.
启动docker容器后提示 WARNING: IPv4 forwarding is disabled. Networking will not work.

此错误,虽然不影响主从同步的搭建,但是如果想从远程客户端通过以下方式连接docker中的MySQL则没法连接

C:\Users\administrator>mysql -h 192.168.100.201 -P 3306 -u root -p
#修改配置文件:
vim /usr/lib/sysctl.d/00-system.conf
#追加
net.ipv4.ip_forward=1
#接着重启网络
systemctl restart network