墨少离 - 个人小站,分享一些资源以及心得~ 墨少离的个人小站,主要涉及编程学习,网站开发,ssr机场,V2Ray机场,COSPLAY以及分享一些资源以及心得~ 2025-08-15T18:52:00+08:00 Typecho https://www.msl.la/feed/atom/ <![CDATA[[评测]优质高速稳定SS/VMess/Trojan等机场推荐]]> https://www.msl.la/archives/3/ 2020-12-15T15:05:00+08:00 2020-12-15T15:05:00+08:00 墨少离 https://www.msl.la/ 本文收录并评测支持 SS、VMess、VLESS、Trojan 以及 Hysteria / Hysteria2 等多种协议的稳定机场,重点关注实际使用体验、稳定性与长期可用性。为保证评测的参考价值,文中所推荐机场均在推广前实际使用过一段时间,并以 SS / Trojan 协议机场为主,VMess、VLESS、Hysteria2 等协议为辅。本文将个人认为优质、稳定的几家机场整理汇总,方便读者浏览与对比,并附上相关链接及优惠信息(不定期更新)。

[scode type="red"] 写在前面:本文内容仅用于学习、科研及跨境工作相关的网络技术交流,请读者在使用过程中遵守所在地及中华人民共和国相关法律法规,合理、合法使用网络资源。[/scode]

目录

机场名称机场类别关键词详细介绍快速通道
GsouCloudV2ray/SS性价比高,稳定坚挺,有独立客户端了解更多 注册
⭐GaternV2ray内网专线,稳定性价比高,小众节点支持了解更多 注册
可可云SSR/V2ray新起之秀,平价稳定了解更多 注册
⭐库洛米KuromisSS/Trojan/Https高速节点,唯云莞港专线,苏日专线了解更多 注册
⭐AnylandSS/Trojan多功能综合型机场了解更多 注册
大哥云SS/V2Ray海外运营,稳定专线,优质客服了解更多 注册
觅云(MeCloud)V2ray/SS平价灵活,多年老站了解更多 注册
ByWaveSS多年老站,附赠丰富了解更多 注册
CMYNetworkSSR/V2ray/Trojan内网专线,游戏专线 (部分)了解更多 注册

更多机场请查看: [button type="round" color="success" url="https://www.msl.la/category/Promote/"]点我查看全部机场[/button]

近期拦截频繁,如无法访问请及时告知,本站会尽快更新新的访问地址或移除无法使用的机场

ps:本页所列机场均较为稳定靠谱且价格合理,排序先后不代表排名先后,请根据需求自行选择。本站仅介绍和引荐,不参与购买、服务和售后,此类问题请通过官方联系方式联系官方。
(本站推荐的商家均为可用商家,)


GsouCloud

[scode type="lblue"]官网传送门:点此前往(可用)
官网链接: 点此前往(可用)
官网备用传送门1:点此前往(可用)
官网备用传送门2:点此前往(可用)
[/scode]
注:由于最近拦截比较频繁 如无法访问请使用备用地址

[tabs]
[tab name="简介" active="true"]GsouCloud 是全站专线节点,专线不过墙,高强度加密可保护数据安全性,特点就是稳快 ,无视任何晚高峰、会议,依然4k流畅,油管长期速度保持再5万-20万之间;

  • 高速稳定 体验宛若身在海外的访问速度
  • 节省成本 相比自托管服务可节省大量费用
  • 全球互联 通过 IXP 连接至全球内容提供商,更加快速
  • 便携设置 我们的服务适用于 macOS、iOS、Android、Windows 和 Linux
  • 方便易用 拥有专用的一键客户端,简单易懂不管是新手还是小白,轻松使用
  • 一键导入 支持主流的 Shadowrocket、Clash、Quantumult 一键导入
  • 运营商友好 我们的产品和您的当地运营商兼容,适用于您的固网与移动网络
  • 多应用兼容 提供全面且可靠的第三方应用程序兼容
  • 解锁流媒体 可解锁 Netflix、Hulu、HBO、TVB、Happyon、AbemaTV 等在内的多种流媒体视频,聆听包括 Spotify、Pandora 等在内的流媒体音乐。
  • 多平台完美支持 Gsou Cloud的服务适用于 macOS、iOS、Android、Windows 和 Linux,借助第三方客户端,可在手机、电脑、路由器、游戏机、电视盒子中使用。

不仅仅如此,亦包含以下诸多特性

  • 部分特性需要配合第三方客户端与托管规则使用
  • 过滤常用网站广告、常用视频广告、其他流媒体网站广告
  • 智能分流系统,所有国内网站直线连接,增强用户体验
  • Apple服务加速 (App Store、Apple Music、iCloud、iTunes等)
  • 国外常用网站加速 (Google/Youtube/Twitter/Instgram/Github等)
  • 在传输过程中使用最强的加密方式,保护用户数据和隐私
  • 与诸多平台上的优秀应用程序兼容,这些应用程序由许多创新公司和开发人员开发

[/tab]
[tab name="套餐"]

套餐每月流量(GB)月付(元)季付(元)半年(元)年付(元)
Simple100204884144
Lite1502560105180
Pro2253072126216

[/tab]
[tab name="优惠"]

[scode type="green"]全部套餐在官网购买时,在支付前界面中优惠码,使用优惠码可享8折优惠。
优惠码:msl.la
[/scode]

[/tab]
[/tabs]


Gatern

[scode type="lblue"]官网传送门:点此前往
[/scode]

[tabs]
[tab name="简介" active="true"]Gatern是一家专业的高速稳定V2Ray机场,支持看奈飞Netflix/HULU/HBO/TVB/动画疯等国外流媒体视频,全部使用BGP隧道中转和IPLC内网专线,因为IPLC内网专线不过GFW,不会被封锁,在特殊时期也非常稳定。此外,Gatern不限制同时在线的设备数量,只要您套餐流量充足,可以随意使用。本人使用一段时间后,我认为其服务器线路节点稳定性和网络连接质量都是非常优秀的。

  • 在全球拥有超过40个优质线路节点,全部采用BGP隧道中转/IPLC内网专线;
  • 在全球拥有中国香港、中国台湾、日本、美国、加拿大、新加坡、菲律宾、韩国、印度、澳大利亚、英国、法国、德国、荷兰、俄罗斯、土耳其以及埃及和阿根廷等超过15个国家和地区的优质线路节点;
  • 最高500Mbps的超大网络带宽,绝对能满足大流量用户的使用需求;
  • 支持NETFLIX/HBO/TVB/ABEMATV/动画疯等国外流媒体解锁;
  • 只要套餐流量充足,不限制同时在线设备数量,理论上可无限多人同时使用;
  • 支持支付宝和虚拟货币在线付款,方便快捷;
  • 客户服务支持在线提交工单和实时聊天沟通。[/tab]
    [tab name="套餐"]

    套餐每月流量(GB)月付(元)季付(元)半年(元)年付(元)
    Nano1002471140271
    Micro18040118233451
    Small38076255442857
    Medium7401484378611669
    Large146029286316993294

购买套餐:点击直达Gatern官网购买套餐

注意事项:Gatern套餐流量在每月结算日会自动重置流量,多次购买流量包套餐,流量不可叠加,仅可用完后再次购买使用。
[/tab]
[tab name="优惠"]

[scode type="green"]通过本站专属Gatern注册链接,并使用本站专属Gatern优惠码: msl.la
可享受9折优惠~(试用套餐和流量包不可用)
[/scode]
充值获取赠金:
充100到账110
充200到账230
充300到账350
充500到账600
充1000到账1200
[/tab]
[/tabs]


CMYNetwork红莓网络

[scode type="lblue"]官网传送门:点我进入
备用传送门:点我进入[/scode]

