博文

更自由地使用 各种一键脚本(未裁剪)

 像我这样的小白们, 入门的第一步, 最常见的就是使用各种一键脚本先实现自己的基本需求. 接着随着时间的推移, 我们慢慢会觉得这些一键脚本有各种各样"不爽"的地方. 那么, 我们可以利用linux的文本修改工具sed, 达到查找替换, 添加, 删除等效果. 极简一键脚本带参数使用时, 跳过确认参数的步骤 bash <(curl -L https://github.com/crazypeace/xray-vless-reality/raw/main/install.sh | sed '/pause()\s*{/a return') 4 8443 原理解释  https://zelikk.blogspot.com/2024/10/cp-bash-skip-pause.html 强行重装233boy的sing-box脚本 bash <(wget -qO- -o- https://github.com/233boy/sing-box/raw/main/install.sh | sed '/err()\s*{/a return') 强行重装233boy的v2ray脚本 bash <(wget -qO- -o- https://git.io/v2ray.sh | sed '/err()\s*{/a return') 强行重装233boy的xray脚本 bash <(wget -qO- -o- https://github.com/233boy/Xray/raw/main/install.sh | sed '/err()\s*{/a return') 原理解释  https://zelikk.blogspot.com/2024/12/233boy-sing-box-install-err-skip.html 233boy的sing-box脚本安装完成后, 修改配置时强行跳过验证域名DNS解析报错 安装完后, 先执行 find /etc/sing-box/sh -type f -name "*.sh" -exec sed -i '/err()\s*{/a return' {} + 再按正常操作修改配置. 原理解释  https://zeli...

在不同的平台部署 webssh 自定义添加不同的标识 修改部署的文件

图片
webssh 可以部署在 koyeb, fly.io, serv00 教程: https://zelikk.blogspot.com/2023/10/huashengdun-webssh-codesandbox.html https://zelikk.blogspot.com/2023/10/github-codespaces-flyio-webssh.html https://linux.do/t/topic/211113 在有人反馈的时候, 想知道是部署在哪个平台上的出了问题, 那么可以自定义添加不同的标识, 如: https://ssh.icdyct.nyc.mn/ http://ssh.icdyct.live/ https://flyio-webssh.fly.dev/ 本质上是修改文件. 这里, 你需要修改 webssh/templates/index.html HTML语法略.  本文我想记录一下, 针对不同的平台, 用什么方法修改文件. Koyeb 在部署完成后, 点击你部署的service 有一个 console 功能 在这里, 你可以修改文件. 比如, nano webssh/templates/index.html fly.io 我的教程是使用 Github Codespaces 来部署 ,  这里实际上 Github Codespaces 是生成了一个 "临时的" 环境, 里面有你的 repo 的所有文件的一份复制. 我们可以在 fly deploy 之前, 修改这个环境里的文件. 如, nano webssh/templates/index.html 这个修改只应用到 Github Codespaces 生成的这一份临时复制文件, 不影响你的原始 repo serv00 整个过程是在 serv00 的环境上操作 , 当然可以直接修改 serv00 上面的文件. 就是普通的 linux 命令行操作. nano webssh/templates/index.html serv00 用 Xshell 去登录的话, 登录方式选 Keyboard Interactive ======= koyeb 上面的修改方式是"临时"的. 如果项目重启, 那么会恢复到一开始的...

强行重装 233boy的sing-box脚本 取消脚本报错退出的逻辑

图片
如果你的VPS安装过233boy的sing-box脚本,  但是不知道什么原因, (当然很可能是你自己乱搞的原因 XD ) 现在用起来有问题,  而当你重装的时候, 脚本提示你用 sing-box reinsall, 而当你用 sing-box reinsall 的时候, 又提示报错 那么, 我们有一个思路是, 把脚本报错的逻辑跳过, 这样可以让重装操作继续下去. 思路跟 跳过DNS解析检验报错 一样, 在 err() 函数下面直接插一行 return 体现在一键安装脚本上, 变化思路和 跳过kejilion的脚本里的一些逻辑 的原理一样. 最终成果如下 bash <(wget -qO- -o- https://github.com/233boy/sing-box/raw/main/install.sh | sed '/err()\s*{/a return' ) ======== 后记 当然, 这样做的后果就是脚本中原有的报错退出逻辑也全都失效了, 所以你要确保使用的参数都是正确的. 同理可得 233boy的v2ray脚本 bash <(wget -qO- -o- https://git.io/v2ray.sh  | sed '/err()\s*{/a return' ) 233boy的xray脚本 bash <(wget -qO- -o- https://github.com/233boy/Xray/raw/main/install.sh  | sed '/err()\s*{/a return' )  

KV-woker 纯练手项目 保护 _ 开头的 Key VS code 重构 JS 代码 提取代码为函数

图片
KV-woker 项目准备实现的功能列表见此: https://zelikk.blogspot.com/2024/12/kv-woker-1.html 今天实现: 保护 _ 开头的 KV对. 因为我们的目标是把配置项都放到 KV 中保存. 按目前的设计, 需要把理更多的配置项的 KV 放到 protect_keylist 中. 如果未来系统有配置项的扩充, 那么就要记得在 protect_keylist 中添加, 这是不优雅的.  我们可以约定, 配置项在 KV 中都以 _ 开头保存. 这一点和自动生成短链的方法也不冲突, 自动生成短链的字符中不含有 _ 符号. 本项目目前保护两个KV, _admin_pwd_ 和 _user_pwd_ , 不允许用户 修改, 删除, 查询. 目前的实现, 是设置了一个数组 protect_keylist 在业务逻辑中, 使用判断数组中是否有元素的方式 List.includes(key) , 来判断是否是属于需要保护的key. if (protect_keylist.includes(req_key)) 这一功能的效果就是: https://newkvdb.crazypeace.workers.dev/_user_pwd_ 显示404 https://newkvdb.crazypeace.workers.dev/_admin_pwd_  显示404 而且在  https://newkvdb.crazypeace.workers.dev/kvdbkvdb LoadKV, 是查询不到 _admin_pwd_ 和 _user_pwd_ 的 value 的 第 1 步 先将 if (protect_keylist.includes(req_key)) 这个判断重构为一个函数 鼠标拖选 "protect_keylist.includes(req_key)" , 右键, "Refactor...", "Extract to function in global scope",  输入新函数的名字, "checkProtectKey" 回车Enter确认 你会发现, 之前选中的文字被替换为了一个函数调用 而文件的末尾, 新增了一个函数, 函数内容就是你之前选中的语句...

KV-woker 纯练手项目 把worker.js 里的配置项改为在 KV 中保存

图片
KV-woker 项目准备实现的功能列表见此: https://zelikk.blogspot.com/2024/12/kv-woker-1.html 今天实现: 把worker.js 里的配置项改为在 KV 中保存 第 1 步 在 KV 中把配置都添加进去, 前后都加上 _ 第 2 步 把 worker.js 里面的值当作默认值, 当KV中没有设置时, 维持程序运转.  从 KV 中读取配置值, 我们观察分为两类, 布尔值  Boolen 和 字符串 String. 所以做两个函数分别用于读取 布尔值  Boolen 和 字符串 String, 方便重复使用. 然后我们把这个构造配置值的函数, 放到访问worker时的调用函数的一开头. 测试发现有问题, 显示的不是 pastebin 页面. 检视代码, 发现 index_html, result_html, response_header, 这3个变量, 是和配置项有关系的. 所以把这3个也放到一个函数中, 同样的, 在访问worker时的调用函数的一开头就调用一下. 测试  https://newkvdb.crazypeace.workers.dev/kvdbadmin 功能正常, 而且可以通过页面直接改写配置项的值, 并生效. 比如, 控制 能否 读取全部KV *** 提交修改记录  https://github.com/crazypeace/KV-woker/commit/26752fc

KV-woker 纯练手项目 2个密码 对应不同的权限

图片
KV-woker 项目准备实现的功能列表见此: https://zelikk.blogspot.com/2024/12/kv-woker-1.html 今天实现: 2个权限和对应的密码. 管理员权限 和 用户权限 第 1 步 用 _admin_pwd_ 和 _user_pwd_ 实现原来 password 的控制访问的功能 在 KV 中, 添加记录 Key: _user_pwd_   Value:  (我随便定的示例) kvdbkvdb Key: _admin_pwd_ Value:  (我随便定的示例) kvdbadmin 原项目 Url-Shorten-Worker 中, 是在 KV 库中保存 password 来 控制访问权限的. 代码中, 在这里从KV库中获取  password 对应的 value, 作为校验密码. 后续的逻辑, 都是使用这个变量 password_value 与JSON中的password字段比较, 或者是与浏览器访问的path比较. 我们这么修改,  代码的最开头, 增加一个数组 const user_key_list = [   " _admin_pwd_ ",   " _user_pwd_ " ] 在代码原来从 KV库 查询 password 的地方, 改为 将每个 user_key_list 的成员, 从KV库查询, 并将结果保存到 user_password_value_list const user_password_value_list = await Promise.all(   user_key_list.map(async key => await KVDB.get(key) || null) ); * JS的语法是比较奇怪, 我们拿人类语言去问 GPT 就好了. 在校验权限的地方, 原来是判断 password_value 是否等于 XXXX.  改为 判断 user_password_value_list 是否包含 XXXX 测试 https://newkvdb.crazypeace.workers.dev/ kvdbkvdb https://newkvdb.crazypeace.w...

KV-woker 纯练手项目

图片
书接上文 当初我在 KV 中设置一个 password 的思路是, 我希望把 KV 看作是一个存储库, 那么使用权限密码也是保存的数据之一. 我知道目前有很多worker的项目, 是直接在 Variables and Secrets 变量和机密 中直接设置使用密码, 来控制不公开使用.  但我的思路不一样. 打个比方, 为了修改VPS的root密码,  一个是, 必须登录VPS厂商的后台管理面板中修改;  一个是, root登录成功后, 在命令行就可以修改.  我的思路是后者. 我准备在原短链项目上做一些增强开发. 进一步把当初的设想做完整. 也算是一个练习. 我能预期到, 这样的实现可能不实用. 因为每次访问worker, 都要从KV中读取一下password. 简单地说, 本来每天能转换100次短链, 这一下子只能转换50个了. (当然了, 本身KV的读取操作是每天10万次, 个人使用打个半折也足够用, 哈哈) ======== 我准备实现的功能包括: 2个权限和对应的密码. 管理员权限 和 用户权限 把worker.js 里的配置项都在 KV 中保存 为了不和原项目冲突, 以免直接使用原项目的一些用户被影响, 新开一个项目, 名称也更通用.  KV-woker 因为项目本身的定位更通用, 所以: 绑定 Bindings 用 KVDB 指向 KV 库 KV 库中设2个密码 _admin_pwd_ _user_pwd_ _user_pwd_ 用于控制能否访问管理页面, 增删改 KV 对. 相当于是普通用户. _admin_pwd_ 除了 _user_pwd_ 的权限以外, 还能增删改 _ 开头的 KV 对. 相当于是管理员. ======== 今天实现: 新建 github 项目 绑定 Bindings -  KVDB 用原来的 Url-Shorten-Worker 项目代码, 新建一个 Github 项目 KV-woker 在项目里搜索 Url-Shorten-Worker, 替换为 KV-woker * 如果你想跟随本教程实践, 记得搜索 crazypeace 替换为你自己的 Github 用户名. 搭一个 pastebin 系统. 测试 https:/...

The Hot3 in Last 30 Days

RackNerd VPS搭Hysteria2 HY2梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存

强行重装 233boy的sing-box脚本 取消脚本报错退出的逻辑