未知狐 发布的文章

安装Debian碰到很多问题,之前都用Ubuntu,换到Debian11,发现很多不便之处,默认的软件包连Wget都没。

镜像源头默认只带安全主线

用apt装常用工具结果提示软件源没这个包?What FUCK!进/etc/apt/sources.list软件源默认只有官方的安全主线软件源,而且我安装的时候明明切换了华为啊.....于是手动改了改换了完整的华为源:

deb https://mirrors.huaweicloud.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.huaweicloud.com/debian/ bullseye main non-free contrib
deb https://mirrors.huaweicloud.com/debian-security/ bullseye-security main
deb-src https://mirrors.huaweicloud.com/debian-security/ bullseye-security main
deb https://mirrors.huaweicloud.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.huaweicloud.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.huaweicloud.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.huaweicloud.com/debian/ bullseye-backports main non-free contrib

由于配置时手快没有输入root密码造成su无法切换root用户

再加上因为wget和root权限切换不过去的问题(sudo passwd解决)蹲在电视屏幕前面几个钟头才勉强安装好宝塔。接着关了电视屏幕回去发现没安装SSH服务端......我淦!
索性借助宝塔的定时任务功能执行shell脚本进行安装......(我可真是个大聪明🤣)

sudo apt-get update && sudo apt-get upgrade && echo yes
sudo apt -get -y install ssh

su切换到root后shell环境变量异常造成大量命令不可用

su -解决,而用su -命令切换到root用户,但是环境变量与原普通用户相同

lxqt-panel无法注册全局快捷键

参考https://forums.debian.net/viewtopic.php?f=17&t=150409

最近新买了一个鼠标(锐普Gm90 有线+2.4Ghz无线+蓝牙5.0)替换原来的蓝牙4.0鼠标(Q9 蓝牙4.0+2.4Ghz无线双模),新设备并不能像旧设备一样在两个系统下无缝切换;切换系统必须删除设备重新配对链接。
网上有很多相关的实现,基本原理是修改替换Linux/Windows的配对信息,使两个系统配对信息保持一致,让鼠标完全将其识别为同一匹配设备。但是不同蓝牙版本,配对信息不完全相同,从3.0 -> 4.0就新增了几个参数,而4.0- 5.0是否还有新增参数目前尙不明了,SEO靠前的国内平台大多只有带货的广告帖子,几乎找不到有用的技术分析。我愿称之为开源分享技术上的东亚病夫:)
参考文章:
Linux 与 Windows 双系统共享蓝牙鼠标-南浦月
Bluetooth Pairing on Dual Boot of Windows & Linux Mint/Ubuntu - Stop having to Pair Devices
Dual Boot Bluetooth Pair

本文食用说明

**推荐使用Dual Boot Bluetooth Pair仓库的自动脚本进行转换再手动更改,否则你就得手动按照如下步骤完成。
由于蓝牙5.0没有CSRK这一项,所以注释掉bluetooth_fix.py 的84-85行。**

dumphive这个项目很老了,我在Linux Mint20.3una上也没编译成功,只能到Windows10下手动去读取了。

在Linux Mint下配对并链接鼠标

此时系统创建了一个配对信息文件

读取Windows下注册表中的配对信息

先切换到Windows10,在windows下重新配对鼠标,使系统自动创建配对信息。
下载 PSTools,使用压缩包中的PsExec/PsExec64.exe 以系统权限打开注册表(理论上如果你能使用别的方式提升权限到系统级也可以试试自己提权。)
psexec64.exe -si regedit

然后就可以去HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\<本机蓝牙 MAC>\<鼠标蓝牙 MAC>这个路径找自己的蓝牙配对设备信息了。

此处 MAC 地址不带分隔符,并且这里需要系统权限才能访问。以下内容已脱敏QwQ
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\145af*****\d104d9****]
"LTK"=hex:8c,5a,62,4e,62,41,bd,eb,44,f3,3e,e9,de,68,11,40
"KeyLength"=dword:00000010
"ERand"=hex(b):9d,b1,9d,be,42,14,bb,0c
"EDIV"=dword:0000a573
"IRK"=hex:2b,4b,26,b5,7d,7d,03,9e,ce,bf,92,a7,5e,a5,cc,8b
"Address"=hex(b):c0,8a,d1,d9,04,d1,00,00
"AddressType"=dword:00000001
"MasterIRKStatus"=dword:00000001
"AuthReq"=dword:0000002d

蓝牙4.0和5.0配对配置文件参数列表对比

