Hi,我是雨过天晴! 👋

记录一些我自己折腾的技术文章和生活日常!

从搜狗双拼切换到小鹤双拼面

零声母音节的处理方式(这是最根本的区别)。 部分韵母的键位定义。 下面我将为您详细拆解,并提供记忆方法,助您平稳过渡。 一、最大的不同:零声母的处理方式 这是您需要建立的第一个新习惯,也是小鹤方案高效的原因之一。 搜狗双拼 (旧习惯): 处理零声母音节(如 a, an, ang, o, ou 等)时,需要先按下一个虚拟的“零声母引导键”,通常是 O 键。 输入“安”(an):需要按 O + J (J是搜狗方案里an的键位)。 输入“昂”(ang):需要按 O + D (D是搜狗方案里ang的键位)。 小鹤双拼 (新习惯): 彻底抛弃了零声母引导键。直接将零声母音节的第一个字母视为声母。 输入“安”(an):直接按 an 所在的键,即 J 键(a在A,n在N,所以an双拼在J)。 输入“昂”(ang):直接按 ang 所在的键,即 K 键。 输入“爱”(ai):直接按 ai 所在的键,即 D 键。 您需要做的改变: 忘记 O 键!以后凡是遇到 a, e, o 开头的音节,就把它当成一个普通的双拼音节直接输入即可。这是最核心、最重要的一个转变。 二、需要重新记忆的韵母键位 许多键位在两个方案中是相同的,这会减轻您的学习负担。我们重点关注那些发生了变化的键位。 下表清晰地列出了所有不同点,以及帮助您记忆的“小鹤口诀”提示。 韵母 搜狗双拼键位 (旧) 小鹤双拼键位 (新) 记忆提示与口诀(重点看) 韵母 搜狗双拼键位 (旧) 小鹤双拼键位 (新) 记忆提示与口诀(重点看) ai L D 爱(ai)戴(dài) -> ai 在 D an M J 安(an)静(jìng) -> an 在 J ang D K 昂(áng)首挺胸看(k) -> ang 在 K ianguang K L 姑娘(niáng)靓(liàng) -> iang 在 L ong S H 轰(hōng)隆隆 -> ong 在 H iong S Y 穷(qióng)困潦倒用(y)钱 -> iong 在 Y ing H Y 英(yīng)雄 -> ing 和 iong 都在 Y in J N 因(yīn)为(n) -> in 在 N (本身就是N) un Y P 温(wēn)柔一刀劈(pī) -> un 在 P 快速总结您需要重点练习的8个新键位:D, J, K, L, H, Y, N, P。 ...

六月 21, 2025 · 1 分钟 · 185 字 · Afer_rain

自选Reality的目标网站

