openssl在windows下的编译
编译需要预装 vs2022 以及 perl 工具,perl 下载地址 https://strawberryperl.com/
在 github 下载 openssl 的源码 https://github.com/openssl/openssl
根据需要切换到对应的分支版本
在系统的开始菜单中,找到 Visual Studio 2022 下的 x64 Native Tools Command Prompt for vs 2022 点击运行
在命令行中切换到 openssl 的源码目录下,输入以下命令(no-shared 表示编译静态库)
这里选的 64 位版本,默认安装目录在 C:\Program Files\OpenSSL
perl Configure VC-WIN64A no-asm no-shared …
wireshark开启对https密文抓包
通常情况下,wireshark只能抓取 http 的明文包,对于 https 的报文需要设置才能抓取
不设置的话,抓取到的都是 TLS 的报文,是加密了的,对调试十分困难
前言 提到 https 抓包,基本都绕不开一个 SSLKEYLOGFILE 的环境变量
SSLKEYLOGFILE 是由 Mozilla 开发团队首先引入的一个调试功能,随后被 Google Chrome 等浏览器采纳
并成为网络分析工具(如 Wireshark)的非正式行业惯例,并没有组织或者标准定义这个行为,是属于一个事实上的规范
由 wireshark + chrome 抓 https 包的原理大概就是
1、chrome 发起 https 请求的时候,会将站点的加密密钥信息存储到 SSLKEYLOGFILE …
连接mysql错误问题处理
问题原因 机器上安装了 mysql,需要从另外一台机器连接到 mysql 服务
在连接的时候提示错误如下
出现这个错误的原因,是 mysql 服务没有开启对外部机器的访问权限
问题处理 这里以 windows 下的 mysql 为例,在 mysql 的安装机器下,定位到 mysql 的安装路径
输入 cmd 打开命令行终端
在命令行终端中,输入以下命令,然后输入密码进行 mysql 登录
mysql -u root -p 登录 mysql 后,进入的终端窗口如下
进入 mysql 数据库,并查看 root 用户的配置主机,当前默认只能 localhost 进行连接
use mysql;
select host from user where user='root'; 修改为 % 表示允许外部主机 …
关闭windows系统的自动更新
windows 有一个体验很糟糕的问题,就是经常会进行系统自动更新
特别是一些旧机器上更新大概率会出现失败的情况,极端情况下无法进行回滚
windows 自动更新这个问题遇到了好多次,这里记录下怎么关闭
关闭Windows Update服务 在桌面 “我的电脑” 右键菜单,然后选择 “管理”,出现下面的窗口
定位到 “服务” 菜单项,选择右边的项 “Windows Update” 然后右键 “属性”
在常规标签页中,将启动类型设置为 “禁用”
在恢复标签页中,将失败的后续操作设置为 “无操作”
本地组策略设置 按 Windows + R 然后输入 gpedit.msc 运行,打开 “本地组策略编辑器”
依次单击左边的菜单 “计算机配置” -> “管理模板” -> “Windows组件” -> …
win10解决ping不通的问题
有时候 ping 一台目标机器为 win10 的时候,会出现 ping 不通的情况
因为 win10 默认没有开启 ICMP 回显,这个问题遇到好多次了,记录一下
在 “设置” 中选择 “更新和安全”
选择左侧的 “windows安全中心”,点击 “防火墙和网络保护”
在 “防火墙和网络保护” 页面点击 “高级设置”
打开 windows 防火墙的高级设置,左侧选中 “入站规则”,将下面这两个规则右键启用
开源免费手机投控制器使用
Scrcpy 是一个开源的、轻量级的 Android 屏幕镜像工具
支持 USB 以及 Wi-Fi 连接,它提供高帧率的流畅体验,无需 root 权限
官方仓库地址 https://github.com/Genymobile/scrcpy
要想手机能够投屏到电脑上,需要打开手机的 USB 调试配置
小米手机可以参考我的上一篇文章,软件安装的话下载压缩包解压就可以了
软件的目录结构如下,主要用到 adb 以及 scrcpy 这两个
USB 连接投屏 手机通过 USB 连接到电脑,连接后手机弹出调试的提示,表示配置正常
在 scrcpy 软件的安装路径下,运行控制台命令窗口
通过 adb devices 命令可以查看当前已经连接的设备
通过 scrcpy 命令开启手机投屏,默认会连接列表显示的第一台设备
如果设备列 …
小米手机打开开发者选项
打开 “设置”,点击 “我的设备”, 下滑点击 “全部参数与信息”
然后下滑看到 “MIUI版本”,连续点击 8 下打开 “开发者模式”
回到 “设置” 页面,往下拉打开 “更多设置”,往下拉看到 “开发者选项”
进入开发者选项后,在当前页面往下拉,在调试下打开 “USB调试” 配置项
后面还有一些和调试相关的配置项,根据实际需要打开
使用cloudflare托管域名
cloudflare 有很多功能,可以在 cf 中可以进行域名托管,证书管理,WAF 等
这里来实操一下怎么通过 cf 来托管个人域名,以及邮件和证书的配置
域名添加 登录 cf 后,在首页的右侧位置,有一个 “添加域” 按钮,点击然后输入你自己的域名
然后为自己的选择一个计划,这里选择免费的就行
添加域名后,会出现一个页面,提示 “更改您的名称服务器”
这里会出现两条 cf 的名称服务器地址,一会要在域名服务提供商中配置
这里以托管阿里云的域名为例,其他域名提供商注册的域名也是一样的
登录阿里云,选择需要修改的域名,在 “DNS修改” 页面中,将上面两条 cf 的地址添加到这里来
阿里云中的 DNS 服务器修改后,回到 cf 中来
但是修改不会马上生效,有一个生效时间,当看到绿勾的时候表示已经生效了
生效后就 …
多台PC共用同一套鼠标键盘
当环境中有多个桌面 pc 需要操作的时候,在 多台 pc 之间切换会造成很多的不方便
可以通过远程进行连接,但是有一个更好的方案是让多台机器之间共用同一套键盘鼠标
常用的解决方案 synergy 和 sharemouse,通过移动光标在不同的 pc 间切换
synergy 的社区开源版本命名为 deskflow,仓库地址 https://github.com/deskflow/deskflow
仓库右侧的 release 可以下载对应的平台版本,支持 win、mac、linux等主流平台
deskflow 运行需要选一台作为 server 节点,其他节点作为 client
client 节点启动的时候,指定前面作为 server 节点的地址
在 server 的配置中可以发现,deskflow 支持多达 15 …
发布文章使用PicGo+Gitee作为图床
csdn 写作的时候,可以使用 markdown 进行写作,但是如果多平台发布文章的话非常麻烦
尤其是对图片的处理上,现在使用 PicGo+gitee 的方式对文章的图片进行管理
gitee 配置 新建仓库 浏览器打开 gitee 页面新建一个仓库,如果没有 gitee 用户的话需要先注册一个
生成令牌 在用户的 设置 中,创建一个私人令牌,私人令牌创建的时候只会显示一次
创建好令牌后把令牌拷贝下来,后面设置 PicGo 使用
PicGo 配置 PicGo 的官方地址 https://github.com/Molunerfinn/PicGo
下载安装 PicGo 软件,还需要为其安装一个 gitee 的插件;启动 PicGo 后,在插件设置中搜索 gitee 然后点击安装
安装插件后,再到 PigGo设置 中勾 …
使用火车头采集站点内容(2)
前面已经通过配置火车头正常采集到了文章的字段以及图片,这里将采集到的内容发布到站点
3、内容发布规则 以 wordpress 站点为例,这里的内容发布需要用到用户 Cookie ,并且发布方式使用内置浏览器登录
需要保证运行火车头采集的机器能正常连接到 wordpress
Cookie 获取 浏览器请求 wordpress 后台页面,使用管理员账号登录,打开开发者工具(按 F12 )
切换到 “网络” 标签页,点击左侧的任意一个请求,将右侧中显示的 Cookie 保存下来一会用
如果网络下没有请求,那么 F5 刷新下当前页面,再将 Cookie 保存起来
locoy.php 配置 为了使得文章能够发布,还需要一个插件 locoy.php,这个 php 文件需要上传到 wordpress …
使用火车头采集站点内容(1)
火车头采集是一个很强大的采集工具,加上支持插件的开发,对于大部分网页站点的采集工作都能出色的完成
火车头插件的开发也很简单,可以参考我的另一篇文章 火车头采集插件开发
这里记录在使用采集工具的过程中一些关键操作,以便查阅
新建采集任务,为了方便管理,建议新建目录,然后选中目录,再点击 “+” 进行新建任务
新建任务后,打开一个配置窗口如下
左下角可以填写当前的任务名称,点击右下角可以将当前的配置进行保存
对于火车头工具,一个采集任务主要有三个步骤,下面按这三个步骤来进行说明
1、网址采集规则 大部分站点都是多级结构,如有一级的目录页面,目录页面下有多个文章标题,点击标题打开文章页
比如 CSDN 的博客,这个就是目录页 https://blog.csdn.net/weixin_53109623
在目录页的下面, …
MinGW的命名意义
官方提供在线安装和离线安装两种方式,离线安装包的命名规则不太常见,这里记录下
参考:https://wiki.qt.io/MinGW-64-bit
SJLJ (setjmp/longjmp):
available for 32 bit and 64 bit
not "zero-cost": even if an exception isn't thrown, it incurs a minor performance penalty (~15% in exception heavy code) but sometimes the penalty can be more significant: https://bugreports.qt.io/browse/QTBUG-29653 …
免费资源pexels的批量下载
下载思路 pexels 是一个免费的图库视频资源网站,里面有大量的可用资源,但是一个一个下载太麻烦了
这里提供一种批量下载的实现方式
打开 pexels 地址后,搜索出来自己感兴趣的资源,每个资源上面都有一个 “下载” 按钮,这里有资源的下载地址,点击就可以直接下载了
在浏览器的 console 窗口,通过脚本的方式将每一个资源的地址都提取出来,然后就可以进行批量下载
从前端的代码看,没有什么特别的标识符,class 应该都是动态生成的,因此这里通过 title=“下载” 的 a 标签来获取
实现脚本 脚本通过提取 url 地址,然后通过拼凑每一个 curl 的下载命令,然后将这些命令输出到屏幕
文件名采用 url 的后面的数字串来表示,因为我这里搜索出来的是视频资源,加上了 mp4 后 …
域名通配证书申请与安装
安装 acme 程序 安装命令:curl <https://get.acme.sh> | sh -s [email protected]
如果使用了 curl <https://get.acme.sh> | sh 安装而没有指定邮箱的话,使用下面这个命令登记邮箱
acme.sh --register-account -m [email protected] 安装完 acme 后,crontab会增加一条的记录,以保证后续证书过期自动更新
8 21 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null 申请 API KEY 登录域名提供商的站点, …