[tabs]
[tab name="简介" active="true"]CMYNetwork 红莓网络 是一家我最近发现一家宝藏机场,除入门套餐外采用全内网中转节点;入门套餐采用 Trojan 新协议,保证稳定性;更有回国专用套餐。经测速和日常使用,可以说是稳定高速,高峰期速度也能拉满。提供网页在线客服和工单,服务还不错。持续使用体验仍在继续跟踪。

  • 分级解锁内网中转节点、IPLC专线、IEPL及游戏专线
  • 提供各种流媒体解锁,福利中心对最高级套餐提供各种视频会员共享账号
  • 多平台定制客户端(windows/macos/android),简单易用
  • 提供 Quantumultx、小火箭、ClashR、trojan订阅,支持按地区及功能获取订阅
  • 有灵活的叠加流量包供高速流量将尽时使用
  • 流量用完后,提供无限量限速流量,限速2Mbps
  • 限制公网ip同时在线数量,以公网ip为准,同一台路由- 器下无论多少设备只算做一个ip在线,适合团队使用
  • 注册并绑定手机号,赠送3天试用会员(非强制)
    [/tab]
    [tab name="套餐"]

    套餐名称 每月流量 时间/天 费用/元 线路 备注
    Return/海外回国版 100   GiB 30 39 仅有回国节点,无海外节点 2个公网IP同时在线
    解锁国内音乐/视频/直播
    90 117
    365 412
    Air/入门版 100 GiB 30 18 国际轻量优化链路
    仅支持 Trojan 协议
    2个公网IP同时在线
    100 GiB 90 54
    125 GiB 180 108
    150 GiB 395 191
    Pro/专业版 200 GiB 30 35 Air版基础上解锁:
    - CN2优化直连专线(Trojan)
    - IPLC流媒体专线(SSR)
    - 港/台/日/美原生IP线路(Trojan)
    3个公网IP同时在线
    200 GiB 90 105
    250 GiB 180 210
    300 GiB 395 366
    Extreme/至尊版 512 GiB 30 68 Pro版基础上解锁:
    - IEPL 流媒体专线
    - IEPL 游戏专线 (内网)
    4个公网IP同时在线
    Netflix/HULU/HBO/PH 等价值千元福利账号
    643 GiB 90 199
    768 GiB 180 399
    1024 GiB 395 688
    Business/企业定制版 2048 GiB 30 298 10个公网IP同时在线
    180 1788
    定制

    [/tab]
    [tab name="优惠"]使用本站专属邀请码注册,可免费获得10元网站余额红包,可用于购买套餐。

[scode type="green"]邀请码:1BQEEV
官网传送门:点此前往
[/scode]
[/tab]
[/tabs]


ByWave

[scode type="lblue"]官网传送门:点此进入[/scode]

[tabs]
[tab name="简介" active="true"]ByWave,是一家主打高端的V2ray机场。已使用一段时间,体验良好。这家机场主要走高端,拥有阿里云/WTT/HKT等线路,且全内网中转节点,更提供有IPLC专线(专线套餐),现在我将其作为主要加速服务使用。

ps:内网中转线路及IPLC专线成本极高,但质量极佳,体验十分稳定,在历次冲击下均无影响。

  • 线路全内网中转节点
  • 3Gbps带宽专线
  • 速度高端,稳定高端,质量高端价格也高端
  • 拥有港深、香港、美国、东京、俄罗斯等节点
  • 支持Win/Mac/Android/iOS,解锁Netflix/HBO/Hulu等访问
  • 对于使用的设备数量没有限制,单个账号可多台设配使用,若是团队使用购买,可以分摊成本
  • 支持支付宝
    [/tab]
    [tab name="套餐"]以下套餐价格均为折扣前价格,计算了一下价格曲线,这家套餐中的年付套餐起的套餐,更具性价比。
    两种套餐中包含线路完全相同,仅付费方式不同。
套餐每月流量(GB)月付(元)季付(元)半年(元)年付(元)年付(元)年付(元)
Bronze1002575150280500720
Silver180451352704809001320
Gold2656519539068013001920
Platinum505125375750148029004320
Diamond8502056151230228045006720
RedBeryl1700405121524304680930013920

[/tab]
[tab name="优惠"]
官方优惠
[scode type="green"]

ByWave 2022虎年优惠
以下优惠码均可在续费或新购时使用。

优惠代码:虎虎生风
额度: 7折一次性优惠
适用范围: 年付或以上(兩年或更久)

优惠代码:大吉大利
额度: 8折循环5次优惠
适用范围: 月付 季付 半年付 一次性流量包

循环优惠是购买套餐或续费管理可以使用优惠,并在在当前购买套餐后还可以再以五次的优惠价格进行续费
[/scode]
充值获取赠金长期活动
充100到账115
充200到账240
充500到账600
充1000到账1200

充值以上指定数额自动到账(可以分开充不限次数,指定数额以外比如201 300不送)
[/tab]
[/tabs]


  • 介绍和引荐,不参与购买、服务和售后,此类问题请通过官方联系方式联系官方。
  • 有疑问,可在评论区回复,留言需要回复的请按实填写邮箱等信息,精力有限,匿名留言概不回复,谢谢!
]]>
<![CDATA[WP Real IP Checker]]> https://www.msl.la/archives/618/ 2025-08-15T18:52:00+08:00 2025-08-15T18:52:00+08:00 墨少离 https://www.msl.la/ 📌 插件简介

WP Real IP Checker 是一款适用于 WordPress 的插件,用于在反向代理或 CDN(如 CloudflareNginxAkamai 等)环境下获取访问者的真实客户端 IP
支持可信代理 CIDR 白名单,可选安全模式,并支持自动获取 Cloudflare 官方网段(手动同步 + 定时任务刷新)。


✨ 功能特点

  • 精准 IP 获取
    支持 Cloudflare 专用头 CF-Connecting-IPTrue-Client-IP,Nginx 常用头 X-Forwarded-ForX-Real-IP 等。
  • 安全模式
    仅当请求来源于可信代理 CIDR 列表时才信任代理头部,防止 IP 伪造。
  • Cloudflare 自动网段同步
    一键手动同步 + 首次开启自动预热 + WP-Cron 定时每日更新。
  • 后台页脚显示当前 IP(仅管理员可见)
  • 前台短代码 [real_ip] 显示当前访问者的 IP。
  • 调试模式(WP_DEBUG) 可输出当前解析路径及缓存信息。

🛠 安装方法

  1. 下载插件文件 real-ip-checker ,将整个文件上传到:

    /wp-content/plugins/real-ip-checker/
  2. 进入 WordPress 后台 → 插件 → 启用 Real IP Checker
  3. 后台左侧菜单 → 设置Real IP Checker 进行配置。

⚙️ 配置说明

1. 只信任可信代理的头部(安全模式)

  • 建议开启(生产环境):仅在来源 IP 属于可信代理 CIDR 时,才解析代理头部。
  • 关闭后将无条件解析头部(风险高,测试环境可用)。

2. 自动包含 Cloudflare 官方网段

  • 开启后插件会从 Cloudflare 官网抓取并缓存 IPv4 / IPv6 网段。
  • 支持:

    • 手动同步按钮 → 立即更新缓存
    • 首次开启预热 → 保存设置时自动抓取
    • WP-Cron 自动刷新 → 每日更新一次

3. 自定义可信代理(CIDR / IP)

  • 每行填写一个 IPv4 / IPv6 地址或 CIDR 段。
  • 可与 Cloudflare 网段叠加使用。

4. 后台页脚显示当前 IP

  • 仅管理员可见,用于快速确认解析结果。

