通过s3sync同步BLog


一直本地使用 Obsidian 写 Blog 的内容,每次写完,使用 SFTP 上传到服务器,服务器通过 HEXO 的 Docker 自动生成博客内容,因为每次都需要手工传一遍文章和图片,还是过于麻烦,今天顺带把博客同步也整一整。

思路很简单,尽量不修改现有的流程:
1、Obsidian 上传内容到 S3 兼容的存储桶里。
2、服务器自动拉取存储桶的文件。

为了充分用好 Cloudflare,于是开通了 R2 的存储桶,它可以兼容 S3 的接口。Obsidian 安装插件 Remotely Save ,配置好授权信息,即可自动同步 markdown 文件到存储桶。

Github 上找一个 S3 下载工具:s3sync ,直接下载编译好的文件即可使用。

1
/home/ron/s3sync --sk xxxxxx --ss xxxxxx --se "https://xxx.r2.cloudflarestorage.com" -w 128 s3://blog fs:///home/ron/docker_data/hexo/source/ --filter-modified

阅读全文

将vpnso的订阅转换成sing-box


一直用一个很小众的 VPN 服务,从 2014 年用到现在,这也快 10 年了。vpnso 提供最原始的 https 的方式代理,也没有各种流行的订阅服务,但是好在稳定,不跑路。

今天做个 sing-box 的模版,自动按照国家分组,测速,自动选择,指定 GPT 服务。因为提供的 JP 服务器最多,所以默认就节点使用 jp-自动选择。最后效果

  • 自动按照 group_keys = ['sg', 'hk', 'jp', 'us','de','uk'] 分组
  • 规则比较简单,cnsite、cnip 会走直连,其它全部走手工选择的节点。
  • 默认使用 JP 延迟最小的节点
  • GPT 使用额外的 2 台服务
  • 可以按照地区随时切换

阅读全文

将Godaddy的域名转移到Cloudflare

博客域名年底要到期了,Godaddy 续费是 27.99 刀一年。现在基本大部分服务都到 Cloudflare 上了,就直接把域名迁移过去,以后续费就是 10 刀左右了。参考这个 如何将域名从 Godaddy 转移到 Cloudflare  转出Godaddy 后台太鸡贼,在「转移」这个功能模块下,已经没有转移的功能了。需要在需要转移的域名里,往下拉到最底部...

阅读全文

在Mac和iOS设备上安装于配置sing-box


感觉 sing-box 的评价很高,不管是 DNS 防泄漏,还是各种分流规则,似乎都很好,除了说配置起来有些麻烦,各方面都不错,这几天先折腾一下电脑端和手机端的配置,过几天再折腾一下路由器。

软件安装

图形界面客户端,官网提供下载,Appstore 搜索也能直接使用

配置

配置折腾了好久,下面这个在 1.9.3 版本中使用正常。

阅读全文

跟着不良林,处理DNS泄露问题


不良林的视频估计是中文网络技术相关最强的视频内容了,今天抽空跟着教程处理一下 DNS 泄露的问题。视频参考 # 进阶•DNS 泄漏篇】竟能提速降延迟!再也不用担心 DNS 污染了!

查询 DNS 泄漏:https://ipleak.net

阅读全文

Cloudflare使用 edgetunnel 无法使用passwall的解决方法

问题

使用 edgetunnel 的教程,部署完 pages 和 worker,小火箭,各种客户端都能正常用,就是 passwall 不行。现象就是,在 openwrt 的后台,使用 passwall 可以订阅,也有 ping 值,但是选为代理,就不能访问。

原因

真实的技术原因不太清楚,目前试用下来就是因为域名的 dns 在 Cloudflare,如果使用了小云朵的代理,passwall 就不可用。

解决方法

一定要使用 pages 部署,因为 worker 方式部署,DNS 配置没有小云朵开关,小云朵没法关闭,至少我没找到。

使用 pages 部署完,去 DNS 设置这里,小云朵关掉,把代理改为仅 DNS,passwall 可以用了。

阅读全文

Cloudflare使用 edgetunnel 无法使用passwall的解决方法

问题

使用 edgetunnel 的教程,部署完 pages 和 worker,小火箭,各种客户端都能正常用,就是 passwall 不行。现象就是,在 openwrt 的后台,使用 passwall 可以订阅,也有 ping 值,但是选为代理,就不能访问。

原因

真实的技术原因不太清楚,目前试用下来就是因为域名的 dns 在 Cloudflare,如果使用了小云朵的代理,passwall 就不可用。

解决方法

一定要使用 pages 部署,因为 worker 方式部署,DNS 配置没有小云朵开关,小云朵没法关闭,至少我没找到。

使用 pages 部署完,去 DNS 设置这里,小云朵关掉,把代理改为仅 DNS,passwall 可以用了。