选择目标网站需满足的条件目标网站要满足4个条件: 最主要的是TLs1.3、H2协议和是否套了CDN 1.1、使用Tls1.3协议 :tls是传输层安全协议,1.3是Tls1.2的升级版,访问速度更快刚安全 1.2、X25519:是一种签名算法,TLS 1.3 标准支持使用 X25519,速度快,数据量小,用来申请证书 1.3、H2协议:即HTTP2.0,简称h2,引入了Stream,实现对一个 TCP 连接的多路复用,极大提高了传输性能 1.4、未套CDN:对于非reality节点的数据转发到dest时,如果reality的dest目标网站套了CDN,这些数据会被自动转发到CF的CDN节点,CDN节点我们的reality节点就变成了别人的反代加速节点。因此目标网站不能使用套CDN的域名,如怎么判断是否套了CDN? 查看是否套用了CDN: 在目标网站域名后添加 /cdn-cgi/trace 是Cloudflare的CDN 调试接口,所有托管在 Cloudflare 上的网站都存在这个接口,并且套了CDN的网站都会使用Cloudflare签发的证书! Reality目标网站获取方式目标网站获取有三种方式 是选取第三方平台测试完的网站 是自己动手搜索合适的网站 是通过工具本地搜索获取 第一种方式简单,网站已经为我们筛选好了,只要符合目标网站的几个特征可拿来直接使用,但无法指定区域与自己的VPS离得可能很远,对访问速度会有影响。第二种方式可以自定义查找离自己服务器近的可用网站,操作相对灵活,但操作上稍微繁琐需要一定的动手能力。第三种方式可以方便获得目标网站,但与第一种一样无法指定区域。 第一种方式:网站直接获取https://www.ssllabs.com/ssltest/index.htmlhttps://securityheaders.com/ 第二种方式:FOFA手动搜索获取ASN查询工具:https://tools.ipip.net/as.php目标网站查询工具:https://fofa.info 查询命令: > asn=="16509" && country=="US" && port=="443" && cert!="Let's Encrypt" && cert.issuer!="ZeroSSL" && status_code="200" 这句话的意思是查询自己vps自治域美国区域,端口为443,不是由临时证书颁发机构颁发的证书,且http请求成功的网站。Let’s Encrypt与ZeroSSL都是免费证书,有效期都是90天 asn:(自治域号码) port==“443” (端口) cert!=“Let’s Encrypt” (不是Let’s Encrypt类型的证书) cert.issuer!=“ZeroSSL”(证书颁发者不是ZeroSSL) status_code=“200”(HTTP 响应状态码,200的意思是Http请求成功) 4. 本地工具获取目标网站RealiTLScanner:https://github.com/XTLS/RealiTLScanner/releases3.1 在软件目录打开命令行窗口 CMD3.2 运行命令:将命令行中的1.1.1.1IP地址更换为自己VPS的IP地址 .\RealiTLScanner-windows-64.exe -addr 1.1.1.1 -port 443 -thread 100 -timeOut 5

五月 28, 2025 · 1 分钟 · 66 字 · Afer_rain

使用 `sabre/dav` 库----WebDAV 教程

安装sabre/dav 库 WebDAV 入门教程 (基于 sabre/dav) 第一部分:什么是 WebDAV? WebDAV (Web Distributed Authoring and Versioning) 是一种基于 HTTP 协议的扩展,允许客户端像操作本地文件一样,对服务器上的文件进行创建、读取、修改和删除等操作。 简单来说,它让你可以通过网络像访问本地硬盘一样访问服务器上的文件。 第二部分:准备工作 在开始之前,请确保您已经安装了以下软件: PHP: 确保您的 PHP 版本符合 sabre/dav 的要求 (通常是 PHP 7.4 或更高版本)。 Composer: Composer 是 PHP 的依赖管理工具。如果您还没有安装,请访问 https://getcomposer.org/ 下载并安装。 Web 服务器 (例如 Apache 或 Nginx): 用于运行您的 PHP 代码。 第三部分:安装 sabre/dav 创建项目目录: 首先,创建一个新的目录来存放您的 WebDAV 项目。 mkdir my-webdav-server cd my-webdav-server 使用 Composer 安装 sabre/dav: 在项目目录中,运行以下命令来安装 sabre/dav 库: composer require sabre/dav ~4.7.0 这将自动下载并安装 sabre/dav 及其依赖项。 ...

五月 25, 2025 · 3 分钟 · 483 字 · Afer_rain

Cloudflare+resend无限多企业邮箱,可收发邮件

