搭建 frp 内网穿透服务

必需:有公网IP的服务器一台 服务端部署 在具有公网 IP 的机器上部署 采用一键部署脚本安装 作者的github被封了,来补一个gitee的 1 2 3 wget https://gitee.com/mvscode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh ./install-frps.sh install 1 2 3 wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh ./install-frps.sh install 简单用法 Usage: /etc/init.d/frps {start|stop|restart|status|config|version} 客户端部署 下载Releases · fatedier/frp · GitHub 解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上 配置 这里可以下载配置文件frp/conf at dev · fatedier/frp · GitHub 服务端配置 下面是服务端的最全配置,一些配置都是可以不用配置的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 # [common] is integral section [common] # A literal address or host name for IPv6 must be enclosed # in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80" # For single "bind_addr" field, no need square brackets, like "bind_addr = ::"....

创建: 2023-03-14 | 更新: 2024-07-16 | 字数: 1221字 | 时长: 6分钟 | 作者:张三

NFC 复制模拟门禁卡

必备:NFC卡贴 android手机支持NFC 1、买卡贴 拼夕夕买CUID卡就行了,大多数可以用 2、克隆 Android 下载 Mifare Classic Tool 关键操作步骤: 1、读标签 选择读标签,然后把门卡贴在手机nfc位置,之后点开始映射并读取标签,就可以读取到了,至于key,可以全选或者选择一个试试就行了。 然后点击右上角菜单,选择写转储就可以到写入界面了。 2、写标签 在上一步中转到写转储界面,直接点击写转储,然后默认全选扇区就可以了,贴上买的nfc卡贴后,点击ok就可以了,不出意外的话就可以写成功了。 3、克隆uid(非必选) 通过上面的步骤,克隆的卡可以进入小区大门,但是对于楼栋的电梯门,是没办法刷的,对比了门禁卡和卡贴,发现卡贴的id和门禁卡不同的,因此我们再做一个克隆uid操作。 在首页写标签进入后,选择克隆uid,然后贴上我们的门禁卡,此时发现克隆的UID的id发生变化了,然后选择计算0并克隆UID,然后贴上卡贴,之后就可以啦。 可以拿着去门口试试了 参考: nfc卡贴模拟门禁卡

创建: 2023-03-13 | 更新: 2024-07-16 | 字数: 22字 | 时长: 1分钟 | 作者:张三

SillyGril&QQbot一键部署

一、docker-compose 编排文件 创建docker-compose.yaml文件并拷贝下面内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 version: "3" services: go-cqhttp: image: mzzsfy/go-cqhttp:latest container_name: go-cqhttp volumes: - ./data:/data restart: always environment: # - token=$Yourtoken #替换为自己生成的token - ws_url='ws://sillygirl:8080/qq/receive' - TZ=Asia/Shanghai networks: - sillygirl depends_on: - sillygirl sillygirl: image: mzzsfy/sillygirl:latest container_name: sillygirl volumes: - ./sillyGirl:/etc/sillyGirl restart: always environment: # - set__qq__token=$Yourtoken #替换为自己生成的token - TZ=Asia/Shanghai networks: - sillygirl networks: sillygirl: docker-compsoe up -d 启动 docker-compose logs -f 查看日志 二、FAQ 1、go-cqhttp 扫码失败 问题解决 云服务器导致 可以在本地服务器(与手机qq扫码在同一局域网内)启动服务,生成session.token 复制到云服务器相同目录下 看这里解决 2、go-cqhttp 建议修改为手表登录 首先运行一下,会生成device.json 找到protocol字段修改为2 你可能会用到的一些资料 https://hub.docker.com/r/mzzsfy/sillygirl https://hub.docker.com/r/mzzsfy/go-cqhttp go-cqhttp配置

创建: 2022-08-31 | 更新: 2022-08-31 | 字数: 109字 | 时长: 1分钟 | 作者:张三

用PWA 改造WEB 为原生App

