分类 Linux 下的文章

在WIndows10下也会有类似问题,比如使用Tab自动补全失败的时候。扬声器突然大声dou的一声,很容易打扰别人休息。

参考资料:
linux 关闭主板上的蜂鸣器声音
PC speaker

我当前使用的是Debian11 bullseye +KDE,所以我不必极端的使用 rmmod pcspkr的方式避免触发beep。
通过KDE的“系统设置”→“辅助功能”→“响铃”,我可以关掉他。

为什么我要更换到Debian?Mint等下游社区对原Ubuntu的修改一定程度上使系统更加开箱即用,但也对一些功能的使用造成了限制,Ubuntu并不是一个彻头彻尾的自由软件,尽管我不追求完全使用自由软件/剔除专有软件,我仍然无法接受自己使用的操作系统可能潜在的法律风险。俄乌战争时期Nginx等软件及过去Apache基金会等组织的行为也表明了任何可能受到国家控制的组织信用均不可信。我不想把自己的自由倾注于不可靠的组织,特别是专有软件厂商和无法摆脱美国等国家影响的基金会。相比Ubuntu,Debian显然是更自由,更容易避免政府影响的选择。

- 阅读剩余部分 -

华为手机:连接被拒绝,我的PC也提示无法连接。
更换信道,重启,恢复出场设置均无法解决问题。
5G 分频的SSID时显时不显示,不知道什么情况。
2021年4月29日买的,没拆过机,功能之前也都正常,就很奇葩。
到现在用了607天了,目前个人怀疑官方故意拉高功放功率长时间超负荷发射导致器件损坏。

2023年1月3日更新

当时出现问题后我把5G AP关掉了,今天打开了,可以正常连接使用了。
具体原因尚不明确,小米的东西稳定性确实不敢恭维。

2024年3月24日更新

去年年底回家5G WIFI又是要么连不上,要么干脆扫不到SSID,今天回家又能连上了。玄学。

我选择了Docker部署,因为我不打算继续接触宝塔。

主要坑点:

  1. 在没有更改端口的情况下,默认你必须在防火墙放行23333和24444端口

    当然,出于安全考虑我选择了反代默认端口。
  2. Docker里默认没有Java环境,你必须先在面板里选择构建一个新的JDK17镜像作为运行环境再构建服务器实例。

    因为JAVA环境在容器里,所以进程启动方式选择虚拟化容器并设置端口绑定端口25565:25565/tcp (你想换非默认我没意见,我自己还加上了UDP)
  3. 第一次启动服务器后,你需要手动编辑官方服务端生成的EULA文件把否改为是再重新启动服务器。(不会有人写中文“是”吧?xd)

    MCSM提供了快速的编辑选项,但是我是第一次用这个面板,还没摸索到那里就直接手动改好文件了。

这好像是我第一次在自己的设备(云服务器)上开服务器?

其实我只是不想浪费2c2g4m的服务器罢了=-=,毕竟挂博客没多大占用。不然我就在NAS上开再内网穿透了。

服务器地址:xfox.fun 端口默认25565,懒得搞SRV了

2024年更新:
服务器使用LinuxGSM部署在NAS上,IPv6直连:v6.home.xfox.fun

前言

自从开始把越来越多的工作生活需求在Gnu/Linux发行版下实现,我一直想要一个可以通过WIFI直连(WIFI Direct)实现PC和安卓的点对点高速协同的软件包,但是网上找了找没找到,绝大多数都是需要局域网实现的,想了想平时经常手机给PC开热点,那其实也就没那么重要了。
昨天折腾了半天,但是PC一直连不上安卓客户端,跑了个Nodejs web服务测试发现局域网也打不开但是ICMP Ping的通,我刚开始以为是自己路由器配置有问题导致出现AP隔离的情况,可是切换到Windows10用KDE-Connect反而能连接上,那显然就不是R3G的OpenWrt配置错了。

顿悟

今天晚上安装OpenShot给室友剪视频,折腾过程中无意间看见设置里有个防火墙,打开一看默认防火墙开着,而且默认传入是拒绝,瞬间就意识到为什么昨天晚上扫描不出来设备,也连不上......

首先把防火墙先关了,接着重新运行昨天的web项目测试,不出意外的正常访问了,那么肯定昨天晚上因为防火墙拦截了传入的流量。

安装KDE-Connect

还好昨天晚上没卸载安卓端....现在apt install kdeconnect即可
经过测试,因为是我的手机开热点,还是扫不出来,可能是客户端默认不会扫描请求路由器的地址,通过host名称也无法识别,但是安卓端写好IP地址马上就出来PC了。
现在我可以愉快的实现文件互传和剪切板内容发送了。

保证安全

显然,我不能总是关闭防火墙,在不安全的网络环境下相当危险。所以去查询以下完成通信需要哪些端口吧,在KDE UserBase Wiki里提到:KDE Connect 在 1714-1764 内的动态端口使用UDP和TCP协议 。
接着我发现,Mint21自带的Gufw Firewall已经内置包括KDE connect在内的超多应用的规则,只需要搜多KDE connect即可选择启用。还能快速选择“语音服务和P2P”以及“全部服务”这样的常用大范围规则,真是人性化:)