蓝牙5.0(Windows)蓝牙4.0(Windows)对应Linux下键名转换方式
LTKLTK[LongTermKey] Key十六进制转十进制
KeyLengthKeyLength[LongTermKey] EncSize本人设备不需要改动
ERandERand[LongTermKey] Rand先反转字符串顺序再从十六进制转十进制
EDIVEDIV[LongTermKey] EDiv十六进制转十进制
IRKIRK[IdentityResolvingKey] Key转大写,去掉逗号空格
AddressAddress 本人设备不需要改动
AddressTypeAddressType 本人设备不需要改动
MasterIRKStatus 本人设备不需要改动
CSRK[LocalSignatureKey] Key转大写,去掉逗号空格。(网上看部分设备有这个,但是我这个就没有)
OutboundSignCounter 本人设备不需要改动
AuthReqAuthReq 本人设备不需要改动

回到Linux下修改蓝牙配置信息

Linux 下蓝牙设备的配对信息存储在 /var/lib/bluetooth/<本机蓝牙 MAC> 目录下,

注意,这里的MAC地址带:,手动输入需要转义\建议在终端里TAB自动补全。进入此处目录需要root权限,可以直接在root用户下操作。

接下来按照对应关系修改配置文件,如果不知道转换
操作完成后,仍然无法正常链接,仔细观察蓝牙地址,我发现Windows下Gm90鼠标的蓝牙MAC地址竟然有一位和Linux下的配置文件写的不同!这一位数字似乎是累加,我先在Linux下链接鼠标一次是03,到了Windows10下再重新配对就变成04!
Linux Mint下 MAC:D1:03:D9:::**
Windows10 下 MAC: D1:04:D9:::**
是不是发现了什么?我所参考的文章里和网上的一些案例里都常常出现设备MAC地址在重新配对后某一位出现变动的情况。
所以修改Linux下蓝牙设备配置文件所在目录名称和Windows10下保持一致。
最后sudo systemctl restart bluetooth
打开蓝牙,Linux Mint下Gm90自动正常链接,大功告成!

后记:

2022年5月21日 5点38分
显然我已经熬夜到第二天早上了,熬夜过程中发现了自动读取指定导出好的注册表文件并转换的工具,也就是
dual-boot-bluetooth-pair这个仓库,尽管过时,但是依旧十分有效。我必须要说,当你用中文在搜索引擎上找不到你想要的答案,请用英语,哪怕语法有错误。(语法是中国人发明的,即使不按照语法输入语句,外国人一样能知道你在说什么),这个工具和一半的内容参考来自我搜索:Windows Linux double systeam BLE 这串关键词
看完本文,建议去看看Bluetooth mouse (简体中文) 这篇Archlinux的wiki同样适用其他发行版,介绍了对于蓝牙鼠标的配置和故障排除步骤。
早上6点18分更新:蓝牙鼠标突然断开了,原因不明可能仍然需要重新配置。重启蓝牙不管用,依旧无法链接,重启系统之后恢复正常工作了。

之前发了一篇文章说博客现在用的服务器2022年7月09到期,后来一直在思考迁移到哪里去。先是打算买国内大IDC的大陆境内服务器,发现还不如买香港划算,再后来想着挂博客,买个美国廉价VPS也不是不行,活动年付平均下来一个月不超过10块钱。但是除了带宽,其他配置也不高。

我的需求和现状

左思右想,我需要保证博客在常规网络环境下正常通过域名访问,也就是最低限度:IPv4可访问,最好IPv4+6 双栈。目前家里的宽带V6没有ban 80和443,但是在学校和一些网络欠发达地区,常常只有IPv4可用。如果把服务器放在家里本地,就必须考虑设备性能和功耗,已有的我家云1G内存已经不够了,因此我需要添置一个新的低功耗设备;无论是ARM架构还是x86架构均可,甚至可以是RISC-V。

网络解决方案

  1. 使用FRP或NPS实现IPv4内网穿透。(免费服务不可能提供80/443)
  2. 使用CloudFlare的免费CDN服务,配合IPv6 DDNS脚本,利用CDN实现公网IPv4+6下访问。

硬件解决方案

  1. 咸鱼购买可刷Gun/Linux 发行板的RK3399的板子/S905x3电视盒子/其他开发板等
  2. 待定

我家云htop截图2022-05-16T18:08:15.png

突然觉得自己的专业选择很戏剧性,越是缺少某种东西,越难理解为什么别人需要这样东西。但是了解清楚之后也往往比别人更体会到这些东西的重要性。
​人类社会的进步也许就是不断重复上一代犯错下一代避免同种错误的过程。

Microsoft Edge和Google Chrome同理。

问题症状

启动了代理工具(如Steam++)并手动设置了系统代理
export ALL_PROXY="socks5://127.0.0.1:8868"
执行env|grep -i proxy得到回显当前的代理准确无误,但是浏览器无法正常使用(据说FireFox可能可以自动识别到系统代理?)
启动浏览器打开设置->高级->系统->打开您计算机的代理设置 浏览器跳转到chrome://linux-proxy-config页面,页面内容如下:

