分类 随手记 下的文章

上次遇到这个问题还是在我刚买回ThinkPad用着Windows10的时候。但是没想到这次居然在NAS的Debian下出现了,就很无语。
解决方案如下,查找policies文件里是何方妖魔鬼怪,结果发现是DuckDuckGo?WTF....吃相真难看啊。

xfox@J3160:~$ whereis chromium
chromium: /usr/bin/chromium /usr/lib/chromium /etc/chromium /etc/chromium.d /usr/share/chromium /usr/share/man/man1/chromium.1.gz
xfox@J3160:~$ cd /etc/chromium
xfox@J3160:/etc/chromium$ ls
master_preferences  policies
xfox@J3160:/etc/chromium$ cd policies/
xfox@J3160:/etc/chromium/policies$ ls
recommended
xfox@J3160:/etc/chromium/policies$ cd recommended/
xfox@J3160:/etc/chromium/policies/recommended$ ls
duckduckgo.json
xfox@J3160:/etc/chromium/policies/recommended$ sudo rm duckduckgo.json

学长推荐了Docker可视化工具Portainer,我没多想就去查了查,发现知乎有文章,日期是2021年上半年的,倒也不算很旧。就进去看了看,按上面的说明配置了,但是进去发现版本是1.X并且提示更新,于是有查询如何更新,随手找到一堆2022年发的互相抄袭的烂文章写:直接“docker pull portainer/portainer
What FUCK???
结果当然就是报错:Error response from daemon: pull access denied for portainer, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
于是我就各种尝试各种找解决方案,甚至一路怀疑到了我的阿里docker镜像加速服务上,终于发现有人提了一嘴:从 2022 年 1 月开始,此存储库的最新标记将指向 Portainer CE 2.X
所以,麻烦各位营销号抄袭的时候看看日期和文章质量吗?一篇2021年一月份的文章到2022年7月份仍然有一个标点符号不差的新拷贝🙃
为了避免被垃圾信息干扰,我就直接用duckduckgo搜索得到www.portainer.io,从里面找到了官方文档对社区版安装的指引接下来皆大欢喜。
我不明白CSDN和B呼的过时信息是怎么在Bing国内版上面位居前列的,可能野生培训班出来的那群普遍就这么low?
也是我的问题了,这次查资料不先用DuckDuckGo和Bing国际版找官网文档却跑去用Bing国内特供版,还先去看的逼呼和CSDN的烂文章😓

不要对简中网络抱有太多幻想。

就在刚刚,NAS崩溃了,重启后ping不通。且路由器内无法看到J3160的连接。
回溯一下我都做了什么。
宝塔使用PM2管理器插件-->卸载PM2管理器插件-->使用APT安装npm和nodejs,试图npm install -g a-->执行apt autoremove
紧接着Windows 10 RDP远程崩溃提示发生错误,接着就连不上ping不通。

抢修和数据备份

接通HDMI,HDMI无信号,机箱电源灯正常,板载千兆网口指示灯不亮,可闻机械硬盘运作噪音。
按下电源键,设备输出HDMI信号,屏幕快速刷新内核界面后无信号输出。-->判断内核可能已启动,系统所在杂牌SSD硬盘数据暂无异常。
再次按下电源键。正常引导至Grub启动界面,主板暂无无异常。内核启动时可见多个Failed报错,但系统正常加载到Debian登录窗口,可正常使用帐号密码登入。
查看发现NAS无网络连接,且原先自动配置的有线连接消失。-->可能由于执行apt autoremove删除了原先的网络连接管理工具并删除了其配置项目导致连接丢失。但重新配置后发现无法正常连接。
重启NAS,有线网络依旧未能连接,遂手动配置使用主板上M.2 PCIE接口的24Ghz无线网卡完成WIFI连接。
未避免出现更多问题,决定先行备份数据再进一步研究。

简要的备份数据后

我选择了直接重装系统,因为第一次装机时缺乏经验对很多东西进行了尝试,让系统软件包较为混乱,重新安装系统可以彻底解决一些遗留问题。吸收上次的经验,使用apt代理充分利用手头的代理资源让这次重装速度快了很多。

为什么之前出现有线网络无法使用的问题?