这个问题自从我升级Mint21已经碰到过很多次了,原因大概就是apt-key这个命令马上要废弃了(按照惯例也很可能为了兼容一直都不砍掉),以后应该使用trusted.gpg.d 来管理密钥文件,也就是说:现在我们必须自己将密钥文件添加到/etc/apt/trusted.gpg.d/ 文件夹中

如何解决?

以OpenShot为例:
当你打开OpenShot官网试图安装每日构建版本,官方要求你添加PPA并更新存储库缓存,但是你将发现标题里的提示:

xfox@xfox-ThinkPad-E14-Gen-3:~$ sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
[sudo] password for xfox:           
您将添加以下PPA:
 This PPA contains the most recent source code from libopenshot (OpenShot Video Library). These packages are only intended for testers of OpenShot 2.0, as the source code can be highly unstable during active development of libopenshot.

If you are looking for daily builds of OpenShot 1.x, please go here: https://code.launchpad.net/~openshot.developers/+archive/daily
 更多信息: https://launchpad.net/~openshot.developers/+archive/ubuntu/libopenshot-daily
按Enter继续,按Ctrl+C取消

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Executing: /tmp/apt-key-gpghome.kiOrWySk0O/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys FBA0C227099A5360635E3D9152165BD6B9BA26FA
gpg: key 52165BD6B9BA26FA: public key "Launchpad OpenShot Development PPA" imported
gpg: Total number processed: 1
gpg:  

         imported: 1

根据终端输出,现在你知道了Launchpad OpenShot Development PPA的公钥指纹是:FBA0C227099A5360635E3D9152165BD6B9BA26FA
那么,现在使用GnuPG把这个指纹对应的二进制密钥文件丢进它应该去的位置:

你只需要输入密钥指纹的后八位就可以让你的设备识别这个密钥,但是,apt不识别ascii-armored格式的密钥,所以你应该先把它转换成apt支持的二进制格式。
sudo apt-key export B9BA26FA | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/openshot.gpg

值得注意的是,如果你是个没有独立思考能力只会照抄的CSD*的**,请不要把我这里的密钥指纹以及对证书文件的命名粘贴到你的计算机上。如果你这么干了,就别留言问我为什么还报错。

补充说明

如果软件包官方直接提供了二进制公钥文件,你可以直接将公钥丢进/etc/apt/trusted.gpg.d里,当然记得确保他们是二进制格式而不是常见的ASCII Armor格式。
你可以使用如下命令完成

gpg --import $KEY.asc
gpg --export $KEY_FINGERPRINT > $KEY.gpg

gpg [options] --dearmor [file]

使用-o 参数输出到目标路径的文件即可。

参考文章:

OpenPGP 密钥处理
Warning: apt-key is deprecated (SOLVED)
apt-key(8)
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead

设备是我的NAS,通过RDP协议远程访问,并没有外接显示器。
报错内容如下:
xfox@J3160:~/Desktop$ sudo /home/xfox/MyApp/Clash/cfw --no-sandbox
No protocol specified
[3233857:1025/204210.540609:ERROR:ozone_platform_x11.cc(247)] Missing X server or $DISPLAY
[3233857:1025/204210.542359:ERROR:env.cc(226)] The platform failed to initialize.  Exiting.
The futex facility returned an unexpected error code.
已放弃

我在Github上关于puppeteer.js的仓库issue找到了一种解决方案:

xfox@J3160:~/Desktop$ printenv DISPLAY
:10.0
获得$DISPLAY的值后将其添加入当前PATH即可(显而易见,如果你不打算每次登录都写一遍,那就放进crontab里吧!)
export DISPLAY=$HOST_IP:10.0 && /usr/bin/XXXXX

**当然,这不能帮助我解决问题**
**?我好像没有义务必须先告诉你上面的内容是无意义的吧,况且LOG还是有意义的+-+**
## 打破沙锅问到底
Q:为什么我要执行LOG里的那一串命令?
A:因为Service Mode无法正常安装,并提示我:User did not grant permission.
Q:你最终是如何解决问题的?
A:[如下][2]

cd ~./config
rm -r clash
rm -r clahs_win
STOP clash then:
/home/xfox/MyApp/Clash/cfw --no-sandbox


  [1]: https://github.com/puppeteer/puppeteer/issues/8148#issuecomment-1204965369

首先Ipv6远程登录了NAS,emmm.....
然后经过一番折腾发现B站的网页直播不支持我的NAS,倒是在我的笔记本的Mint21上可用。
最终抱着试试的心态打算安装OBS:
首先看了OBS的需求:

xserver-xorg version 1.18.4 or newer is recommended to avoid potential
performance issues with certain features in OBS, such as the
fullscreen projector.

OpenGL 3.3 (or later) support is required to use OBS Studio on Linux.
You can check what version of OpenGL is supported by your system by
typing glxinfo | grep "OpenGL" on Terminal.

执行glxinfo测试发现我缺库,查了一下,是mesa-utils这个开源库,apt装上,通过测试,确定OBS理论上是能跑的,继续远程NAS,安装OBS:

sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install obs-studio ffmpeg

接下来,启动开始串流!
(今天凌晨,也就是现在,B站在维护服务器没法改直播间名字,等我有空再改)