在赛博大善人cloudflare那里白嫖无限多个企业级邮箱,这些邮箱既可以收邮件,也可以发邮件。 可以用来接收网站验证码,注册账户的时候就可以很方便的注册一大堆小号。 还可以把他们当成临时邮箱,与人通信,避免暴露自己真实的邮箱,保护个人隐私。 Cloudflare是一家提供CDN、网络安全、DDos防御和域名服务的公司。人称大善人,赛博活佛,让你瞬间获得无限多个免费邮箱! 我已经配置好了所有发送到me.xyz域名下面的邮件都会自动转到我的163的邮箱 。这样就实现了无限多个邮箱可以收邮件! 发邮件 使用邮箱发送邮件,我使用的服务是**resend.com** ,这也是一个免费的服务。没有账号的话就自己注册一个(github账户登录),然后添加一个自己的API Keys! 我已经配置好可以通过任何一个我的xyz域名邮箱来发送邮件,如name@123.xyz 使用Python发邮件 # 先安装依赖 # pip install resend import resend # 这里换成自己的resend API Key resend.api_key = "re_xxxxxxxxxxxxxxxxxxxxxxx" params: resend.Emails.SendParams = { # 发件人可以是自己域名下的任何一个人 "from": "name@123.xyz", "to": ["name@qq.com"], "subject": "hi", "html": "<strong>hello, world!</strong>" } email = resend.Emails.send(params) print(email) 使用cURL发邮件 Authorization 换成自己的resend API Key 发件人可以是自己域名下的任何一个人 curl -X POST 'https://api.resend.com/emails' \ -H 'Authorization: Bearer re_VxeNCEn1_6w4bYF93xQKgKGFYRxNK2D3J' \ -H 'Content-Type: application/json' \ -d ```{ "from": "Acme <name@你的域名>", "to": ["name@qq.com"], "subject": "hello world", "text": "it works!" }' 使用Smtp发件 使用Smtp发件,服务器地址为smtp.resend.com,端口为25/465/587/2465/2587,用户名为resend,密码为 apikey。详见 文档

五月 20, 2025 · 1 分钟 · 85 字 · Afer_rain

Nginx 配置反向代理指向本机的不同服务