我仔细想了想可能和第一次安装时没有手动安装网卡的非自由固件有关系,后续多次更换桌面环境又使用apt autoremove彻底删除了初次安装时留下的设备配置文件,所以这次我在安装系统后查询了Debian 官方Wiki找到了相关内容6.4. 加载缺失的固件。以下内容摘自Debian Wiki:
一旦登录进了已安装的系统,遵循以下步骤可能可以自动检测缺失的固件,并启用它们:

安装 isenkram-cli 软件包。

以“root”用户运行 isenkram-autoinstall-firmware 命令。

通常,重启是保证各个内核模块已经正确初始化的最简单的方法;这在使用 nomodeset 参数作为临时措施以启动系统的情况下尤为重要。
[注意] 注意 安装固件软件包很可能需要启用软件仓库的 non-free 区。截至 Debian GNU/Linux 11.0,运行
isenkram-autoinstall-firmware
命令会自动完成该工作,这是通过创建一个指向通用镜像的专门文件(/etc/apt/sources.list.d/isenkram-autoinstall-firmware.list)实现的。
至此,固件问题完美解决。

恢复

参见第一次装机写的文章简单装好了J3160小主机
1.挂载硬盘
2.配置DDNS
3.安装docker

下一步目标,逐步恢复NAS功能,不再使用宝塔面板,应用尽可能容器化

开始恢复各项服务 2022年8月23日

1.安装 Portainer 可视化管理Docker 参见portainer.io
2.安装 Nginx Proxy Manager (docker)

根据需要自行查阅官方文档,需要注意的是,似乎使用Host网络模式才能使用内网IP访问本机上没有绑定外部端口的docker,至少在本人使用Nginx docker镜像时存在此问题。(最开始我只按照官方安装示例给NPM绑定了80,81,443三个端口,但进行下列步骤时反代出现504错误),使用host网络模式可解决。

通过NginxProxyManager 反代访问未映射外部端口的Docker容器(节省实体机外部端口)

当前我的home.xfox.fun亦通过内部运行的一个nginx docker和Nginx Proxy 实现访问。
docker run --name home.xfox.fun -v /home/xfox/www/home.xfox.fun:/usr/share/nginx/html:ro -d nginx

