分类 随手记 下的文章

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

主要坑点:

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

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

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

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

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

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

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

昨天好兄弟找我解决这个问题,他几年前买的MateBook13 (R5 3500)最近几天出现了浏览器主页被劫持的问题。

我起初以为是下载了国产流氓软件,就让他安装火绒进行查杀。结果火绒也没扫出来个所其然,我这位朋友平时上网习惯也还可以,我第二天晚上就远程他的设备看了看。

具体症状

打开浏览器后第一个页面自动被劫持到360搜索,但是后续点击主页键和新建页都没有异常。

赚钱嘛,不寒碜

令我感到意外的是,我发现启动后首页跳转是从一个华为云域名关键字相关的域名跳转过去的。于是打开华为电脑管家,果然在设置里扒拉到了一个已经开启的功能选项:浏览器保护。
关闭改功能,启动浏览器发现已经恢复正常。
😅果然,赚钱嘛不寒碜。

参考资料:
Ubuntu 22.04安装AMD显卡驱动————qakcn
ROCm 无法从 22.04 中的 APT 存储库安装
rocm_dummy_packages
本文所有操作全程网络强国状态下进行,如果你碰到相同的问题请使用Mint21/Ubuntu官方存储库在相同网络环境下完成实验。

开始尝试解决问题

我遇到的问题与参考资料类似:

有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 rocm-llvm : 依赖: python 但无法安装它
             依赖: libstdc++-5-dev 但无法安装它 或
                     libstdc++-7-dev 但无法安装它
             依赖: libgcc-5-dev 但无法安装它 或
                     libgcc-7-dev 但无法安装它
             推荐: gcc-multilib 但是它将不会被安装
             推荐: g++-multilib 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

但是我无法通过材料中给出的方法修复,因为当我使用apt下载rocm-llvm这个包时发生如下错误:

E: Unable to correct problems, you have held broken packages.
E: Handler silently failed

The packages were downloaded into rocm-llvm.tar.gz. This archive contains all the packages necessary for an offline installation.
xfox@xfox-ThinkPad-E14-Gen-3:~/rocm-llvm-fix$ ls
rocm-llvm.tar.gz

并且我只能在rocm-llvm.tar.gz中看到一行没什么意义的
所以我选择使用rocm_dummy_packages骗过安装程序,但是我遇到了第三个问题

在处理时有错误发生:
 amdgpu-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

我的评价:**AMD,活该你显卡没人用。
在提供给Ubuntu22.04的驱动包要求依赖不存在Python3.8,你怎么不啊。

再次尝试apt download rocm-llvm

出人意料的,下载成功了,我确实像参考资料一样得到了一个rocm-llvm_14.0.0.22204.50200-65_amd64.deb,我直接????????????你**有**吧????那我之前操作为啥就不行?难道先骗一遍才能正常下载???*\&$**(好像还真的时得先骗一遍,我参考的文章没有明说要通过那三个假包完成欺骗才能下载到这个deb,但是原作者确实提到感谢jacodt给出的解决方案.)
总而言之,现在可以按照正常流程来了,所以我卸载了三个假软件包,然后按照流程修改了rocm-llvm安装包进行安装.
PS:后续使用timeshit恢复了备份,重新走流程,发现其实不需要安装三个假包去骗,上面出现的出人意料的情况大概是我改文件没改好。

amdgpu-dkms安装报错

E: Sub-process /usr/bin/dpkg returned an error code (1)
看了看log,没能力解决,索性卸载掉,重新amdgpu-install --no-dkms

简介:2033年,为了抵御小行星的撞击,拯救地球,人类在月球部署了月盾计划。全员撤离时,维修工独孤月(沈腾 饰)被领队马蓝星(马丽 饰)落在了月球。不料月盾计划失败,独孤月成为了“宇宙最后的人类”,开始了他在月球上破罐子破摔的生活……

我不认为这他是中间人

 这个剧提到了“中间人”这个概念。中间人,一切不上不下不好不坏,但是在我看来剧情里的“中间人”独孤月并不算中间人。一个飞行器工程师也算“中间”吗?作为科幻影片,未来里飞行器工程师遍地走也许不奇怪,可在当前的时代,这可算不上中间,至少也应该是中上层。

结合政治意识形态思考

 中国是一个社会主义国家,一个被党组织支持赞助的影片显然不可能缺少中国政治主旋律,作为一个智力健全的人,我们需要进行独立思考,客观的去了解影片给你表现了什么,以及表现的意识形态内容是否合理。共产主义讲求奉献社会,影片中也毫不例外的表现了牺牲小我顾全大我的剧情,这倒是有些出乎我对剧情的预期(即中国传统的大团圆结局)。

