找到
725
篇与
阿贵
相关的结果
- 第 3 页
-
宝塔面板如何快速部署 GinCdn V1.1.0 主控端(含 Redis 配置) 零基础!宝塔面板快速部署 GinCdn V1.1.0 主控端(含 Redis 配置) GinCdn作为轻量高效的内容分发系统,依托Go语言的高性能特性,是一款自研系统,是中小型企业/个人搭建CDN的优选方案。本文手把手教你用宝塔面板完成GinCdn主控端部署,无需复杂命令行,小白也能上手! gincdn透明.png图片 【前置准备】 服务器:推荐centos7.6-7.9/Ubuntu 20.04/22.04(2核4G及以上,确保网络通畅); 环境:宝塔面板v11.0+版本(安装Nginx1.18+/Apache 2.2+、MySQL 5.7+、Redis5.0+); 资源:GinCdn主控端源码(官方最新版)、域名(已解析至服务器IP)。 【程序获取】 前往官方授权站:auth.shuha.cn,获取正版授权并下载程序源码压缩包 【部署步骤】 步骤1:创建数据库 14.png图片 检查MySQL服务状态,创建GinCdn专属数据库(如gincdn_db),记录数据库名/账号/密码; 步骤2:上传并解压GinCdn源码 宝塔面板 → 文件 → 新建目录(如/wwwroot/gincdn),进入目录后点击“上传”,选择本地GinCdn源码包(zip/tar.gz); 新建项目文件夹 1.png图片 上传程序压缩包 2.png图片 解压源码至该目录,确认目录结构完整(包含main.go、config.yaml等核心文件)。 步骤3:配置GinCdn参数 编辑源码目录下的config.yaml文件: 端口配置:设置主控端运行端口(如8080,确保未被占用); 4.png图片 数据库配置:填写MySQL地址(localhost)、端口(3306)、数据库名、账号、密码; 5.png图片 文件访问配置:填写已解析的主控端域名(www.gincdn.cn); 访问图片文件的url可以是IP:端口 6.png图片 如果想要是域名就直接http://www.gincdn.cn,开了ssl的就https 7.png图片 授权配置:填写获得的授权码 8.png图片 填写完之后保存文件 步骤4:导入数据 压缩包解压后有个“gincdn.sql”文件 9.png图片 上传数据库文件并完成导入 步骤5:设置Redis并放行端口 宝塔面板 → 软件商店 → 全部 → Redis 填写bind为0.0.0.0 填写requirepass为123456(主控成功启动后可改,为安全起见也必须改) 7.png图片 宝塔面板 → 安全 → 添加端口规则 TCP协议端口6379放行所有IP 8.png图片 步骤6:创建Go项目 宝塔面板 → 网站 → Go项目; 10.png图片 11.png图片 点击启动 12.png图片 启动成功 验证启动 如果是服务器IP访问:服务器IP:端口 如果是域名访问:域名 出现GinCdn主控端页面即启动成功。 13.png图片 管理员控制台是:/admin,账号密码默认:admin/123456 9.png图片 用户控制台是:/user 8.jpg图片 【常见问题排查】 运行报错:检查数据是否成功导入; 端口占用:在宝塔“安全”面板查看端口是否放行,或更换未被占用的端口; 无法访问:检查反向代理配置是否正确,防火墙是否放行80/443端口。 【总结】 通过宝塔面板可视化操作,无需手动配置复杂的环境变量和服务脚本,就能快速完成 GinCdn V1.1.0 主控端 部署。 V1.1.0 新增 Redis 依赖,只需按本文设置 bind 0.0.0.0、密码 123456、放行 6379 端口即可一键启动。 后续可通过主控端管理节点、配置缓存规则、添加 WAF 防护,轻松搭建专属企业级 CDN 体系! -
GinCdn被控节点V1.0.4 安装教程(Ubuntu 18~24 通用,推荐 Ubuntu 24.04|2H2G~16H32G) GinCdn被控节点V1.0.4 安装教程(Ubuntu 18~24 通用,推荐 Ubuntu 24.04|2H2G~16H32G) 前言 GinCdn 是一款轻量、高性能、易部署的国产内容分发系统,采用主控+边缘节点架构,支持缓存加速、HTTPS、智能调度、WAF 防护等企业级功能。 本文基于 GinCdn V1.0.4 版本,提供 Ubuntu 全系列(18.04/20.04/22.04/24.04)被控节点安装教程,推荐优先使用 Ubuntu 24.04 LTS,性能与兼容性最佳。 全程一条命令全自动部署,无需手动编译、无需改配置,新手也能 3 分钟上线节点。 一、环境要求 1. 操作系统 支持:Ubuntu 18.04 / 20.04 / 22.04 / 24.04(64位) 推荐:Ubuntu 24.04 LTS(内核新、性能强、依赖更完整) 2. 服务器配置(根据业务选择) 测试/轻量业务:2H2G 常规业务:4H4G / 4H8G / 8H8G / 8H16G 高并发大流量:16H16G / 16H32G 3. 网络与权限 必须使用 root 权限 执行 服务器可访问公网 二、一键部署命令(核心) 直接复制以下完整命令粘贴执行,自动下载、授权、运行一条龙: curl -k --http1.1 -o /root/start.sh https://www.gincdn.cn/download/ubuntu/start.sh && chmod +x /root/start.sh && bash /root/start.sh命令说明 --http1.1 强制使用 HTTP/1.1,解决部分服务器 HTTP/2 下载失败问题 自动保存脚本到 /root/start.sh 自动赋予执行权限并启动安装 三、安装过程说明 1. 脚本执行成功截图特征(可直接截终端配图) 你可以在 CSDN 文章里放一张终端成功执行的示例图,描述如下: ✅ 脚本正常运行特征: 出现 100% 下载进度条 自动更新 apt、安装依赖(curl/wget/openssl/unzip 等) 自动部署 OpenResty + WS 配置客户端 中途提示输入 主控地址 无红色报错、无中断、无异常退出 示例截图描述文案: 如下图所示,脚本正常执行会持续输出部署日志,无红色报错,最后提示服务启动成功即表示部署完成。 1.png图片2. 输入主控地址 安装过程中会提示: 请输入主控端API地址:按格式输入: http://主控IP:8080输入完成按回车,后续全自动完成。 四、部署成功验证 1. 查看节点服务状态 systemctl status ws_config_client.service✅ 成功标志: Active: active (running)服务绿色高亮、持续运行。 2. 检查主控地址配置是否正确 grep MASTER_API_URL /opt/gincdn/conf/node_config.conf✅ 输出你填写的主控地址即正常。 3. 检查开机自启 systemctl is-enabled ws_config_client.service✅ 输出 enabled 表示正常。 mo5ije7a.png图片 五、常用运维命令 1. 服务管理 # 启动 systemctl start ws_config_client.service # 停止 systemctl stop ws_config_client.service # 重启 systemctl restart ws_config_client.service # 查看日志 journalctl -u ws_config_client.service -f2. 修改主控地址 sed -i "s|MASTER_API_URL=\".*\"|MASTER_API_URL=\"http://新主控IP:8080\"|g" /opt/gincdn/conf/node_config.conf systemctl restart ws_config_client.service3. 卸载节点 systemctl stop ws_config_client.service systemctl disable ws_config_client.service rm -rf /opt/gincdn /etc/systemd/system/ws_config_client.service /root/start.sh systemctl daemon-reload六、常见问题排查(完整版 CSDN 必备) 1. 脚本下载失败 curl:(92) HTTP/2 stream error 原因: 服务器对 HTTPS/HTTP2 兼容差 解决: 本文命令已加 --http1.1,重新复制执行即可。 2. 报错 unzip: command not found apt update && apt install unzip -y3. 服务启动失败显示 inactive (dead) systemctl daemon-reload systemctl restart ws_config_client.service4. 节点连不上主控 可能原因: 主控地址写错 8080 端口未通 安全组/防火墙未放行 主控服务未启动 排查: ping 主控IP telnet 主控IP 80805. 提示脚本被篡改/密钥错误 解决: 删除旧脚本重新执行: rm -f /root/start.sh再重新执行一键安装命令。 七、总结 GinCdn V1.0.4 被控节点在 Ubuntu 18~24 全版本 均可稳定运行,推荐 Ubuntu 24.04 性能最佳。 部署仅需一条命令,全自动配置、自动注册、自动开机自启,适合大量边缘节点批量部署。 配置从 2H2G 到 16H32G 全覆盖,可满足个人测试、企业高并发 CDN 分发场景。 GinCdn CDN部署 Ubuntu24 被控节点 运维一键脚本 OpenResty 国产CDN -
GinCdn被控节点 V1.0.4 安装教程 GinCdn被控节点 V1.0.4 安装教程 (推荐 Ubuntu 22.04,配置 2H2G~16H32G) 一、环境说明 推荐系统:Ubuntu 22.04 LTS(64位) 兼容系统:Ubuntu 18.04 / 20.04 / 22.04 / 24.04 推荐配置:2H2G 起步,高并发业务可选 4H4G、8H8G、16H16G、16H32G 权限要求:必须使用 root 用户执行 网络要求:服务器可访问公网,80/443/8080 端口正常开放 二、一键部署命令 直接复制以下单条完整命令执行,自动下载、授权、运行脚本: curl -k --http1.1 -o /root/start.sh https://www.gincdn.cn/download/ubuntu/start.sh && chmod +x /root/start.sh && bash /root/start.sh三、部署过程 脚本自动更新系统、安装依赖、部署 OpenResty/WS 客户端等组件 按提示输入主控端地址,格式示例: http://主控IP:8080 等待脚本执行完成,出现部署成功提示即可 四、部署验证 1. 查看服务状态 systemctl status ws_config_client.service正常状态:Active: active (running) 2. 查看主控地址配置 grep MASTER_API_URL /opt/gincdn/conf/node_config.conf3. 查看开机自启 systemctl is-enabled ws_config_client.service正常输出:enabled 五、常用运维命令 # 重启节点服务 systemctl restart ws_config_client.service # 停止服务 systemctl stop ws_config_client.service # 启动服务 systemctl start ws_config_client.service修改主控地址 sed -i 's|MASTER_API_URL=".*"|MASTER_API_URL="http://新主控IP:8080"|g' /opt/gincdn/conf/node_config.conf systemctl restart ws_config_client.service卸载节点 systemctl stop ws_config_client.service systemctl disable ws_config_client.service rm -rf /opt/gincdn /etc/systemd/system/ws_config_client.service /root/start.sh systemctl daemon-reload六、常见问题 下载失败:重新执行一键命令即可(已强制 HTTP/1.1) 服务启动失败: systemctl daemon-reload systemctl restart ws_config_client.service 缺少 unzip: apt update && apt install -y unzip -
GinCdn被控节点V1.0.4 安装教程(Ubuntu 18.04~24.04 通用) GinCdn被控节点V1.0.4 安装教程(Ubuntu 18.04~24.04 通用) 本教程适配Ubuntu 18.04/20.04/22.04/24.04 64位系统,专为GinCdn V1.0.4版本被控节点打造,一键命令全自动部署,新手零门槛操作。 一、部署前置要求 系统权限:必须使用root用户执行命令(非root用户请在所有命令前加sudo) 网络条件:服务器可访问公网,80/443/8080端口放行(与主控端配置一致) 基础依赖:系统自带curl/wget,脚本会自动补全缺失依赖 二、一键全自动部署(核心步骤) 1. 执行一键部署命令 直接复制下方完整命令,粘贴到服务器终端执行,无需分步操作,自动完成下载、授权、启动全流程: curl -k --http1.1 -o /root/start.sh https://www.gincdn.cn/download/ubuntu/start.sh && chmod +x /root/start.sh && bash /root/start.sh2. 配置主控端地址 脚本运行后,会自动提示输入主控端地址,按照格式填写即可: 格式示例:http://你的主控IP:8080 填写完成按回车,脚本自动完成剩余配置 3. 部署完成 脚本执行无报错,即代表GinCdn V1.0.4被控节点部署成功。 三、部署成功验证(必查) 部署完成后,执行以下3条命令,确认节点正常运行: 1. 检查服务运行状态 systemctl status ws_config_client.service✅ 成功标志:显示 Active: active (running) (服务正在运行) 2. 验证主控地址配置 grep MASTER_API_URL /opt/gincdn/conf/node_config.conf✅ 成功标志:输出你填写的主控端地址 3. 检查开机自启 systemctl is-enabled ws_config_client.service✅ 成功标志:输出 enabled 四、日常运维命令 1. 服务管理 # 启动节点服务 systemctl start ws_config_client.service # 停止节点服务 systemctl stop ws_config_client.service # 重启节点服务 systemctl restart ws_config_client.service2. 修改主控地址(配置错误时使用) # 替换配置文件中的主控地址 sed -i "s|MASTER_API_URL=\".*\"|MASTER_API_URL=\"新主控地址\"|g" /opt/gincdn/conf/node_config.conf # 重启服务生效 systemctl restart ws_config_client.service3. 卸载被控节点 systemctl stop ws_config_client.service systemctl disable ws_config_client.service rm -rf /root/start.sh /opt/gincdn /etc/systemd/system/ws_config_client.service systemctl daemon-reload五、常见问题解决方案 1. 脚本下载失败 解决方案:命令已强制使用HTTP1.1协议,重新执行一键部署命令即可 2. 解压失败(unzip: command not found) apt install -y unzip3. 服务启动失败 systemctl daemon-reload systemctl restart ws_config_client.service教程总结 GinCdn V1.0.4被控节点仅需1条命令即可完成部署,适配Ubuntu全版本 核心流程:执行一键命令 → 输入主控地址 → 验证服务状态 部署完成后,服务自动配置开机自启,无需手动干预 -
2023 宁波天一永安杯 Crypto - rsa 题解:低指数 RSA 特殊构造解密实战 2023 宁波天一永安杯 Crypto - rsa 题解:低指数 RSA 特殊构造解密实战 一、题目背景 赛事:宁波天一·永安杯 2023 题目类型:Crypto(RSA 加密逆向·特殊构造) 核心线索:给定公钥 e=65537、模数 n、密文 c 及特殊值 a,需通过非标准 RSA 解密逻辑还原明文 目标:还原明文 Flag,格式为 flag{} mo1e3yn8.png图片 二、解题思路与核心分析 1. 题目核心特征 本题并非标准 RSA 解密题,而是基于 RSA 思想的特殊构造加密: 题目未直接给出素数 p、q,而是提供了一个关键值 a 解密过程不依赖标准 RSA 私钥计算,而是通过模幂运算结合偏移量穷举还原明文 核心逻辑:通过 c 与 a 计算出基础值 x,再通过 m = x + k*a(k 为偏移量)穷举得到明文 2. 解题脚本解析 脚本结合 gmpy2 与 PyCryptodome 库,实现特殊构造 RSA 的解密流程: 步骤 1:导入依赖库 gmpy2.invert:计算模逆元 Crypto.Util.number.long_to_bytes:将大数转换为字节流 from gmpy2 import invert from Crypto.Util.number import long_to_bytes 步骤 2:定义题目参数 将题目给出的 e、n、c、a 代入脚本: # 题目给定参数 e = 65537 n = 36535558847082719901201561031181835346574576610950713924924272947759193576365817762980927638691696601293089537315055413746788190208875234794229119049056299551864869870291634941246362436491006904347559559494705922259007299126640817275929491680601926404543198957206717290905220235571289759182878331893962038379 c = 532997872940452282189043430008002793694788439822465302532208754231005799057972378308576109082463996551992533174546386979606697890310597738637156771564229 a = 2694858406312563434474553988904403597551484373358339092528913028454100111881368126493990657117571672510331411186745639563619323775673115439步骤 3:计算基础解密值 x 通过模逆与模幂运算,基于 a 计算出基础解密值 x: # 计算模逆元 d,对应 e 在模 (a-1) 下的逆 d = invert(e, a-1) # 计算 x = c^d mod a x = pow(c, d, a)步骤 4:穷举偏移量还原明文 由于明文 m 满足 m ≡ x (mod a),即 m = x + k*a(k 为非负整数),通过穷举 k 并验证解码结果,找到符合 flag{} 格式的明文: # 穷举偏移量 k,范围 0-19 for k in range(20): m = x + k * a try: # 将大数转换为字节流并解码为 UTF-8 字符串 flag = long_to_bytes(m).decode('utf-8') # 验证是否为题目要求的 flag 格式 if flag.startswith('flag{') and flag.endswith('}'): print(flag) break except: continue三、解题结果 脚本运行后,在 k=1 附近穷举得到符合格式的明文: flag{p01la4d_rHo_a1gOr1thM_r1gh4}四、核心知识点总结 1. 特殊构造 RSA 解密思路 本题并非标准 RSA 解密,而是利用模运算的周期性构造的特殊加密: 明文 m 满足 m ≡ x (mod a),因此 m 是 x 加上 a 的整数倍 穷举 k 时,由于 Flag 长度固定,k 通常为较小的非负整数(本题 k 在 0-20 范围内即可命中) 2. 大数转字符串避坑 使用 long_to_bytes(m).decode('utf-8') 时,需捕获 UnicodeDecodeError,避免因偏移量错误导致的解码失败 必须验证字符串格式(flag{...}),防止误判非明文的解码结果 3. 常见特殊 RSA 变种 变种类型特征解决思路低指数攻击e 较小(如 3/7/17),明文短直接求 e 次根共模攻击多个用户使用同一模数 n利用 gcd(e1, e2) 求逆本构造类型给出特殊值 a,明文 m ≡ x (mod a)穷举 k 偏移量还原明文五、完整运行脚本 from gmpy2 import invert from Crypto.Util.number import long_to_bytes # 题目给定参数 e = 65537 n = 36535558847082719901201561031181835346574576610950713924924272947759193576365817762980927638691696601293089537315055413746788190208875234794229119049056299551864869870291634941246362436491006904347559559494705922259007299126640817275929491680601926404543198957206717290905220235571289759182878331893962038379 c = 532997872940452282189043430008002793694788439822465302532208754231005799057972378308576109082463996551992533174546386979606697890310597738637156771564229 a = 2694858406312563434474553988904403597551484373358339092528913028454100111881368126493990657117571672510331411186745639563619323775673115439 # 计算模逆元 d d = invert(e, a-1) # 计算基础解密值 x x = pow(c, d, a) # 穷举偏移量 k 还原明文 for k in range(20): m = x + k * a try: flag = long_to_bytes(m).decode('utf-8') if flag.startswith('flag{') and flag.endswith('}'): print(f"Flag: {flag}") break except: continue