最近闲来无事,把网站升级了,更加像原生APP 记录下升级过程,免得以后忘了 PWA是什么?可以去网上搜一下,but中文文章少一点 用Google 封装的 好的 workbox 来升级 注册Service Worker 在html页面注册 SW 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <script> if ('serviceWorker' in navigator) { navigator.serviceWorker.getRegistrations() .then(regs => { for (let reg of regs) { // 注销掉不是当前作用域的所有的 Service Worker if (reg.scope !== 'http://localhost:8000/') { reg.unregister() } } // 注销掉污染 Service Worker 之后再重新注册自己作用域的 Service Worker window.addEventListener('load', () => { navigator.serviceWorker.register('./sw.js').then(function (e) { console.log("支持sw:", e.scope) }) }) }) } </script> 生成SW.js文件 google cdn 1 2 importScripts(" 'https://storage.googleapis.com/workbox-cdn/releases/6.1.1/workbox-sw.js' "); 国内建议不使用Google jsdelivr cdn 1 importScripts("https://fastly.jsdelivr.net/npm/[email protected]/build/workbox-sw.min.js"); SW.js 编写 配置相关 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 workbox.setConfig( { // 是否开启debug debug: false } ); let cacheSuffixVersion = '-220806'; // 缓存版本号 const maxEntries = 100; // 最大条目数 workbox.core.setCacheNameDetails({ prefix: 'zsan', // 前缀 suffix: cacheSuffixVersion, // 后缀 }); //检测是否安装成功 if (workbox) { console....

创建: 2022-08-07 | 更新: 2024-07-16 | 字数: 464字 | 时长: 3分钟 | 作者:张三

在Cloudflare 设置域名 301 重定向

很久以前遇到的问题了,用cloudflare 设置有大坑,今天来记录下 之前网站的域名需要更换,blog等域名也需要从旧域名到新域名 旧域名:olddona.com 新域名:newdona.com 现在需要访问 olddona.com 时跳转到 newdona.com 1、clourflare 上 dns 解析 olddona.com 登录clourflare、点击 dns、点击添加一条a记录 类型:A 名称:olddona.com ipv4地址:8.8.8.8 ps:ipv4 地址一定要填一个可用的,这是个坑 2、cloudflare 添加重定向 点击规则 点击创建页面规则 url: olddona.com/* 选取设置:转发URL、301永久 输入目标URL:https://newdona.com/$1 保存之后,去访问olddona.com 可以跳到 newdona.com 成功🎉 也可以试下olddona.com/* 是否成功跳转即可

创建: 2022-07-31 | 更新: 2024-07-16 | 字数: 35字 | 时长: 1分钟 | 作者:张三

Mac Brew Tab 命令自动补全

mac arm版 2021版的brew 一键安装后 命令 按tab 不能补全,今天有点闲,就搜了一下,给解决了 用的 Oh My Zsh,官方文档里写的很详细,不过是英文的,这里给翻译记录下 1、在 ~/.zshrc 里添加下面code 1 2 3 4 5 6 7 if type brew &>/dev/null then FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" autoload -Uz compinit compinit fi 2、在 ~/.zprofile 里添加下面code 1 FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" 3、强制重建zcompdump 1 rm -f ~/.zcompdump; compinit 4、如果出现 zsh compinit: insecure directory 警告 1 chmod -R go-w "$(brew --prefix)/share" 参考: Homebrew Shell Completion — Homebrew Documentation

创建: 2022-07-26 | 更新: 2024-07-16 | 字数: 64字 | 时长: 1分钟 | 作者:张三

低成本搭建高质量播客发布服务

引言:最近用了iPhone手机,听Apple music的时候,有些喜欢的歌曲并没有,想下载到本地但由于iOS的生态封闭,操作太麻烦; 在寻找解决方案时发现用自建播客来实现下载音乐方案可行,于是就有了下面的教程 What 播客(podcast)创作者将音频或视频上传至RSS或在线播客平台,听众或观众则通过软件获取节目更新。 How 制作过程不说了,来谈谈发布过程,很简单,一个支持RSS的网站发布音频信息供用户拉取,一个音频托管平台存放音频 网站直接Hugo搭建,用zen主题支持podcast,放在GitHub page上,域名可以在freedom上注册,用cloudflare DNS解析和加速 hugo 搭建播客 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #新建网站 hugo new site podcast #安装 zen主题 git clone https://github.com/frjo/hugo-theme-zen.git themes/zen #在content内新建podcast文件夹,此页面内新增音频 cd content mkdir podcast #podcast的一些设置 #设置的图片,需要现在根目录新建 assets/images 目录,取相对路径即可 #podcast 音频下面显示链接,如何取消 vim layouts/partials/podcast.html #注释掉下面行 <figcaption><a href="{{ $src }}">{{ .Title }}</a></figcaption> podcast 配置 1 2 3 4 #文章顶部新增参数 podcast: mp3: duration: 音频托管平台自建minin服务存储音频 minio服务很强大,感兴趣可以了解一下 docker 部署 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 version: '3.3' services: minio: image: quay.io/minio/minio container_name: minio1 ports: - 9090:9090 #控制台端口 - 9000:9000 #API端口 volumes: - './data:/data' - './config:/root/.minio' environment: MINIO_ROOT_USER: admin #管理用户名 MINIO_ROOT_PASSWORD: admin #管理密码 command: server /data --console-address ':9090' restart: always 部署成功,ip:9090访问登录 控制台操作 1、创建存储桶 create bucket 2、点击manage,Access Rules add rule prefix:*.* access:readonly 3、上传音频 4、分享文件,链接地址 复制出来,前面ip换成外部ip即可 把地址贴在上面podcast 参数 mp3 的地方 enjoy 这样算下来,除了用了一台服务器外,其他全部费用为零,总费用百元不到 部署全部完成,点击RSS链接放到订阅的地方,尽情享用吧!🎉 参考: Zen | Hugo Themes...

创建: 2022-07-12 | 更新: 2024-07-16 | 字数: 186字 | 时长: 1分钟 | 作者:张三

Autojs 笔记

最近薅🦙接触了autojs,在Android手机上可自动化运行的脚本,不用root,可直接运行,轻量小巧,底层调用Android API,自己可封装API👍 安装 autojs原作者已不再维护,推出了autojs.pro版,有钱的大佬可以直接去安装下载,官方文档也很全 没钱的话,可以用autoxjs,从原有开源库接手过来的,开源免费 GitHub - kkevsekk1/AutoX: A UiAutomator on android, does not need root access(安卓平台上的JavaScript自动化工具) 常用语法 获取设备信息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 // 打印运行环境信息 let str = ""; let str = ""; str += "屏幕宽度:" + device.width; str += "\n屏幕高度:" + device.height; str += "\nbuildId:" + device.buildId; str += "\n主板:" + device.board; str += "\n制造商:" + device.brand; str += "\n型号:" + device.model; str += "\n产品名称:" + device.product; str += "\nbootloader版本:" str += "\nbootloader版本:" + device.bootloader; str += "\n硬件名称:" + device.hardware; str += "\n唯一标识码:" + device.fingerprint; str += "\nIMEI: " + device.getIMEI(); str += "\nAndroidId: " + device.getAndroidId(); str += "\nMac: " + device.getMacAddress(); str += "\nAPI: " + device.sdkInt; log(str); 打开应用市场app详情页 1 2 3 4 5 6 7 8 9 10 11 12 //打开应用市场app详情页 function startAppStore() { toastLog("去应用市场...") let i = app.intent({ action: "VIEW", // type: "image/png", data: app....

创建: 2022-06-26 | 更新: 2024-07-16 | 字数: 285字 | 时长: 2分钟 | 作者:张三