结合时局思考

 当前时局的现状是,有一些人在躺平,还有一些在摆烂,剩下的大批人在内卷。我个人认为中国的人口红利已经可以说消失了,除了消费群体庞大,我暂时想不出来巨量人口对中国还有什么优势。这部影片疑似有对中层群众激励的意思(当前我通常认为中产阶级或者说社会中层中坚力量是中国最大的群体),如果有,我觉得激励的很烂。因为人民群众不喜欢听假大空放卫星,我不认为主角算真正处于中间层次的人,至少知识水平绝对不算中间。这就有些选题错误了,主角不是目标人群,那如何拿主角去激励目标人群?这里提到了躺平一词,据说发明这个词的人现在不太好过,大概是因为他引起舆论和社会负面影响了吧(政府认为的负面影响),有兴趣的可以去查查,国内提出来这个的人在贴吧发过帖,我记得他自称被“教育了”,一些社交媒体帐号也被封禁了。各位可以去看个乐子,当然,这个乐子大概建立在别人的痛苦上。由于时间比较久远了,我暂时没能找到这个人当时发帖的信息,可能被删除了吧。(和躺平吧没关系,躺平吧应该都是后躺平时代的东西了,按照我的记忆,我说的人和事情应该和三和大神等群体有些关系。

写给自己

躺平的前提是有长期稳定收入和处所,显然我缺少前者。结合求上得中求中得下的惯例以及剧中对“中间人”的定位和我心里对中间人的定位,我还是要选择去卷一卷才能有更大的机会得到自己想要的生活。

EA的服务器就像烂番茄,不是在出问题,就是在出问题的路上。
EA三部曲:
1.您的凭据不正确或已过期。请重试或重置您的密码。
2.很抱歉,我们遇到了一些技术难题。请稍后再试。
3.您的认证信息不正确或已过期。请重试或重置密码。
什么?网络有问题?今天你学习强国了吗?乐~~

冷静思考

根据17次登录和重置操作做出猜想:EA可能对登录设备和IP地址进行了对比,如果重置密码时使用了代理,登录时也应当使用相同的IP做代理。一旦使用EA各项服务的过程中多次改换IP地址,就会不断出现“EA三部曲”问题。

似乎密切相关的信息

解决网络原因导致的Origin/EA DESKTOP 您的计算机目前处于离线状态 / Double-Check your connection / 目前不能使用您的账户在本机连接到EA服务器激活————Posted on 2022年1月19日 by 羽翼城|Dogfight360
EA Desktop客户端登录似乎有一个必须的校验服务器,HOST对应关系:
159.153.190.222 proxy.novafusion.ea.com
测试发现国内外可以正确解析IP地址但是完全无法ping通,可能服务器关闭了Ping回复。
CURL请求发现校园网环境下(IP出口为移动宽带)无法正常请求,但代理后以及其他多地服务器测试均可正常请求,猜测可能被本地运营商或学校防火墙阻断。(试过本地运营商的5G流量能打开,没有被阻断,所以后者的可能性更大)
PS C:\Users\xfox> curl https://proxy.novafusion.ea.com
curl : 基础连接已经关闭: 发送时发生错误。
........

校园网....乐.....
Fiddler抓包发现,EA Desktop启动后验证服务与以下域名密切相关密切相关

校园网环境下通过Steam调用EA启动BF1截图2022-10-31T17:56:12.png
confluence.ea.com:80
ratt.juno.ea.com:443
当然这只是开头的一两个,实际登录过程还有很多别的域名,下面会总结以下。
移动5G流量环境下截图2022-10-31T18:19:59.png

顺便,我通过5G移动网络进行了一次登录的测试,第一次毫无疑问依旧出现EA三部曲问题里的问题1,但是在不加代理完成一次更新密码的操作后,EA客户端顺利的完成了一次登录。这佐证了我的猜想,EA确实对帐号登录和密码重置时的客户端IP有严格的校验。

猜想2(尚未证实但是证实了别的)

校园网防火墙限制单个帐号带宽的同时还加强了对特定网站/数据包类型的限制。
使用校园网(移动)出网口Ping ratt.juno.ea.com发现解析到 e16166.e12.akamaiedge.net [23.5.245.219]延迟高达205ms+
而使用移动5G流量解析到了 e16166.e12.akamaiedge.net [223.119.223.211]最短 = 77ms,最长 = 117ms,平均 = 92ms
查询得知前者是美国加利福尼亚圣何塞 Akamai机房,后者是香港移动机房。
显而易见的,不管校园网有没有故意墙端口,都可以发现本地移动宽带在出口线路质量上远不如移动的数据流量。(大概因为后者更贵吧xd)随后我再次切到校园网发现EA客户端快速掉线,Ping ratt.juno.ea.com解析到了 e16166.e12.akamaiedge.net [125.56.150.63] 最短 = 102ms,最长 = 751ms,平均 = 140ms 数据包: 已发送 = 23,已接收 = 17,丢失 = 6 (26% 丢失)
这个丢包率可真行,现在可是凌晨2:48!所以,在我对这些关键域名完成转发之前,我最好老老实实开流量玩。=-=

总结EA客户端启动到登录完成所需域名:

ratt.juno.ea.com
service-aggregation-layer.juno.ea.com
accounts.ea.com
api1.origin.com
pc.ea.com
service-aggregation-layer-subs.juno.ea.com
c.go-mpulse.net
contentful-proxy.juno.ea.com
pin-river.data.ea.com
bam.nr-data.net
storage.googleapis.com
www.google-analytics.com
pin-em.data.ea.com
groups.gameservices.ea.com:443
friends.gs.ea.com:443
sdk.split.io
rtm.tnt-ea.com:8095
achievements.gameservices.ea.com
cdn.mcr.ea.com

Steam调用EA2Link启动BF1请求域名列表

ratt.juno.ea.com
accounts.ea.com
api1.origin.com
service-aggregation-layer.juno.ea.com
pc.ea.com
service-aggregation-layer-subs.juno.ea.com
pin-river.data.ea.com
contentful-proxy.juno.ea.com
bam.nr-data.net
www.google-analytics.com
c.go-mpulse.net
pin-em.data.ea.com
storage.googleapis.com
friends.gs.ea.com:443
groups.gameservices.ea.com:443
sdk.split.io
rtm.tnt-ea.com:8095
gateway.ea.com
events.split.io
privacy.xboxlive.com
presence-heartbeat.xboxlive.com

理论上确保这些域名的请求正常响应就可以保证EA客户端正常上线且保活。

这个问题自从我升级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

参考文章:

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