Barrier 共享键盘鼠标
Server: Win 11,安装版本:2.3.4 Client: Mac OS,安装版本:2.4.0 开启ssl 服务端生成证书: ( 在wsl中执行 ) openssl req -x509 -nodes -days 9999 -subj /CN=Barrier -newkey rsa:4096 -keyout /mnt/c/Users/XXXXX/AppData/Local/Barrier/SSL/Barrier.pem -out /mnt/c/Users/XXXXX/AppData/Local/Barrier/SSL/Barrier.pem openssl x509 -fingerprint -sha256 -noout -in /mnt/c/Users/XXXXX/AppData/Local/Barrier/SSL/Barrier.pem > /mnt/c/Users/XXXXX/AppData/Local/Barrier/SSL/Fingerprints/Local.txt (把 XXXXX 替换位电脑用户名) 客户端证书: ( 执行路径:~/Library/Application Support/barrier/SSL ) openssl req -x509 -nodes -days 9999 -subj /CN=Barrier -newkey rsa:4096 -keyout Barrier.pem -out Barrier.pem openssl x509 -fingerprint -sha256 -noout -in ./Barrier.pem > ./Fingerprints/Local.txt
nodejs对接YouTube Live api
Auth by oAuth2 require: client_id, client_secret const env = { google: { clientId: '', clientSecret: '', redirect: '', // redirect url. api server地址,带上特定path,完成认证后会回调此地址 }, }; const { google } = npm.googleapis const OAuth2 = google.auth.OAuth2; const oAuth2Client = new google.auth.OAuth2( env.google.clientId, env.google.clientSecret, env.google.redirect ); const SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']; const authUrl = oAuth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES }); // send the authUrl by email or any other return authUrl; Auth Callback 拿到authUrl后,引导用户访问authUrl,然后跳转到回调地址redirect,得到code。比如回调地址: /auth/google 在认证完成后,会发起请求: /auth/google?code= 在请求的处理方法中,根据code获取token。 const env = { google: { clientId: '', clientSecret: '', redirect: '', // redirect url. api server地址,带上特定path,完成认证后会回调此地址 }, }; const { google } = npm.googleapis const oAuth2Client = new google.auth.OAuth2( env.google.clientId, env.google.clientSecret, env.google.redirect ) const tokenRes = await oAuth2Client.getToken(CODE); // CODE is from query oAuth2Client.setCredentials(tokenRes.tokens); 至此得到oAuth2Client 创建Broadcast const { google } = npm.googleapis; const authClient = await getOAuth2Client(); // 前面得到的 oAuth2Client const youtube = google.youtube('v3'); google.options({auth: authClient}) const res = await youtube.liveBroadcasts.insert({ part: [ "id,snippet,contentDetails,status" ], resource: { contentDetails: { enableEmbed: true, monitorStream: { enableMonitorStream: false // 如果这里不设置,默认为true,则必须先test才能live,否则一直提示 invalidTransition } }, snippet: { scheduledStartTime: 'start_time', title, description, }, status: {…
intellij 无限试用
安装插件,需要设置插件仓库。 https://plugins.zhile.io 插件名字: IDE eval reset
在win10(win11)搭建开发环境
本人nodejs主力开发语言,使用vim编辑器。搭建环境包括: wsl2zsh / powerlevel10k theamtmuxneovim / SpaceVimnvm / nodejsWindows Terminal 安装wsl2 参考链接 先安装Windows Terminal(win11自带了),然后使用管理员身份打开 Windows Powershell,执行命令: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 然后重启电脑,重启后下载安装wsl内核。然后执行: wsl --set-default-version 2 安装内核后即可到Microsoft Store安装Ubuntu 20.04。安装后点击打开,第一次打开会自动安装linux,输入用户名、密码。 初始化wsl2 mv /etc/apt/sources.list /etc/apt/sources.list.bak sudo su 输入密码后,再执行: cat > /etc/apt/sources.list <<EOF # 中科大 @see https://www.cnblogs.com/leeyazhou/p/12976814.html deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse EOF exit 然后把系统更新一下: sudo apt update sudo apt upgrade 安装一些基础库: sudo apt install automake build-essential pkg-config libevent-dev ncurses-dev bison 配置文件 # 我的配置文件整理在GitHub cd ~ mkdir Applications workspace cd Applications/ git clone git@git.zhlh6.cn:ilaipi/dotfiles.git git仓库地址 安装zsh / oh-my-zsh sudo apt install zsh # 这里如果下载不了,那就到windows打开浏览器,手动下载脚本,到wsl中执行脚本即可 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" cd ~/Applications/dotfiles/ # 安装zsh的主题powerlevel10k并完成配置 sh -x install.sh ln…
老爷机安装win11
指的是不符合win11硬件要求的电脑,物理安装win11。 网上很多教程,我只是记录一下我自己的安装过程。 PE安装(失败) 网上下载了一个PE,放进U盘(使用ventoy工具制作安装盘)。里面有个Windows安装器,我打开看了看,可以选择安装位置,以及使用哪个iso镜像文件。 网上有教程说要把盘做成gpt的,都做了。BIOS里也开启了UEFI。 但是始终无法成功。选择使用UEFI启动PE,也是不行。 最接近成功的时候是到了海内存知己,天涯若比邻的转圈界面,无限转圈。 偷梁换柱(成功) 也是网上教程说的一种方法。就是把win10的镜像中的文件,替代win11中的文件。 (也可能网上说的意思是反的) 其中有个关键的文件是sources目录下的install.wim文件。 我使用的方法是,新弄了一个U盘,在PE中安装了一个ultraiso,然后把win11的镜像写入到U盘,作为一个启动盘。 然后复制win10镜像中sources目录下,除install.wim文件外其他所有文件到win11启动U盘的sources目录。黏贴的时候,相同文件选择替换已有文件。 替换完成后,插上U盘,直接从U盘启动,顺利完成安装。 体验 个人可能比较喜欢新事物,新技术,所以比较认可win11,感觉win10的一些系统功能(比如“设置”)做的比较简单,但是win11就在优化这些,未来重装系统,可能微软会把越来越多的配置信息,通过账号同步到新系统。 所以还是很值的期待的。
mac本机部署aria2
首先需要安装aria,安装后启动。配置文件aria2.conf: #用户名 # rpc-user=USER_NAME #密码 # rpc-passwd=USER_PASSWORD #上面的认证方式不建议使用,建议使用下面的token方式 #设置加密的密钥 rpc-secret=USER_SECRET #允许rpc enable-rpc=true #允许所有来源, web界面跨域权限需要 rpc-allow-origin-all=true #允许外部访问,false的话只监听本地端口 rpc-listen-all=true #RPC端口, 仅当默认端口被占用时修改 rpc-listen-port=6800 #最大同时下载数(任务数), 路由建议值: 3 max-concurrent-downloads=5 #断点续传 continue=true #同服务器连接数 max-connection-per-server=5 #最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要 min-split-size=10M #单文件最大线程数, 路由建议值: 5 split=10 #下载速度限制 max-overall-download-limit=0 #单文件速度限制 max-download-limit=0 #上传速度限制 max-overall-upload-limit=0 #单文件速度限制 max-upload-limit=0 #断开速度过慢的连接 #lowest-speed-limit=0 #验证用,需要1.16.1之后的release版本 #referer=* #文件保存路径, 默认为当前启动位置 dir=/Users/billy/Downloads #文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本 #disk-cache=0 #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?) #enable-mmap=true #文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长 #所需时间 none < falloc ? trunc « prealloc, falloc和trunc需要文件系统和内核支持 file-allocation=prealloc 启动: aria2c --conf-path="/path/to/aria2.conf" -D 下载webui: # 仓库地址是加速地址 # 仓库地址:https://github.com/ziahamza/webui-aria2 git clone https://github.com.cnpmjs.org/ziahamza/webui-aria2.git 启动webui: cd webui-aria2 node node-server.js # 这种方法只是临时启动,用完可以关闭,再次使用的时候重新启动
thumbnail
Frp 内网穿透的应用 负载均衡(二)
上一篇讲的是外网服务器A,内网服务器B。 现在,考虑在外网服务器A外面增加一层,比如负载均衡C。 比如华为云,阿里云平台的负载均衡产品。 其实很简单,负载均衡通过tcp转发,把A的对应端口,映射到C的某个端口。 举例: A的frp端口为p1,C通过p2转发到A的p1,C通过p3转发到A的p4 那么,B服务器的配置: [common] server_addr = C server_port = p2 [frp] type = tcp local_ip = 127.0.0.1 local_port = 22 # 本机需要外网访问的端口 remote_port = p3 # frp通过此端口和客户端交互 连接服务器B ssh -P p3 user@C
thumbnail
Frp 内网穿透的应用 tcp(一)
开源Github仓库 应用场景 外网服务器A内网服务器B 希望在任意网络可以访问内外服务器B的22端口。 服务器A 在GitHub的release页面下载最新版安装包,解压。 编辑frps.ini: [common] bind_port = FRP_SERVER_PORT dashboard_port = FRP_WEB_PORT # dashboard 用户名密码,可选,默认为空 dashboard_user = admin dashboard_pwd = admin 如果服务器A上有systemctl命令,可以执行: cp frps /usr/bin/ mkdir /etc/frp cp frps.ini /etc/frp/ cp systemd/frps* /lib/systemd/system/ systemctl start frps.service 把frps安装为系统服务 服务器B 在GitHub的release页面下载最新版安装包,解压。 编辑frpc.ini: [common] server_addr = IP_OF_SERVER_A server_port = FRP_SERVER_PORT [frp] type = tcp local_ip = 127.0.0.1 local_port = 22 # 本机需要外网访问的端口 remote_port = FRP_APP_PORT # frp通过此端口和客户端交互 同样,如果服务器B上有systemctl命令,可以执行: cp frpc /usr/bin/ mkdir /etc/frp cp frpc.ini /etc/frp/ cp systemd/frpc* /lib/systemd/system/ systemctl start frpc.service 连接服务器B ssh -P FRP_APP_PORT user@IP_OF_SERVER_A 有空再写一下,服务器B前面增加一层负载均衡的用法。
Linux系统挂载系统盘
参考链接 ,根据参考链接,判断是否满足扩容条件。 参考阿里云的文档,总结: # 1 创建分区 fdisk /dev/vdb # 依次输入 n(新建分区) p(主分区) # 回车(默认1个分区) 回车(默认起点) 回车(默认终点) # p(查看分区信息) w(写入) # 然后执行以下命令,实现开机挂载硬盘 # 可修改 /mnt 为真实的挂载点,比如 修改为 /data 则把硬盘挂载到 /data目录 echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab
快速下载jdk8 11
参考链接 jdk-11.0.10_windows-x64_bin.ziphttps://code.aliyun.com/kar/ojdk-11.0.10/raw/master/jdk-11.0.10_windows-x64_bin.zipjdk-11.0.10_osx-x64_bin.tar.gzhttps://code.aliyun.com/kar/ojdk-11.0.10/raw/master/jdk-11.0.10_osx-x64_bin.tar.gzjdk-11.0.10_linux-x64_bin.tar.gzhttps://code.aliyun.com/kar/ojdk-11.0.10/raw/master/jdk-11.0.10_linux-x64_bin.tar.gzjdk-11.0.10_linux-aarch64_bin.tar.gzhttps://code.aliyun.com/kar/ojdk-11.0.10/raw/master/jdk-11.0.10_linux-aarch64_bin.tar.gzjdk-8u281-linux-aarch64.tar.gzhttps://code.aliyun.com/kar/ojdk-8u281/raw/master/jdk-8u281-linux-aarch64.tar.gzjdk-8u281-linux-x64.tar.gzhttps://code.aliyun.com/kar/ojdk-8u281/raw/master/jdk-8u281-linux-x64.tar.gzjdk-8u281-macosx-x64.dmghttps://code.aliyun.com/kar/ojdk-8u281/raw/master/jdk-8u281-macosx-x64.dmgjdk-8u281-windows-x64.exehttps://code.aliyun.com/kar/ojdk-8u281/raw/master/jdk-8u281-windows-x64.exe 新增Doker镜像供大家使用https://hub.docker.com/u/kingfalse,直接docker pull kingfalse/java8或者docker pull kingfalse/java11即可,默认时区已改为UTC+8 Asia/Shanghai,直接使用即可。 感谢源作者,这里引用一下,方便查看