通用的 Nginx 配置,通过 反向代理 将不同的域名指向本机的不同服务。所有的虚拟主机都会监听 80 端口,但通过不同的 server_name 来访问不同的服务。 配置示例 假设你有多个服务运行在本机的不同端口上(例如 8080, 8081, 8082 等),并且你希望通过不同的域名来访问这些服务。 配置结构: service1.com 访问本机的服务(比如:端口 8080)。 service2.com 访问本机的服务(比如:端口 8081)。 service3.com 访问本机的服务(比如:端口 8082)。 Nginx 配置文件 server { listen 80; server_name service1.com www.service1.com; location / { proxy_pass http://127.0.0.1:8080; # 转发到本机的 8080 端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 80; server_name service2.com www.service2.com; location / { proxy_pass http://127.0.0.1:8081; # 转发到本机的 8081 端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { listen 80; server_name service3.com www.service3.com; location / { proxy_pass http://127.0.0.1:8082; # 转发到本机的 8082 端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } 配置说明: server_name:每个 server 块都有不同的 server_name,这会让 Nginx 根据请求的域名来决定应该使用哪个配置块来处理请求。 proxy_pass:将请求反向代理到本机的不同端口(如 8080、8081、8082 等)。这里假设你有三个服务分别运行在这些端口。 proxy_set_header:这些指令确保 Nginx 正确地传递一些头信息,保留客户端的原始请求信息,包括: X-Real-IP:客户端的真实 IP 地址。 X-Forwarded-For:通过代理传递的 IP 地址链。 X-Forwarded-Proto:用于知道请求使用的协议(HTTP 或 HTTPS)。 Host:客户端请求的域名。 访问方式 当用户访问 http://service1.com 时,Nginx 会将请求反向代理到本机的 http://127.0.0.1:8080。 当用户访问 http://service2.com 时,Nginx 会将请求反向代理到本机的 http://127.0.0.1:8081。 当用户访问 http://service3.com 时,Nginx 会将请求反向代理到本机的 http://127.0.0.1:8082。 注意事项 DNS 配置:确保你在 DNS 上正确配置了 service1.com, service2.com, service3.com 等域名,使其指向你的服务器 IP。 服务端口:确保目标服务(例如,8080、8081、8082 等)已经在本地正确启动,并且能响应请求。 防火墙设置:确保防火墙允许 Nginx 访问这些服务端口。 小结 通过这种方式,你可以利用不同的域名来访问本机的不同服务,且不需要为每个服务单独配置不同的端口,所有的请求都通过 80 端口进行访问,非常适合做反向代理。 ...

五月 18, 2025 · 2 分钟 · 389 字 · Afer_rain

使用pyenv编译Python项目为PEX文件

前提条件 安装 pyenv pyenv 是 Python 版本管理工具,用来管理不同的 Python 版本。你需要先安装 pyenv 和 pyenv-virtualenv。 安装 pyenv: # 安装 pyenv curl https://pyenv.run | bash 安装 pyenv-virtualenv: pyenv install pyenv-virtualenv 步骤 1. 安装 Python 版本 使用 pyenv 安装合适的 Python 版本: pyenv install 3.11.2 # 安装指定版本的 Python pyenv global 3.11.2 # 设置为全局默认版本 你也可以创建一个虚拟环境: pyenv virtualenv 3.11.2 myenv # 创建虚拟环境 pyenv activate myenv # 激活虚拟环境 安装 pex 工具 pex 用于打包 Python 项目为可执行文件。 pip install pex 然后安装依赖: pip install -r requirements.txt 2. 创建 setup.py 文件(可选) 如果你的项目没有 setup.py 文件,建议手动创建一个。这个文件定义了模块和依赖。 ...

五月 16, 2025 · 2 分钟 · 237 字 · Afer_rain

带有中文注释的 `.vimrc` 配置文件示例

" 设置基础选项 set number " 显示行号 set tabstop=4 " 设置 Tab 宽度为 4(表示一个 Tab 占 4 个空格) set shiftwidth=4 " 设置缩进时的宽度为 4(用于自动缩进) set expandtab " 使用空格代替 Tab(Tab 键输入的字符会变成空格) set ignorecase " 搜索时忽略大小写 set smartcase " 如果搜索字符串包含大写字母,则不忽略大小写(智能匹配) set hlsearch " 高亮搜索结果(搜索时高亮显示匹配的内容) " 启用语法高亮 syntax enable " 启用语法高亮,自动为文件中的语法元素添加颜色 " 自动加载插件 call plug#begin('~/.vim/plugged') " 插件管理器的起始配置(插件会安装在 ~/.vim/plugged 目录中) Plug 'tpope/vim-sensible' " 安装一个常用的基础配置插件,提供常见的快捷键和设置 Plug 'preservim/nerdtree' " 安装 NERDTree 插件,用于文件树浏览 call plug#end() " 插件管理器的结束配置 " 配色方案 colorscheme desert " 设置配色方案为 desert(你可以根据个人喜好选择其他方案) " 启用鼠标支持 set mouse=a " 启用鼠标支持,可以在 Vim 中使用鼠标进行滚动和选择 " 快捷键配置 map <C-s> :w<CR> " 设置快捷键 Ctrl + S 保存文件 map <C-q> :q<CR> " 设置快捷键 Ctrl + Q 退出 Vim " 启用行尾显示 set list " 显示行尾字符(如空格、Tab 等),有助于排查格式问题 set listchars=tab:→\ ,trail:· " 设置特殊字符显示:Tab 显示为箭头(→),空格显示为小圆点(·) 配置解释: 基础设置: ...

五月 13, 2025 · 2 分钟 · 257 字 · Afer_rain

在PowerShell中并进行go交叉编译

在 PowerShell 中,设置环境变量的语法与 cmd 不同。你需要使用 $env: 来设置环境变量。这里是你如何在 PowerShell 中进行交叉编译: 1. 设置环境变量 $env:GOOS="linux" $env:GOARCH="amd64" 这将设置目标操作系统为 linux,架构为 amd64,并使其在当前 PowerShell 会话中生效。 2. 编译 Go 程序 然后你可以继续使用 go build 来编译程序: go build -o myprogram 3. 恢复环境变量(可选) 如果你不再需要这些环境变量,可以清除它们: Remove-Item Env:GOOS Remove-Item Env:GOARCH 以完整的示例演示 假设你在 Windows 上的 PowerShell 终端中,想要从 GitHub 克隆一个 Go 项目并编译成可以在 Alpine Linux 上运行的二进制文件。你可以按照以下步骤进行: 克隆 GitHub 项目 git clone https://github.com/username/repository.git cd repository 设置交叉编译环境变量 $env:GOOS="linux" $env:GOARCH="amd64" 编译程序 go build -o myprogram 传输到 Linux Alpine 系统(你可以使用 SCP、FTP 等工具上传到你的目标服务器) 总结 在 PowerShell 中设置环境变量的方式是: $env:VARIABLE_NAME="value" 然后你就可以像在 cmd 中一样运行 go build 来交叉编译你的程序了。 ...

五月 13, 2025 · 1 分钟 · 167 字 · Afer_rain

在 Debian 系统上安装 `oh-my-zsh`自动脚本

并添加高亮插件和自动补全插件,最后更新 .zshrc 配置文件。 #!/bin/bash # 更新系统软件包 echo "更新系统软件包..." sudo apt update -y # 安装 Zsh,如果没有安装的话 echo "安装 Zsh..." sudo apt install -y zsh # 安装 Git echo "安装 Git..." sudo apt install -y git curl wget # 安装 Oh My Zsh echo "安装 Oh My Zsh..." sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # 检查是否安装成功 if [ ! -d "$HOME/.oh-my-zsh" ]; then echo "Oh My Zsh 安装失败!" exit 1 fi # 安装插件(zsh-users/zsh-syntax-highlighting 和 zsh-users/zsh-autosuggestions) echo "安装 zsh 插件..." git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions # 编辑 .zshrc 文件 echo "修改 .zshrc 文件..." # 确保.zshrc文件存在 if [ ! -f "$HOME/.zshrc" ]; then echo ".zshrc 文件不存在,创建一个默认的 .zshrc 文件..." cp $ZSH/templates/zshrc.zsh-template $HOME/.zshrc fi # 添加插件到 .zshrc sed -i '/^plugins=/c\plugins=(git zsh-syntax-highlighting zsh-autosuggestions z)' $HOME/.zshrc # 更新 .zshrc 配置 echo "更新 .zshrc 配置..." source $HOME/.zshrc echo "安装完成!你可以开始使用 Oh My Zsh 和新插件了!" 说明: 安装 Zsh 和 Git:首先确保系统安装了 zsh 和 git,因为 oh-my-zsh 安装需要 Git。 安装 oh-my-zsh:通过执行官方安装脚本来安装 oh-my-zsh。 安装插件:安装 zsh-syntax-highlighting 和 zsh-autosuggestions 插件。 修改 .zshrc:脚本将 .zshrc 文件中的 plugins 行修改为包含这两个插件。 更新 .zshrc:使用 source 命令重新加载 .zshrc 配置,使插件立即生效。 使用方法: 将这个脚本保存为 install_ohmyzsh.sh。 给予脚本执行权限: chmod +x install_ohmyzsh.sh 执行脚本: ./install_ohmyzsh.sh 这会完成所有安装和配置。 ...

五月 11, 2025 · 1 分钟 · 177 字 · Afer_rain

WordPress 文章完美转换 Markdown 方法

最近换用了 Markdown 写文, 但是博客中以前的文章不是 Markdown 格式, 想把它们转换为 Markdown 格式, 偶然发现了 wordpress-export-to-markdown 这个项目,可以导出页面, 评论, 文章, 图片. 试用了一下, 效果非常不错, 图片也能很好的处理, 今天来为大家介绍使用方法. 下载 Node.js 访问 [Node.js](https://nodejs.org/zh-cn/官网, 下载长期维护版即可. 下载完成后安装, 无脑下一步即可. 开始转换 访问你的 WordPress 后台, 导出 xml 文件, 选择所有内容, 否则无法导出图片. 1 新建一个文件夹, 名字随便, 把刚才下载的 .xml 文件改名为 export.xml 放到此文件夹. 按住 Shift 右键文件夹空白处打开 powershell 2 输入命令 npx wordpress-export-to-markdown 回车下一步, 提示 (y/N) 全部选 y 即可. 3 这样就算执行成功了(忽略我那两个错误), 返回文件夹 output 就是导出的所有内容.

五月 6, 2025 · 1 分钟 · 62 字 · Afer_rain