阅读全文

上海联通,单线复用,VLAN,Openwrt 相关设置

起因

家里的网络一直比较简单,也没怎么大折腾。
1、光猫改桥接,目的是获取公网 IP,
2、连一个 R4S 的双口软路由,目的是拨号、passwall2、端口转发等
3、然后再连一个路由器,设置成 AP 模式,有线接 NAS,无线当 WIFI。

一直这种方式用了几年,也省心,线路简单,也不需要复杂配置。偶尔距离路由器远的房间,信号差一点。最近把 AP 从华为的 AX6 的 WIFI6,换成了华为 BE3 Pro 的 wifi7。这样就多出了一个路由器,想着平常房间信号不好,准备用有线的方式多装个 AP,刚好不浪费。

问题来了:
1、弱电箱只有 2 个电源插口,一个光猫,一个软路由,也没法再加个交换机
2、R4S 只有 1 个 LAN 口,接了第一个 AP,就没法接第二个了

解决方法:
1、光猫上还剩下 3 个网口,似乎可以利用一下

经过

在不改造所有硬件线路的情况下,所有网线还是从弱电箱出去,通过光猫剩余的网口,接 AP 用。
步骤如下:
1、光猫配置 VLAN,我是上海联通,ID 是 847,每个地方不同;绑定到网口 1
2、光猫的网口 1 连上 Openwrt 的 WAN 口,配置拨号设备为 vlan.847
3、Openwrt 配置 br-lan,除了默认的 eth1,再加一个 vlan.1

阅读全文

德斯曼门锁iOS版


搬家完之后,大门锁是一个德斯曼门锁,型号是 T700,指纹识别特别拉胯,加上自己的手换季就有点脱皮,所以门锁一直用官方 app 开门,每次开门,都需要打开 App,靠近门锁,点击一下一键开门。

用了几个月之后,突然想到为啥这个门锁不支持像 Tesla 一样,靠近自动解锁呢?于是,我就在 app 上提了一个意见反馈,希望可以像 Tesla 一样,只要手机靠近,拉一下门把手就开门的功能。可能这个锁太小众,或者开发人员是外包?提交了需求,三个月过去了,后台一直都是待回复。

于是,自己写一个吧,虽然,没做过 iOS 开发,不过也不用做界面,就做蓝牙调用就好了。

分析协议

网络请求

iOS 使用 stream 抓包,获取网络 Http 请求,很容易就能找到 2 个关键请求。

/lock/command/secret 获取 command_secret ,这个值测试下来是固定的。

/lock/open/new 开锁

所有的请求使用 sessionId 进行用户验证,亲测一个 sessionId 基本可以用很久,几个月都不会过期。

蓝牙请求

使用 https://github.com/jnross/Bluetility 这个工具,即可扫描蓝牙设备,获取广播信息。可以找到锁的蓝牙特征值

1
central.scanForPeripherals(withServices: [CBUUID(string: "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"),], options: [CBCentralManagerScanOptionAllowDuplicatesKey:**true**])

做个 App

拿到这些所有数据,就可以开始做个 app 了。步骤
1、蓝牙扫描周围设备,如果发现设备名称为 “LOCK_1234”的设备,即是自己的锁,1234 为锁的蓝牙 Mac 地址后 4 位拼接。
2、连接这个设备。
3、处理 notifyService 和 writeService。
4、将 Http 请求获取到的 command_secret 使用 hexWrite 写入蓝牙锁,锁会返回一个 secret 值。
5、使用锁返回的 secret 值,调用 /lock/open/new 即可获取开锁的 command
6、使用 hexWrite 写入 command ,锁就开了。

通过上面的流程,就可以完成一次开锁了,如何像 Tesla 一样,靠近,拉门把手,就开锁呢?
处理 deviceDidDisconnect 方法就可以了。断联后,自动等待下次连接,这个指令有 iOS 调度,所以也不用担心 App 后台的问题。

最终效果,还挺好,每天开门都不用掏手机了。

阅读全文

qbittorrent配合passwall的一些网络配置


家里的网络一直是 openwrt+passwall+unraid+qbittorrent 做下载管理,在 m-team 和 zmpt 的网页上,每次看到接入 ip 有时候是本地网络,有时候又是代理,一直也没太关注,直到突然最近 m-team 判定为盒子,于是仔细设置一下网络。

问题在哪

1、 qbittorrent 的 Host 网络。unraid 上通过 docker 安装的 qbittorrent,容器开通的是 host 网络,因为 host 可以直接使用 upnp,虽然网上对安全性差一点,不过 Host 有更好的网络效率。这就导致 qbittorrent 的设置页面有很多的网络接口和 Ip 地址,服务端识别到很多的 IP,可能某次调整网络的时候,直接走了代理,就判定盒子了。

阅读全文