🔍 IP 解析逻辑

  1. 安全模式开启且来源不在可信代理列表 → 直接使用 REMOTE_ADDR
  2. 来源在 Cloudflare 官方网段 → 只解析:

    • CF-Connecting-IP(优先)
    • True-Client-IP(备选)
  3. 来源在其他可信代理网段 → 按顺序解析:

    • X-Forwarded-For(取最左公共 IP)
    • X-Real-IPClient-IP
  4. 以上均未命中 → 回退 REMOTE_ADDR

🧩 短代码

  • [real_ip]
    在页面或文章中输出当前访问者 IP。

🧪 调试模式

  • wp-config.php 中开启:

    define('WP_DEBUG', true);
  • 后台页脚会显示:

    • 访问来源 IP (REMOTE_ADDR)
    • 是否来自可信代理
    • 解析出的真实 IP
    • 缓存的 Cloudflare 网段数量

🗓 定时任务

  • 插件激活时自动注册 WP-Cron 事件 ric_cron_refresh_cf
  • 每日随机延迟 5~30 分钟后执行一次 Cloudflare 网段更新。
  • 插件停用/卸载会自动清理定时任务与缓存。

📜 许可证

本插件遵循 GPLv2 或更高版本 开源协议。

]]>
<![CDATA[GitHub 下载服务 API 文档]]> https://www.msl.la/archives/616/ 2025-07-22T04:14:47+08:00 2025-07-22T04:14:47+08:00 墨少离 https://www.msl.la/ 📦 GitHub 下载服务 API 文档

闲得无聊弄的玩的,有兴趣的可以试试

API地址:https://dl-get.ytools.cc/
所有接口统一前缀:/api


🔹 1. 获取最新版本标签

接口地址: /api/latest-tag
请求方式: POST

请求参数:

{
  "repo": "owner/repository",   // 例如 "moshaoli688/miaospeed"
  "pre": false                  // 是否包含预发布版本(可选,默认 false)
}

响应示例:

{
  "tag": "v2.3.1"
}

🔹 2. 获取发布版本列表

接口地址: /api/releases
请求方式: POST

请求参数:

{
  "repo": "owner/repository",
  "pre": false
}

响应示例:

{
  "releases": [
    {
      "tag_name": "v2.3.1",
      "name": "Release Title",
      "prerelease": false,
      "assets": [
        {
          "name": "example-linux-x64.tar.gz",
          "browser_download_url": "https://github.com/xxx/xxx/releases/download/..."
        }
      ]
    }
  ]
}

🔹 3. 获取匹配的下载链接(自动识别操作系统/架构

接口地址: /api/download-url
请求方式: POST

请求参数:

{
  "repo": "owner/repository",
  "tag": "v2.3.1",       // 可选,默认使用最新版本
  "os": "linux",
  "arch": "amd64",
  "cpu": "v3"            // 可选,如 v1/v2/v3/avx2 等
}

响应示例:

{
  "tag": "v2.3.1",
  "assets": [
    {
      "name": "example-linux-amd64-v3.tar.gz",
      "url": "https://github.com/xxx/xxx/releases/download/..."
    }
  ]
}
]]>
<![CDATA[NTP服务器地址大全]]> https://www.msl.la/archives/615/ 2025-05-19T17:10:00+08:00 2025-05-19T17:10:00+08:00 墨少离 https://www.msl.la/ [scode type="lblue"] NTP服务器是提供网络时间协议服务的服务器,可以帮助计算机系统保持准确的时间同步,确保网络中的所有设备时间一致。
[/scode]

[tabs]
[tab name="国内NTP服务器" active="true"]

名称地址
国家授时中心 NTP 服务器 NTSC NTP Serverntp.ntsc.ac.cn
中国 NTP 快速授时服务 NTP ORG CNcn.ntp.org.cn
edu.ntp.org.cn
国际 NTP 快速授时服务 Pool NTP ORGcn.pool.ntp.org
阿里云公共 NTP 服务器 Aliyun NTP Servertime.pool.aliyun.com
time1.aliyun.com
time2.aliyun.com
time3.aliyun.com
time4.aliyun.com
time5.aliyun.com
time6.aliyun.com
time7.aliyun.com
腾讯云公共 NTP 服务器 Tencent Cloud NTP Servertime1.cloud.tencent.com
time2.cloud.tencent.com
time3.cloud.tencent.com
time4.cloud.tencent.com
time5.cloud.tencent.com
教育网(高校自建) EDU NTP Serverntp.sjtu.edu.cn
ntp.neu.edu.cn
ntp.bupt.edu.cn
ntp.shu.edu.cn
ntp.tsinghua.edu.cn
ntp.fudan.edu.cn
中国科学院 NTP 服务器 CAS NTP Serverntp.cas.cn

[/tab]
[tab name="国际NTP服务器"]

名称地址
国际 NTP 快速授时服务 Pool NTP ORGpool.ntp.org
0.pool.ntp.org
1.pool.ntp.org
2.pool.ntp.org
3.pool.ntp.org
asia.pool.ntp.org
europe.pool.ntp.org
north-america.pool.ntp.org
谷歌公共 NTP 服务器 Google NTP Servertime1.google.com
time2.google.com time3.google.com
time4.google.com
苹果公司公共 NTP 服务器 Apple NTP Servertime.apple.com
time1.apple.com
time2.apple.com
time3.apple.com
time4.apple.com
time5.apple.com
time6.apple.com
time7.apple.com
微软 Windows NTP 服务器 Microsoft Windows NTP Servertime.windows.com
美国标准技术研究院 NTP 服务器 NIST NTP Servertime.nist.gov
time-nw.nist.gov
time-a.nist.gov
time-b.nist.gov
time-c.nist.gov
time-d.nist.gov
香港天文台公共 NTP 服务器 Hong Kong Observatory NTP Serverstdtime.gov.hk
time.hko.hk
亚马逊公共 NTP 服务器 Amazon NTP Servertime.aws.com
Cloudflare NTP 服务器 Cloudflare NTP Servertime.cloudflare.com
Facebook NTP 服务器 Facebook NTP Servertime.facebook.com
德国物理技术研究所 PTB NTP Serverptbtime1.ptb.de
ptbtime2.ptb.de
ptbtime3.ptb.de

[/tab]
[/tabs]

常用NTP服务器地址大全

NTP(Network Time Protocol,网络时间协议)用于在计算机系统之间进行时间同步。为了确保系统时钟准确,管理员可通过配置可靠的 NTP 服务节点,实现系统时间自动同步。

NTP服务器地址大全整理了国内及国外常用的公共NTP时间同步服务器IP地址列表,用户在选择NTP服务器地址时,需要根据自己的实际需求,并避免选择高危NTP服务器地址,以保证网络安全。

一、NTP服务器是什么?

NTP 服务器(Network Time Protocol Server)是一种用于提供准确时间信息和实现时间同步的服务器。NTP 是一种网络协议,用于在计算机网络中同步各个设备的时间。

NTP 服务器通过连接到可靠的时间源(如原子钟、GPS 信号等)获取准确的时间,并将其传递给连接到服务器的客户端。NTP 服务器会对时间进行精确的校准和调整,以提供准确的时间信息。

二、NTP服务器的作用

  • 时间源:NTP服务器连接着更可靠的时间源,如原子钟,GPS时间等。普通服务器则通常依赖于本地计算机时钟,时钟误差可能会较大。
  • 时间校准:NTP 服务器定期从可靠时间源进行时间校准,保证提供最新的标准时间。普通服务器本地时钟可能长期没有进行校准,时间- 误差会越来越大。
  • 网络延迟:NTP 服务器考虑网络传输延迟等因素,可以提供校正后的时间。普通服务器返回的仅仅是本地时间,无法校正网络延迟影响。
  • 可靠性要求:作为时间同步源,NTP 服务器需要高可用性和稳定性,一般部署在可靠基础设施上。普通服务器无法保证这一点。
  • NTP 协议支持:NTP定义了时间同步协议与算法,可以进行精确时间同步。普通服务器无法利用这一标准协议提供同步服务。
  • 管理与监控:NTP服务器需要专业管理和监控以保证服务质量,普通服务器通常无法做到这一点。