此时,通过NPM面板或docker ps命令可得到此nginx容器被自动分配的内网IP:172.17.0.3,使用NPM新增反代站点并将源站IP设置为172.17.0.3,不必映射到公网端口。(你先别急,不把下面的内容看完有你急的时候
考虑到docker自动分配的内网IP可能会在重启后改变(docker容器获取ip的原则:最先启动的容器获取ip段中最小的ip,之后启动的容器按照顺序获取ip),可采取两种方式解决。
1.为容器绑定一个网络别名

别名类似一个互联网域名,同一个网络中的其他容器可以通过这个别名来访问该容器
使用--network-alias指定容器网络别名
--network-alias home

2.运行容器时就绑定指定内网IP

使用--net指定容器使用的网络 --ip指定容器使用此网络的一个ip
--net somenetwork --ip 172.18.0.2
注意,未指定内网IP时,docker默认分配“bridge”网络的内网IP。如果希望避免容器被入侵后通过默认的bridge内网感染其他容器,你可以新建一个网络并指定新建网络的网段使用与其它容器不同的网段。

恢复与固化Cloudreve进程

我自己有备份Cloureve的程序和数据,官方安装教程够细了

安装aria2

本来想用docker,想了想涉及很多文件读写和端口还是算了吧。

以前也是多次配置aria2apt install aria2即可,配置文件参考https://github.com/P3TERX/aria2.conf 写的很详细
值得注意的是,Debian11默认关闭了rc-local服务,需要手动开启该服务,可参考Enable rc.local in Debian Bullseye

nano /etc/rc.local
写入如下内容
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

设置可执行权限

chmod +x /etc/rc.local

重载systemd配置

systemctl daemon-reload

启动rc-local进程

systemctl start rc-local

检查rc-local状态

systemctl status rc-local

考虑到需要让aria2开机自启动,得向rc.local写一句:aria2c --conf-path=/home/xfox/.aria2/aria2.conf -D

2022年9月3日更新:某宝64G杂牌固态和白嫖风尘的500G机械硬盘

由于NAS上SATA口只有两个,暂时没把16MB Cache的古董机械装上去,装上去的是64G固态(M4-CT064M4SSD2),这个固态当作甜糖缓存盘跑回本电费和硬件,Cloudreve暂时也拿此盘凑合,后期再换大容量固态或者插PCIE转接卡接机械盘。(露出了贫穷的目光 >-> )

如题,😁我今天意识到一个问题,我总是使用人类的语言和别人交流,但是有些人类是根本不适用人类的价值观和理念的。所以,对于那些试图否定南京大屠杀的杂碎,我可以摸着它的良心对它说:日本的广岛和长崎从未被美国轰炸,请日方不要捏造事实装作受害者。
同时,我也在此郑重回应那些宣扬侵略者后代无罪论和我们应该原谅侵略者的弱智:任何受益于侵略者掠夺所得的国家及个人都不是无辜的,其次中国法律规定 “继承遗产应当清偿被继承人依法应当缴纳的税款和债务。”既然这些人选择继承上一代人的财产,也就必须承担相应的债务责任。
对于极端民族主义者及其走狗,我将同样站在民族主义者的角度用枪炮和刀剑送你去见我们敬爱的毛泽东同志。
有话去和毛主席谈吧,我的任务就是送你去见他。

~欢迎复制本博文用于回击各类反华反智人群。

此前安装了Linux Mint20.2Uma,后续升级到了20.3Una,现在基于Ubuntu 22.04 LTS的Mint21 Vanessa已经可用了!(关于vanessa还有另一个词条:https://zh.moegirl.org.cn/Vanessa(Cytus_II)#)
我没有看到官方对于“Vanessa”的解释,但是可以参见ThinkBabbyNames的解读:
as a girls' name is pronounced va-NESS-ah. It is of Greek origin, and the meaning of Vanessa is "butterfly". The name of a genus of butterflies that includes the Red Admiral and the Painted Lady. Also possibly an early-18th-century literary name of English origin created by Jonathan Swift for "Gulliver's Travels" as a pseudonym for Esther Vanhomrigh, based on the first syllable of her surname, and possibly the Latin verb "esse", meaning "to be"

- 阅读剩余部分 -

已知家里的移动宽带挂载的NAS是Full Cone(全锥型),校内使用运营商提供的校园网接入(中国移动宽带)极有可能为Port Restricted Cone(端口限制圆锥型)或更糟糕的Symmetic(对称型)PS:2022年11月19日确认校内为:Port Restricted Cone

纸上谈兵

xtcp使用P2P的方式完成点对点穿透,根据2020-6-10-理解NAT穿越——黄腾霄可见,理论上全锥形NAT可以和四种常见NAT类型完成P2P链接。
通过查看Frp官方Git仓库的Issues记录,可以看到2019年12月30日leveljiujiu提出的新实现方式理论上可以实现全锥形和端口限制圆锥型的点对点NAT穿透。参见优化XTCP穿透性能的代码修改——leveljiujiu 而2020年5月19日rvier明确提出

一边Full Clone 一边 Symmetric(Visitor) 打洞成功,一边Full Clone 一边Port Restricted Cone(Visitor) 型NAT 经测试目前无效。
但是,目前该分支和另一个具有类似效果的分支被拒绝合并,fatedier的理由是:我们专注于 v2 体系结构
What Fuck ,我根本没时间等fatedier撮出来FrpV2主线的release啊!
PS:我记得Frp的竞争者NPS也有点对点内网穿透的功能,既然Frp的作者不想合并,那就看看NPS的P2P写的怎么样。扒拉了一些资料,可以确定NPS的点对点实现(P2P)比Frp要完善的多,NPS在国内三大运营商环境下打洞应该比Frp效果好很多,理论上P2P可以连接的情况下NPS都能打通!那就暂定使用NPS吧。

预期实现

J3160 NAS(全锥型NAT客户端)——>公网服务器——>OrangePi Zero2开发板(对称型/端口限制圆锥型 armv8-a客户端)

J3160 NAS(全锥型NAT x86_64客户端)——>公网服务器——>Xiaomi R3G路由器(对称型/端口限制圆锥型 mipsel客户端 )

实践

2022年11月19日,检查并查看NPS官方文档修正了在家部署时配置的一些错误。
经过尝试,没能打通NAS(Full Cone)和校园网(Port Restricted Cone)
2022年11日20日:凌晨SSH打通了一次,此后再也没打通过,RDP是一直打不通只能走中转。
发现家里NAS终端崩溃了,因为我之前一直靠终端直接运行NPC客户端。官方提供的npc install 在Debian11下无法正确的固化进程,我就干脆上docker了,效果还不错。