在受支持的桌面环境中运行Chromium时,将使用系统代理设置。但您的系统不受支持,或启动系统配置时出现问题。
但您仍可通过命令行进行配置。如需详细了解各项实验功能和环境变量,请参见 man chromium。

之前我一直不在意这个提示,但是今天凌晨突然很想解决代理不生效的问题,所以仔细回来看了看提示。
好吧,不支持当前桌面环境,那么我们按照提示全找找man chromium写了什么。
在proxy相关里有如下内容:

--proxy-server=host:port
       Specify the HTTP/SOCKS4/SOCKS5 proxy server to use for requests.

       This overrides any environment variables or settings picked  via
       the  options  dialog.   An  individual proxy server is specified
       using the format:

         [<proxy-scheme>://]<proxy-host>[:<proxy-port>]

       Where <proxy-scheme> is the protocol of the proxy server, and is
       one of:

         "http", "socks", "socks4", "socks5".

       If  the  <proxy-scheme>  is omitted, it defaults to "http". Also
       note that "socks" is equivalent to "socks5".

       Examples:

         --proxy-server="foopy:99"
             Use the HTTP proxy "foopy:99" to load all URLs.

         --proxy-server="socks://foobar:1080"
             Use the SOCKS v5 proxy "foobar:1080" to load all URLs.

         --proxy-server="socks4://foobar:1080"
             Use the SOCKS v4 proxy "foobar:1080" to load all URLs.

         --proxy-server="socks5://foobar:66"
             Use the SOCKS v5 proxy "foobar:66" to load all URLs.

       It is also possible to specify a separate proxy server for  dif‐
       ferent URL types, by prefixing the proxy server specifier with a
       URL specifier:

       Example:

         --proxy-server="https=proxy1:80;http=socks4://baz:1080"
             Load https://* URLs using the HTTP proxy "proxy1:80".  And
       load http://*
             URLs using the SOCKS v4 proxy "baz:1080".

--no-proxy-server
       Disables  the proxy server.  Overrides any environment variables
       or settings picked via the options dialog.

--proxy-auto-detect
       Autodetect proxy configuration.  Overrides any environment vari‐
       ables or settings picked via the options dialog.

显然,我们得手动在Chromium启动参数上加上设置代理的参数。按照上面的例子,我应该添加如下参数:
--proxy-server="socks://127.0.0.1:8868"
所以,编辑桌面快捷方式(后缀为.desktop),找到Exec这行,改为:
Exec=chromium %U --proxy-server="socks://127.0.0.1:8868"
记得保存,大功告成,去试试你的代理吧!

如果关闭代理工具后浏览器访问网络产生异常,建议去复制一个新的快捷方式而不是直接修改原有的启动文件。
截图_2022-05-04_01-48-55.png

1919年5月4日上午10时,各校学生代表在法政专门学校召开碰头会,商定了游行路线。一些准备以暴力行动惩办国贼的学生写下遗书。下午1时,北京学生3000余人从四面八方汇集天安门,现场悬挂北大学生"还我青岛"血书。在短暂的集会演说之后,队伍向使馆区进发。行至东交民巷西口,受到巡捕阻拦,学生遂推举代表请求会见4国公使。仅美国使馆人员接受了学生的陈词书,英法意使馆均以公使不在为由拒绝接受。3000余名学生在烈日下整整晒了两个小时,见使馆区不能通过,更加义愤满腔,队伍转向赵家楼曹汝霖住宅。学生们边行进,边宣传,"许多人民看见掉泪,许多西洋人看见脱帽喝彩,又有好些巡警也掉泪"。(《每周评论》1919年5月11日)下午4时许,学生涌至曹宅前。北京高师数理部学生匡互生率先跳入宅内并打开宅门,学生大队涌入,痛打了正在曹宅的驻日公使章宗祥。学生遍寻曹汝霖不着,激愤之下,于4时30分左右怒烧其宅。之后军警赶到,搜捕学生,被捕者共32人。 ——摘自百度百科
实际上,五四运动参与者还包括了广大群众、市民、工商人士等中下阶层。

 预祝大家节日快乐!

☕趁着被宿舍大蚊子吸血的时间发现微信这个细节的bug,用ASCII编码英文字符占一个字节,中文字符占两个,UTF-8编码中文字符占三个,Unicode编码中英文字符均占两个字节。
​微信签名编辑框在显示0可用位置时可能并没有完全占满,你仍然可以输入一个英文字符。所以内容长度限制是精确到字节的。
​那么微信对编辑框里的字数判断是怎么实现的呢?🤔Collage_20220411_004509.jpg