配置建议

  • 推荐使用多个 NTP 地址提高稳定性
  • 防火墙请放行 UDP 123 端口
  • Linux 可配置于 /etc/ntp.conf 或 /etc/chrony.conf
    授时准确对于服务器、数据库、日志、区块链系统等尤为重要。请选用可信 NTP 节点,避免时间漂移导致的故障风险。
]]>
<![CDATA[Huawei R4850G2 Power Supply 53.5VDC, 3kW with CAN]]> https://www.msl.la/archives/610/ 2025-02-22T19:44:00+08:00 2025-02-22T19:44:00+08:00 墨少离 https://www.msl.la/ 2025-02-22T11:32:52.png
The Huawei R4850G2 is a very capable 48V Telecommunications grade power supply available brand-new at cheap surplus prices (normally under $100 USD). Rated at 3000W, it can deliver a considerable 56.1A when powered from a suitable 200-240V rated AC source. The CAN2.0B interface allows for online monitoring and/or adjustment of the output voltage and current.

Given the power supply is a Telecoms spare part (most likely for a Huawei mobile phone Base Terminal Station), a surprisable amount of official documentation exists on the hardware from the manufacturer:

But when it comes to the CAN communications protocol and operation, the best source of information, although sketchy, comes from radio/electronics enthusiasts in Chinese forums.

We strive to demystify some of the details below and provide reference software to talk to the unit via CAN.

The Purchase

I was first made aware of the R4850G2 by YouTuber Schematix. He presented a 17 minute video on the power supply at Cheap 3Kw PSU for Induction Heater ll Huawei R4850G2 PSU

My PSU was purchased from a local Australian ebay merchant (link here) for $49 AUD plus $15.35 shipping (Approximately $50 USD). However, if shipping from Australia is cost prohibitive, Aliexpress and Alibaba appear to also be a good source.

While Schematix details modifying the supply to make good connection to the edge connector, you can pick up a suitable connector: i.e. For Huawei R4850G2 rectifier module communication power plug. This set me back $23.28 AUD, but allows for a more professional connection.

Connections

2025-02-22T11:35:38.png
The power supply is designed to be inserted into a slot/backplane and hence all connections to the power supply is by means of a edge connector. Inclusion of Pre-charge pins allow multiple units to be paralleled and hot swapped.
2025-02-22T11:36:14.png
Huawei go someway in documenting the connector in version 1.4 of their User Manual. However, they miss off two critical pins required to enable an output. Next to the CAN pins are what we call ‘slot detect 1’ and ‘slot detect 2’

2025-02-22T11:37:21.png

Mating Connector

As indicated earlier, I had also purchased a mating connector for the PSU from ebay. Below are the pictures on arrival.
2025-02-22T11:37:48.png
2025-02-22T11:38:00.png
On the bottom of the connector is the part number. It appears to be a connector from Chinese manufacturer Jonhon. The part number is DP4SC0504-001.

The drawing doesn’t include the flying lead connectors for the CAN or Slot Detection, only making mention that there are five signal contacts with wires and termination when customised.

The connectors appear to be JST SM connectors. The female is the Slot Detection (‘on/off’) connection, while the male is the CAN Bus. You can choose to purchase some, or cut them off and add your own. For the time being, I have shoved a 0.1″ header into the Slot Detection.
2025-02-22T11:39:23.png
To enable the power supply, connect both the slot detect 1 and slot detect 2 pins to OUTPUT- (negative).

While not mandatory to enable the output, you should also connect Pre-Charge to OUTPUT-. For those using the DP4SC0504-001, the Pre-Charge is wired internally to the OUTPUT-.

At this stage, you should have a dumb 53.5V, 56.1A power supply unit.

CAN Interface & Protocol

The CAN interface operates at 125kbps with extended 29 bit identifiers.

On power up, the unit will send out unsolicited packets and this can be useful in ensuring your hardware is working correctly.

Statistics

To request statistics such as the Input Voltage/Frequency/Current, Output Voltage/Current, Efficiency etc. one can send a single eight byte zero padded frame to the CAN address/ID 0x108040FE. The device should respond with a series of frames with ID 0x1081407F conforming the following format:
2025-02-22T11:40:00.png
The 2nd byte in the frame appears to indicate what parameter is being sent. The parameter’s value is contained in the last four bytes with byte 7 being the least significant byte.

For example, this is a output from candump:

  can0  1081407F   [8]  01 0E 00 00 00 00 00 0A  
  can0  1081407F   [8]  01 70 00 00 00 01 A6 84   (Input Power)
  can0  1081407F   [8]  01 71 00 00 00 00 C8 0A   (Input Freq)
  can0  1081407F   [8]  01 72 00 00 00 00 01 C2   (Input Current)
  can0  1081407F   [8]  01 73 00 00 00 01 80 8E   (Output Power)
  can0  1081407F   [8]  01 74 00 00 00 00 03 A4   (Efficiency)
  can0  1081407F   [8]  01 75 00 00 00 00 D5 C8   (Output Voltage)
  can0  1081407F   [8]  01 76 00 00 00 00 04 6A   (Maximum Output Current)
  can0  1081407F   [8]  01 78 00 00 00 03 C0 80   (Input Voltage)
  can0  1081407F   [8]  01 7F 00 00 00 00 64 00   (Output Stage Temperature)
  can0  1081407F   [8]  01 80 00 00 00 00 70 00   (Input Stage Temperature)
  can0  1081407F   [8]  01 81 00 00 00 00 07 B2   
  can0  1081407F   [8]  01 82 00 00 00 00 07 32   (Output Current)
  can0  1081407E   [8]  01 83 00 10 00 00 00 00

Note: It’s currently not known what the two different (0x81 & 0x82) current parameters are. I personally find 0x81 is more accurate compared to a bench meter in series with the output. If you know more, please leave a comment below.

Setting Values

To set either the output voltage or current limit, send a frame to 0x108180FE with the following format:
2025-02-22T11:40:40.png
Again, the 2nd byte in the frame indicates what parameter is being set.

The power supply should acknowledge the command with a packet of ID 0x1081807E. The ack frame should have identical contents, except if an error has occurred, in which case the first byte contains 0x21.

If the set value is out of range, an error will be flagged. This is a useful way of determining the range of acceptable values.

Modes of Operation

The power supply can operate in two different modes – we call this on-line and off-line.

Off-line is when there is no CAN communications – i.e. the power supply is operating in standalone mode. Off-line values are non-volatile and also used as the default value when the power supply first powers up.

On-line is when there is valid CAN communications addressed to the power supply. This mode will time-out approximately 60 seconds after the last CAN message and will be indicated on the front panel via a flashing yellow alarm indicator.

On-line values are volatile and set to the default values upon entry into this mode.

Therefore, if you send a command to set the on-line output voltage (0x00), the output voltage should be reflected immediately. If no further messages are sent (to any valid CAN ID), the output voltage will return to the default off-line voltage after approximately 60 seconds. Provided a valid CAN message is sent within the timeout period, the output should remain equivalent to the on-line output voltage parameter.

To date, I’m unaware how to read the above parameters back. If you know more, please leave us a comment below.

Specifications

While the data sheet indicates the output voltage is adjustable from 42~58VDC, different ranges exist between on-line and off-line:

  • Output Voltage – Online – 41.5 to 58.5 volts, 0.1A steps
  • Output Voltage – Offline – 48 to 58.5 volts, 0.1A steps
  • Current Limiting – 0 to 60A, 0.1A steps

Reference Software

To test the protocol, I have developed some reference software at https://github.com/craigpeacock/Huawei_R4850G2_CAN

It takes advantage of the Linux SocketCAN interface meaning you can use it on a Linux Desktop with an appropriate SocketCAN CAN Interface Adapter, or on embedded platforms such as the Raspberry PI / Beaglebone with suitable controllers/transceivers.
2025-02-22T11:42:20.png
The software can be used to set the output voltage and maximum current:

Huawei R4850G2 53.5VDC 3000W Rectifier Configuration Utility V1.1
http://www.beyondlogic.org
Usage: r4850 [options] <CAN interface>
Options:
   -v <voltage>   (Set Power Supply Voltage)
   -c <current>   (Set Maximum Current)
   -s              (Save settings to non-volatile memory/off-line)

And report statistics:

Input Voltage 237.88V @ 50.03Hz
Input Current 0.41A
Input Power 98.18W

Output Voltage 47.98V
Output Current 1.97A of 37.70A Max, 0.002Ah
Output Power 89.36W

Input Temperature 27.0 DegC
Output Temperature 27.0 DegC
Efficiency 91.0%

Battery Charging

The current limiting on the R4850 makes it perfect for charging 48V battery packs.

2025-02-22T11:43:29.png

Huawei R4850G2 53.5VDC 3000W Rectifier Configuration Utility V1.1
http://www.beyondlogic.org

Input Voltage 237.34V @ 49.98Hz
Input Current 4.86A
Input Power 1154.06W

Output Voltage 55.01V
Output Current 20.32A of 20.00A Max
Output Power 1110.10W, 5.230Ah

Input Temperature 22.0 DegC
Output Temperature 38.0 DegC
Efficiency 96%

资料来源:
https://www.beyondlogic.org/review-huawei-r4850g2-power-supply-53-5vdc-3kw/
https://github.com/craigpeacock/Huawei_R4850G2_CAN
https://github.com/BotoX/huawei-r48xx-esp32

]]>
<![CDATA[本站提供的公益性加速]]> https://www.msl.la/archives/596/ 2024-12-11T04:52:42+08:00 2024-12-11T04:52:42+08:00 墨少离 https://www.msl.la/ docker k8s加速

docker.moshaoli.com
quay.moshaoli.com
gcr.moshaoli.com
k8s-gcr.moshaoli.com
k8s.moshaoli.com
ghcr.moshaoli.com

至于怎么用 懂得都懂

]]>
<![CDATA[屏蔽WordPress 注册/重置密码/更改密码邮件通知管理员]]> https://www.msl.la/archives/594/ 2024-03-25T11:46:33+08:00 2024-03-25T11:46:33+08:00 墨少离 https://www.msl.la/ 在WordPress网站中,当用户注册新账户、重置密码或更改密码时,通常会自动发送电子邮件通知。然而,有时候网站管理员希望禁止这些电子邮件通知,以避免用户受到不必要的垃圾邮件或保护用户隐私。在本篇文章中,我将向大家介绍如何使用代码禁止WordPress在注册新用户、重置密码和更改密码时发送电子邮件通知。
如果不需要邮件通知,可以将下面代码添加到主题函数模板 functions.php中:

// 禁止用户注册时发送电子邮件给管理员
add_filter( 'wp_new_user_notification_email_admin', '__return_false' );

// 禁止用户重置修改密码时发送电子邮件给管理员
add_filter( 'wp_password_change_notification_email', '__return_false' );

// 禁止用户注册时发送电子邮件给注册者
add_filter( 'wp_new_user_notification_email', '__return_false' );

// 禁止邮箱地址改变时发送邮件给注册者
add_filter( 'send_email_change_email', '__return_false' );

// 禁止更改密码时发送电子邮件给注册者
add_filter( 'send_password_change_email', '__return_false' );

以下代码是用来禁止WordPress在用户注册、重置密码、更改密码时发送电子邮件通知的。具体来说,它包括了五个过滤器,每个过滤器都有不同的功能。

wp_new_user_notification_email_admin
这个过滤器是用来禁止用户注册时向管理员发送电子邮件通知的。默认况下,当有新用户注册时,WordPress会向网站管理员发送一封电子邮件通知,告知管理员有新用户注册了。使用这个过滤器后,当有新用户注册时,管理员将不会收到任何电子邮件通知。

// 禁止用户注册时发送电子邮件给管理员
add_filter( 'wp_new_user_notification_email_admin', '__return_false' );

wp_password_change_notification_email
这个过滤器是用来禁止重置密码时向管理员发送电子邮件通知的。默认情况下,当用户重置密码时,WordPress会向网站管理员发送一封电子邮件通知,告知管理员有用户重置了密码。使用这个过滤器后,当用户重置密码时,管理员将不会收到任何电子邮件通知。

// 禁止重置密码时发送电子邮件给管理员
add_filter( 'wp_password_change_notification_email', '__return_false' );

wp_new_user_notification_email
这个过滤器是用来禁止用户注册时向注册者发送电子邮件通知的。默认情况下,当用户注册新账户时,WordPress会向注册者发送一封电子邮件通知,告知用户账户已经创建成功。使用这个过滤器后,当用户注册新账户时,注册者将不会收到任何电子邮件通知。

// 禁止用户注册时发送电子邮件给注册者
add_filter( 'wp_new_user_notification_email', '__return_false' );

send_email_change_email
这个过滤器是用来禁止邮箱地址改变时向注册者发送电子邮件通知的。默认情况下,当用户更改其注册邮箱的时候,WordPress会向新邮箱地址发送一封电子邮件通知,告知用户邮箱地址已经更改成功。使用这个过滤器后,当用户更改其注册邮箱时,新邮箱地址将不会收到任何电子邮件通知。

// 禁止邮箱地址改变时发送禁止给注册者
add_filter( 'send_email_change_email', '__return_false' );

send_password_change_email
这个过滤器是用来禁止更改密码时向注册者发送电子邮件通知的。默认情况下,当用户更改其密码时,WordPress会向用户发送一封电子邮件通知,告知用户密码已经更改成功。使用这个过滤器后,当用户更改密码时,用户将不会收到任何电子邮件通知。

// 禁止更改密码时发送电子邮件给注册者
add_filter( 'send_password_change_email', '__return_false' );

需要注意的是,禁用这些电子邮件通知可能会影响网站的功能。因此,在使用这段代码之前,请确保您了解其影响,并在进行修改之前备份您的网站数据。

转自;https://www.ypojie.com/12144.html

]]>
<![CDATA[如何在 Microsoft Edge 中移除 Bing 工具栏图标]]> https://www.msl.la/archives/592/ 2023-09-15T16:54:00+08:00 2023-09-15T16:54:00+08:00 墨少离 https://www.msl.la/ EDGE
Microsoft Edge 111 正式版已于近日发布,更新后,使用 Edge 的用户可能会注意到一个硕大的 Bing 聊天图标。浏览器还默认启用了 Bing 图标的悬停效果,即使「边栏」被隐藏,如果鼠标向右移动得太远,也可能会意外激活悬停效果并显示侧边栏。

如果您不使用 Bing,或者对 Bing 聊天不感兴趣,但现在每次打开 Edge 浏览器时就会看到一个大大的 Bing 按钮,也着实让人有些无语。更让人无语的是,目前 Microsoft 还没有在 Edge 中集成一个选项来禁用悬停效果和这个图标。
2023-09-15T08:55:02.png

Bing 按钮显示在标题栏的关闭按钮下面,它是 Edge Copilot 计划的一部分,旨在将基于人工智能的 Bing 聊天机器人引入浏览器。但许多 Edge 用户并不喜欢这个变化,因为在访问「设置」功能时,总会不小心误点到 Bing 图标。

好在,有解决方案可以永久性地禁用或移除 Microsoft Edge 工具栏上的 Bing 按钮图标。

从 Windows 上的 Microsoft Edge 中移除 Bing 工具栏图标

方法 1:使用命令参数隐藏 Bing 按钮

此解决方案仅适用于将 Edge 快捷方式放置在「桌面」、「开始」菜单或「任务栏」上的况:

  1. 在「桌面」上右击 Microsoft Edge 快捷方式——在弹出的快捷菜单中选择「属性」;如果将 Edge 固定到了「任务栏」,就右击「任务栏」中的图标——在弹出的快捷窗口中再次右击「Microsoft Edge」——选择「属性」。
    2023-09-15T08:43:45.png
  2. 在「目标」字段现有文本字符串的末尾添加–disable-features=msUndersideButton字符串(注意前面有空格):
    2023-09-15T08:44:27.png
    点击「应用」保存更改,关闭 Microsoft Edge 并使用此快捷方式打开即可生效。

4.(可选)如果重启浏览器之后没有生效,可能是「设置」——「系统和性能」中的「启动增强」功能的影响,将这个功能关掉再重启即可生效。

注意:要完全退出 Microsoft Edge 进程并且禁用「启动增强」才会生效;增加此参数只对已更改的快捷方式才生效。

方法 2:更改注册表移除 Bing 图标

要从 Windows 上的 Microsoft Edge 中完全移除 Bing 按钮图标,可以直接更改注册表:

  1. 使用Window + R快捷键打开「运行」——执行regedit打开注册表编辑器
  2. 导航到: 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\
  3. 选中Microsoft项目——右击选择「新建」一个名为Edge的「项」。
    2023-09-15T08:47:59.png
  4. 选中新建的Edge项——右击选择「新建」一个名为HubsSidebarEnabledDWORD(32 位)值 ,并将其十六进制值设置为0
    2023-09-15T08:48:15.png
  5. 更改完注册表之后,需要打开 Microsoft Edge——在地址栏中输入edge://policy——单击「重新加载策略」Bing 工具栏图标才会消失。
    2023-09-15T08:48:53.png
注意:更改注册表方式不受「启动增强」功能影响。

从 Linux 或 macOS 上的 Microsoft Edge 中移除 Bing 按钮

如果您在 macOS 或 Linux 上使用 Microsoft Edge 浏览器,则隐藏 Bing 按钮的步骤更简单。在这两个平台上,使用特殊的「终端」命令启动 Edge,就不会再显示 Bing 按钮了:

  • macOS 中的命令:open -n -a "Microsoft Edge" --args --disable-features=msEdgeSidebarV2
  • Linux 中的命令:microsoft-edge-stable --disable-features=msEdgeSidebarV2
注意:如果您正在使用 beta 或 dev 版本,则将命令中的 stable 部分替换为对应的版本。

在新版 Microsoft Edge 中直接隐藏 Bing 图标

Microsoft 似乎听到了用户的心声,已经可以在最新版本的 Microsoft Edge 中直接隐藏 Bing 工具栏图标:

  1. 安装/升级最新版 Microsoft Edge,在地址栏中执行edge://settings/help查看版本号,至少要在`111.0.1661.54或更高版本。
    2023-09-15T08:51:49.png
  2. 在浏览器地址栏中执行edge://settings/sidebar——并向下滚动到「特定于应用的设置」部分——找到并点击「Discover」图标。
    2023-09-15T08:53:12.png
  3. 将「显示发现」切换为关闭状态,就会从 Microsoft Edge 工具栏中移除 Bing 图标。
    2023-09-15T08:53:38.png

转自:https://www.sysgeek.cn/microsoft-edge-remove-bing-chat-button/

]]>
<![CDATA[v2board 1.7.4流量隔天统计改回实时统计]]> https://www.msl.la/archives/579/ 2023-08-31T23:36:21+08:00 2023-08-31T23:36:21+08:00 墨少离 https://www.msl.la/ 还原2个PHP文件 路径分别是:

app/Jobs/StatServerJob.php
app/Jobs/StatUserJob.php

这2个文件的代码是:
app/Jobs/StatServerJob.php

<?php

namespace App\Jobs;

use App\Models\StatServer;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class StatServerJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    protected $u;
    protected $d;
    protected $server;
    protected $protocol;
    protected $recordType;

    public $tries = 3;
    public $timeout = 60;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($u, $d, $server, $protocol, $recordType = 'd')
    {
        $this->onQueue('stat');
        $this->u = $u;
        $this->d = $d;
        $this->server = $server;
        $this->protocol = $protocol;
        $this->recordType = $recordType;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $recordAt = strtotime(date('Y-m-d'));
        if ($this->recordType === 'm') {
            //
        }

        $data = StatServer::lockForUpdate()
            ->where('record_at', $recordAt)
            ->where('server_id', $this->server['id'])
            ->where('server_type', $this->protocol)
            ->first();
        if ($data) {
            try {
                $data->update([
                    'u' => $data['u'] + $this->u,
                    'd' => $data['d'] + $this->d
                ]);
            } catch (\Exception $e) {
                abort(500, '节点统计数据更新失败');
            }
        } else {
            if (!StatServer::create([
                'server_id' => $this->server['id'],
                'server_type' => $this->protocol,
                'u' => $this->u,
                'd' => $this->d,
                'record_type' => $this->recordType,
                'record_at' => $recordAt
            ])) {
                abort(500, '节点统计数据创建失败');
            }
        }
    }
}

app/Jobs/StatUserJob.php

<?php

namespace App\Jobs;

use App\Models\StatServer;
use App\Models\StatUser;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class StatUserJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    protected $u;
    protected $d;
    protected $userId;
    protected $server;
    protected $protocol;
    protected $recordType;

    public $tries = 3;
    public $timeout = 60;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($u, $d, $userId, array $server, $protocol, $recordType = 'd')
    {
        $this->onQueue('stat');
        $this->u = $u;
        $this->d = $d;
        $this->userId = $userId;
        $this->server = $server;
        $this->protocol = $protocol;
        $this->recordType = $recordType;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $recordAt = strtotime(date('Y-m-d'));
        if ($this->recordType === 'm') {
            //
        }

        $data = StatUser::where('record_at', $recordAt)
            ->where('server_rate', $this->server['rate'])
            ->where('user_id', $this->userId)
            ->first();
        if ($data) {
            try {
                $data->update([
                    'u' => $data['u'] + ($this->u * $this->server['rate']),
                    'd' => $data['d'] + ($this->d * $this->server['rate'])
                ]);
            } catch (\Exception $e) {
                abort(500, '用户统计数据更新失败');
            }
        } else {
            if (!StatUser::create([
                'user_id' => $this->userId,
                'server_rate' => $this->server['rate'],
                'u' => $this->u,
                'd' => $this->d,
                'record_type' => $this->recordType,
                'record_at' => $recordAt
            ])) {
                abort(500, '用户统计数据创建失败');
            }
        }
    }
}

然后修改
app/Services/UserService.php
查找代码
TrafficFetchJob::dispatch($u, $d, $userId, $server, $protocol);
在下方增加

StatServerJob::dispatch($u, $d, $server, $protocol, 'd');
StatUserJob::dispatch($u, $d, $userId, $server, $protocol, 'd');

保存 完工。。

]]>
<![CDATA[mysql 8.0 配置文件my.cnf中文注解]]> https://www.msl.la/archives/578/ 2023-07-22T23:24:10+08:00 2023-07-22T23:24:10+08:00 墨少离 https://www.msl.la/ my.cnf for MySQL 8.0.x
本配置参考 https://imysql.com/my-cnf-wizard.html
注意:

(1)本配置假设物理服务器内存为 16G,总表数量在300之内,中小型企业业务
(2)请根据实际况作调整部分参数
(3)本人不对这些建议结果负相应责任 ,仅作参考


###########################################################################
## my.cnf for MySQL 8.0.x                                                  
## 本配置参考  https://imysql.com/my-cnf-wizard.html                         
## 注意:                                                                   
##   (1)本配置假设物理服务器内存为 16G,总表数量在300之内,中小型企业业务          
##   (2)请根据实际情况作调整部分参数                                          
##   (3)本人不对这些建议结果负相应责任 ,仅作参考                             
###########################################################################

###########################################################################
##客户端参数配置
###########################################################################
[client]
port    = 3306
socket    =/var/lib/mysql/mysqld.sock

[mysql]
#prompt="\u@mysqldb \R:\m:\s [\d]> "
#关闭自动补全sql命令功能
no-auto-rehash

###########################################################################
##服务端参数配置
###########################################################################
[mysqld]
port    = 3306
datadir    = /var/lib/mysql
socket    = /var/lib/mysql/mysqld.sock
log-error = /var/lib/mysql/error.log
pid-file = /var/lib/mysql/mysqld.pid

#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1

#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4

#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci

#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

# 执行sql的模式,规定了sql的安全等级, 暂时屏蔽,my.cnf文件中配置报错
#sql_mode = STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

#它控制着mysqld进程能使用的最大文件描述(FD)符数量。
#需要注意的是这个变量的值并不一定是你设定的值,mysqld会在系统允许的情况下尽量获取更多的FD数量
open_files_limit    = 65535

#最大连接数
max_connections = 300

#最大错误连接数
max_connect_errors = 600

#在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
#官方建议 back_log = 50 + (max_connections / 5),封顶数为65535,默认值= max_connections
back_log = 110

# The number of open tables for all threads
# For example, for 200 concurrent running connections, specify a table cache size of at least 200 * N, 
# where N is the maximum number of tables per join in any of the queries which you execute. 
table_open_cache = 600

# The number of table definitions that can be stored in the definition cache 
# MIN(400 + table_open_cache / 2, 2000)
table_definition_cache = 700

# 为了减少会话之间的争用,可以将opentables缓存划分为table_open_cache/table_open_cache_instances个小缓存
table_open_cache_instances = 64

# 每个线程的堆栈大小 如果线程堆栈太小,则会限制执行复杂SQL语句
thread_stack = 512K

# 禁止外部系统锁
external-locking = FALSE

#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M

#order by 或group by 时用到
#建议先调整为4M,后期观察调整
sort_buffer_size = 4M

#inner left right join时用到
#建议先调整为4M,后期观察调整
join_buffer_size = 4M

# How many threads the server should cache for reuse.
# 如果您的服务器每秒达到数百个连接,则通常应将thread_cache_size设置得足够高,以便大多数新连接使用缓存线程
# default value = 8 + ( max_connections / 100) 上限为100
thread_cache_size = 20

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

#Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6
#执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout = 3600

#内部内存临时表的最大值。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 64M
max_heap_table_size = 64M

#--###########################-- 慢SQL日志记录 开始 --##########################################

#是否启用慢查询日志,1为启用,0为禁用  
slow_query_log = 1

#记录系统时区
log_timestamps = SYSTEM

#指定慢查询日志文件的路径和名字
slow_query_log_file = /var/lib/mysql/slow.log

#慢查询执行的秒数,必须达到此值可被记录
long_query_time = 5

#将没有使用索引的语句记录到慢查询日志  
log_queries_not_using_indexes = 0

#设定每分钟记录到日志的未使用索引的语句数目,超过这个数目后只记录语句数量和花费的总时间  
log_throttle_queries_not_using_indexes = 60

#对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中
min_examined_row_limit = 5000

#记录执行缓慢的管理SQL,如alter table,analyze table, check table, create index, drop index, optimize table, repair table等。  
log_slow_admin_statements = 0

#作为从库时生效, 从库复制中如何有慢sql也将被记录
#对于ROW格式binlog,不管执行时间有没有超过阈值,都不会写入到从库的慢查询日志
log_slow_slave_statements = 1

#--###########################-- 慢SQL日志记录 结束 --##########################################

#--###########################-- Bin-Log设置 开始 --############################################
server-id = 110

#开启bin log 功能
log-bin=mysql-bin

#binlog 记录内容的方式,记录被操作的每一行
binlog_format = ROW

#对于binlog_format = ROW模式时,FULL模式可以用于误操作后的flashBack。
#如果设置为MINIMAL,则会减少记录日志的内容,只记录受影响的列,但对于部分update无法flashBack
binlog_row_image = FULL

#bin log日志保存的天数
#如果 binlog_expire_logs_seconds 选项也存在则 expire_logs_days 选项无效
#expire_logs_days 已经被标注为过期参数
#expire_logs_days = 7
binlog_expire_logs_seconds = 1209600

#master status and connection information输出到表mysql.slave_master_info中
master_info_repository = TABLE

#the slave's position in the relay logs输出到表mysql.slave_relay_log_info中
relay_log_info_repository = TABLE

#作为从库时生效, 想进行级联复制,则需要此参数
log_slave_updates

#作为从库时生效, 中继日志relay-log可以自我修复
relay_log_recovery = 1

#作为从库时生效, 主从复制时忽略的错误
#如果在备份过程中执行ddl操作,从机需要从主机的备份恢复时可能会异常,从而导致从机同步数据失败
#如果对数据完整性要求不是很严格,那么这个选项确实可以减轻维护的成本
slave_skip_errors = ddl_exist_errors

#####RedoLog日志 和 binlog日志的写磁盘频率设置 BEGIN ###################################
# RedoLog日志(用于增删改事务操作) +  binlog日志(用于归档,主从复制)
# 为什么会有两份日志呢? 
# 因为最开始MySQL没有 InnoDB 引擎,自带MyISAM引擎没有 crash-safe能力,binlog日志只用于归档
# InnoDB 引擎是另一个公司以插件形式引入MySQL的,采用RedoLog日志来实现 crash-safe 能力

# redo log 的写入(即事务操作)拆成两阶段提交(2PC):prepare阶段 和 commit阶段
#(事务步骤1) 执行commit命令,InnoDB redo log 写盘,然后告知Mysql执行器:[你可以写binlog了,且一并提交事务],事务进入 prepare 状态
#(事务步骤2) 如果前面 prepare 成功,Mysql执行器生成 binlog 并且将binlog日志写盘
#(事务步骤3) 如果binlog写盘成功,Mysql执行器一并调用InnoDB引擎的提交事务接口,事务进入 commit 状态,操作完成,事务结束

#参数设置成 1,每次事务都直接持久化到磁盘
#参数设置成 0,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。
#参数设置成 2,只有在操作系统崩溃或者系统掉电的情况下,上一秒钟所有事务数据才可能丢失。
#即便都设置为1,服务崩溃或者服务器主机crash,Mysql也可能丢失但最多一个事务

#控制 redolog 写磁盘频率 默认为1
innodb_flush_log_at_trx_commit = 1

#控制 binlog 写磁盘频率
sync_binlog = 1

#####RedoLog日志 和 binlog日志的写磁盘频率设置 END #####################################

#一般数据库中没什么大的事务,设成1~2M,默认32kb
binlog_cache_size = 4M

#binlog 能够使用的最大cache 内存大小
max_binlog_cache_size = 2G

#单个binlog 文件大小 默认值是1GB
max_binlog_size = 1G

#开启GTID复制模式
gtid_mode = on

#强制gtid一致性,开启后对于create table ... select ...或 CREATE TEMPORARY TABLE 将不被支持
enforce_gtid_consistency = 1

#解决部分无主键表导致的从库复制延迟问题
#其基本思路是对于在一个ROWS EVENT中的所有前镜像收集起来,
#然后在一次扫描全表时,判断HASH中的每一条记录进行更新
#该参数已经被标注为过期参数
#slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'

# default value is CRC32
#binlog_checksum = 1

# default value is ON
#relay-log-purge = 1

#--###########################-- Bin-Log设置 结束 --##########################################

#--###########################-- 可能用到的MyISAM性能设置 开始 --#############################

#对MyISAM表起作用,但是内部的临时磁盘表是MyISAM表,也要使用该值。
#可以使用检查状态值 created_tmp_disk_tables 得知详情
key_buffer_size = 15M

#对MyISAM表起作用,但是内部的临时磁盘表是MyISAM表,也要使用该值,
#例如大表order by、缓存嵌套查询、大容量插入分区。
read_buffer_size = 8M

#对MyISAM表起作用 读取优化
read_rnd_buffer_size = 4M

#对MyISAM表起作用 插入优化
bulk_insert_buffer_size = 64M
#--###########################-- 可能用到的MyISAM性能设置 开始 --################################

#--###########################-- innodb性能设置 开始 --##########################################
# Defines the maximum number of threads permitted inside of InnoDB. 
# A value of 0 (the default) is interpreted as infinite concurrency (no limit)
innodb_thread_concurrency = 0

#一般设置物理存储的 60% ~ 70%
innodb_buffer_pool_size = 8G

#当缓冲池大小大于1GB时,将innodb_buffer_pool_instances设置为大于1的值,可以提高繁忙服务器的可伸缩性
innodb_buffer_pool_instances = 4

#默认启用。指定在MySQL服务器启动时,InnoDB缓冲池通过加载之前保存的相同页面自动预热。 通常与innodb_buffer_pool_dump_at_shutdown结合使用
innodb_buffer_pool_load_at_startup = 1

#默认启用。指定在MySQL服务器关闭时是否记录在InnoDB缓冲池中缓存的页面,以便在下次重新启动时缩短预热过程
innodb_buffer_pool_dump_at_shutdown = 1

# Defines the name, size, and attributes of InnoDB system tablespace data files
innodb_data_file_path = ibdata1:1G:autoextend

#InnoDB用于写入磁盘日志文件的缓冲区大小(以字节为单位)。默认值为16MB
innodb_log_buffer_size = 32M

#InnoDB日志文件组数量
innodb_log_files_in_group = 3

#InnoDB日志文件组中每一个文件的大小
innodb_log_file_size = 2G

#是否开启在线回收(收缩)undo log日志文件,支持动态设置,默认开启
innodb_undo_log_truncate = 1

#当超过这个阀值(默认是1G),会触发truncate回收(收缩)动作,truncate后空间缩小到10M
innodb_max_undo_log_size = 4G

#The path where InnoDB creates undo tablespaces
#没有配置则在数据文件目录下
#innodb_undo_directory = /var/lib/mysql/undolog

#用于设定创建的undo表空间的个数
#已经弃用了,只能手动添加undo表空间
#The innodb_undo_tablespaces variable is deprecated and is no longer configurable as of MySQL 8.0.14
#innodb_undo_tablespaces = 95

#提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力
#根据您的服务器IOPS能力适当调整
#一般配普通SSD盘的话,可以调整到 10000 - 20000
#配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000

#如果打开参数innodb_flush_sync, checkpoint时,flush操作将由page cleaner线程来完成,此时page cleaner会忽略io capacity的限制,进入激烈刷脏
innodb_flush_sync = 0
innodb_flush_neighbors = 0

#CPU多核处理能力设置,假设CPU是4颗8核的,设置如下
#读多,写少可以设成 2:6的比例
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50

#该参数针对unix、linux,window上直接注释该参数.默认值为 NULL
#O_DIRECT减少操作系统级别VFS的缓存和Innodb本身的buffer缓存之间的冲突
innodb_flush_method = O_DIRECT

innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32

#为了获取被锁定的资源最大等待时间,默认50秒,超过该时间会报如下错误:
# ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
innodb_lock_wait_timeout = 20

#默认OFF,如果事务因为加锁超时,会回滚上一条语句执行的操作。如果设置ON,则整个事务都会回滚
innodb_rollback_on_timeout = 1

#强所有发生的死锁错误信息记录到 error.log中,之前通过命令行只能查看最近一次死锁信息
innodb_print_all_deadlocks = 1

#在创建InnoDB索引时用于指定对数据排序的排序缓冲区的大小
innodb_sort_buffer_size = 67108864

#控制着在向有auto_increment 列的表插入数据时,相关锁的行为,默认为2
#0:traditonal (每次都会产生表锁)
#1:consecutive (mysql的默认模式,会产生一个轻量锁,simple insert会获得批量的锁,保证连续插入)
#2:interleaved (不会锁表,来一个处理一个,并发最高)
innodb_autoinc_lock_mode = 1

#表示每个表都有自已独立的表空间
innodb_file_per_table = 1

#指定Online DDL执行期间产生临时日志文件的最大大小,单位字节,默认大小为128MB。
#日志文件记录的是表在DDL期间的数据插入、更新和删除信息(DML操作),一旦日志文件超过该参数指定值时,
#DDL执行就会失败并回滚所有未提交的当前DML操作,所以,当执行DDL期间有大量DML操作时可以提高该参数值,
#但同时也会增加DDL执行完成时应用日志时锁定表的时间
innodb_online_alter_log_max_size = 4G

#--###########################-- innodb性能设置 结束 --##########################################

[mysqldump]
quick
max_allowed_packet = 128M

转自:https://blog.csdn.net/gzt19881123/article/details/109511245

]]>
<![CDATA[ubuntu 22.04如何配置静态IP、网关、DNS]]> https://www.msl.la/archives/577/ 2023-07-22T14:57:00+08:00 2023-07-22T14:57:00+08:00 墨少离 https://www.msl.la/ 1、当前系统

lsb_release -a

2023-07-22T06:52:51.png
ubuntu 22.04.
2、进入/etc/netplan/目录,列出该目录下的内容

cd /etc/netplan/
ls

2023-07-22T06:53:17.png
3、利用vim编辑器打开xxx.yaml文件,进行编辑:

vim 01-network-manager-all.yaml

内容如下:(修改网卡名称、IP、网关后保存退出)

# Let NetworkManager manage all devices on this system
network:
    ethernets:
        ens32:                    ## network card name
            dhcp4: false
            addresses:
              - 192.168.3.88/24   ## set static IP
            routes:
              - to: default
                via: 192.168.3.1  ## gateway
            nameservers:
              addresses: [8.8.8.8,8.8.4.4,192.168.3.1]
    version: 2

2023-07-22T06:53:52.png
格式的缩进很容易出错, 可以直接复制以上模板,只修改网卡名称、IP和网关即可。
4、开启 systemd-networkd服务(可选)

sudo systemctl start systemd-networkd

2023-07-22T06:54:22.png
5、查看systemd-networkd服务状态(可选)

sudo systemctl status systemd-networkd

2023-07-22T06:54:52.png

5、查看systemd-networkd服务状态(可选)

sudo systemctl status systemd-networkd

2023-07-22T06:55:11.png
说明systemd-networkd服务已经启动。

6、重启网络服务

sudo netplan apply

2023-07-22T06:55:37.png
没有报错说明格式正确。

7、查看设定的IP是否生效

ifconfig | head -n 3

2023-07-22T06:56:05.png

设定的IP已生效。

8、测试网络连接是否正常

ping -c 3 www.baidu.com

2023-07-22T06:56:28.png
说明网络连接正常。

参考:
https://linuxconfig.org/netplan-network-configuration-tutorial-for-beginners
https://blog.csdn.net/cal_room2032/article/details/124629068

转自:
https://www.cnblogs.com/liujiaxin2018/p/16287463.html

]]>