One Boom All Boom

banner: https://hk.xfastest.com/5417/asrock-ab350-gaming-itx-ac-review-with-ddr4-2400-3200-compare

23年之前

由于家中设备年久失修,以及国庆之前不知怎么看了老白硬广推荐,手痒入了R69S。厚盒子版本无内存电源,斥巨资480拿下。但现在5105和5100好像也降价来到了一个价位,sad 。软路由这个东西,和各大厂家所谓的小主机相比,可能要便宜一些,但对于我这样的垃圾佬来说,昂贵的玩具属于是。光有准系统还不够,还得购买内存和硬盘。考虑到这台软路由可能需要跑docker以及虚拟机等需求,内存也许应该至少8G,但由于囊中羞涩,我选择上闲鱼捡了4G,-¥55。P.S. 写文时一看京东全新8G才¥120左右,哭晕。固态同样上闲鱼捡了被淘汰的傲腾16G应急,-28¥。正好手上还有一块几年前买的4T机械,在淘宝上又花10元买了亚克力硬盘架。于是,借此打造一台
ALL IN
ONE服务器也在情理之中了。之前其实已经比较顺利地搞完了一些系统的安装以及openwrt的编译等,但由于没有记录,并且16G的硬盘跑docker实在太小了,所以趁这个寒假又重新
捯饬dáo chi
了一下。

电脑降级

本人带到学校的轻薄本性能实在是太捉鸡了,随便编译个什么东西风扇就会呼哧呼哧转。正好我家还有一台旧台式电脑,或许还可以利用一下。不然一直放在家里的话,把电脑主机寄存在同学家里也许是个更好的主意。但是一般台式的体积太大了,不好携带。用itx可能可以解决这个问题。

机电选择

这次显然不能用鞋盒机箱和红星电源了。itx玩到最后,无非就是机箱、电源、散热三样。由于这次改造只打算换主板,原来的2600和1066就不用动了(没钱,羡慕群友1万6电脑)。如果把体积放在第一位,本人最先考虑的是傻瓜超人的k39。但可惜本人的传家宝显卡差不多在23cm,远远超出了该机箱的限长。虽说矿难来临后一片狼藉,但如果换显卡的话选择真不是很多。二手的短卡越卖越贵,如果非要选,在500元以内的价位可能只能上咸鱼的矿难白牌588了。基本还是470刷的

除开显卡,鱼龙混杂且昂贵的1u flex电源和k39那褒贬不一的品控也容易劝退人。于是只能把目光转向准A4机箱。我选择的是闪鳞S300,据说是蜂鸟i100的团队打造,品控还行。SFX电源方面本人选择的是tt钢影450。itx一般不会上太高端的,我这套老平台用300W的电源压都绰绰有余了。同样这块电源采用了APFC+半桥LLC谐振+12V SR整流+DCDC的一个拓扑结构[1],这些名词我一个都听不懂。(但某位电信专业的年级第一就应该了如指掌)装上之后发现这个电源的噪音和发热还是能控制在一个比较理想的范围内。散热方面,直接用老原装的不改动。

主板与硬盘

原来的平台是一个技嘉的B450 Gaming,其matx板型完全放不进itx机箱。我好想换新的主板啊,可是新主板太贵了。无奈上咸鱼捡了一块华擎的AB350itx,-¥320。都说自古华擎出妖板,这块主板相对还正常。虽然在年代上面降级了,但从规格来说,反而可能还比原来的丐板升级了。就是无线网卡可能以后需要换一下。

固态方面,原来的电脑是一块256G的m2+256G的SATA3,估计光下几个docker镜像可能就不够了,于是又入手了一块大华。

ssd

不是大华我不用,因为他是有良心的,中国制造!

原SSD与新电源:

ssd

清灰组装

由于到原平台工作时间比较长久,浅清一下灰是有必要的。主要是用刷子刷了一下灰尘+水洗散热鳍片+重新换硅脂。硅脂当然选中国制造的高导007,主要是便宜。以下是几组照片:

pcb
pcb

可以看到没清灰之前灰尘吸附巨多,而且显存旁边漏满了油。已知挖矿时有的显卡会降压超显存,问:这块卡经历了什么?

b350
b350
b350

电源线是普通的黑线,比服务器彩线可能软一点,但比定制线硬多了,好在机箱内部剩余空间比较大,随便塞塞完事了。机箱说明书的安装顺序完全是错误的,如果按说明书装可能会比某211高材生装机还费时间。

case
case

各设备对比:

finish

体验系统

压力测试

室温10度,双烤15分钟结果如下:

stress

看起来还行,但夏天估计要多装个12015风扇。

配置git

对于GitHub,可以通过SSH over the HTTPS加速。(没代理的慎用)

~/.ssh/config中,加入[2]

1
2
3
4
Host github.com
Hostname ssh.github.com
Port 443
User git

如果你使用了gpg对git提交进行签名,就需要对密钥进行导出导入。可以直接复制文件夹,也可以通过以下语句:

  • 导出公钥
    gpg --export --armor xizeyoupan --output public.key

  • 导出私钥
    gpg --export-secret-key --armor --output privkey.asc xizeyoupan

  • 导入公钥
    gpg --import public.key

  • 导入私钥
    gpg --import privkey.asc
    实际导入时,只需导入私钥即可,导入私钥后自动导入公钥。

别忘了在.bashrc加上export GPG_TTY=$(tty)这个✌️trick✌️,不然commit的时候就只有error: gpg failed to sign the data,fatal: failed to write commit object了。

WSLG

换了bug11系统,主要还是想体验下全新的WSL和WSA。

WSLg is short for Windows Subsystem for Linux GUI and the purpose of the project is to enable support for running Linux GUI applications (X11 and Wayland) on Windows in a fully integrated desktop experience.[3]

具体的架构细节可以看GitHub,但是有了这样的音频和视频实现,和得益于最近几年的国产系统,我们终于能够尝试在WSL中运行一些国产的流氓软件了,比如QQ和微信。

微信采用的是优麒麟的这个版本,下载页面的最新版本是2.1.1,但替换url中的版本号可以下载到2.1.4的,不知道有什么区别。直接装2.1.4的了。

另外建议安装的一些依赖:

  • 类似于任务管理器:
    sudo apt install gnome-system-monitor

  • 中文字体:
    sudo apt-get install ttf-wqy-microhei
    但显然在网上冲浪比汉字还不是最重要的,就像以下这段话没有emoji字体就很难理解:

    你🗣️🉐✔️,🥚4️⃣《⭕🗽》4️⃣🈶🍚哈🏊🏻自主🧐發🉐1️⃣款全🆕开放4️⃣界🎩险🎮。🎮发生在1️⃣个被称🧘♂️「提瓦特」🉐幻🤔4️⃣界,在这🍐,被🗽选🀄🉐👨将被授予「🗽🍹👁️」,🧲导⚪素🍹💪。你将扮演1️⃣位名为「旅行者」🉐神㊙️角😍,在🆓🉐旅行🀄🦀逅性格各异、能💪独特🉐🗑️伴🚪,🈴他🚪1️⃣7️⃣🐔败💪敌,找回失散🉐😘人

    sudo apt-get install fonts-noto-color-emoji

  • 输入法:
    sudo apt-get install fcitx-pinyin
    装完可在GUI界面设置。

这个方案还有许多不完善的地方:

  • 安装完后,使用ffpaly播放MP3有声音,但是用其他比如chrome就无声音。
    非常莫名其妙的问题,因为我看其他人演示chrome是直接有声音的。看了WSLG Architecture Overview也搞不清楚是因为X11 App与Wayland App走的不同协议还是其他原因。安装pavucontrol后解决,sudo apt-get install pavucontrol
    并且各应用音量可以用pavucontrol控制,原理不明。
  • Windows与WSL之间的复制目前除了文本,就仅支持bmp格式的图片[4],非常不方便。可能可以通过一些奇怪的hook解决,但现在确实没啥精力。
  • 多数应用只支持整数倍缩放[5]
    在高分屏上非常要命的问题,算是linux遗留的毛病,决解方案要不只能缩放到200%(之类的整数倍),要不非常模糊,要不伴随着个别app繁琐的手动设置。令人心累。希望有生之年官方能解决这个issue。
  • 坑爹的Zone.Identifier文件[6]。不难删除但有点恶心人。

下面是应用程序自身方面的:

  • qq3.0.0版本功能不完善,无通话等功能;腾讯认为这永远是一台新电脑,想要登录就得扫码或确认;收到消息后有92%的概率闪退。才92%啊,我还以为29%呢。其实我也不知道有多少概率,但非常频繁。值得一提的是,在wsl中运行qq后,windows网页端仍可以使用qq快捷登录。原因就是QQ客户端其实在localhost监听了一个端口,而网页上的qq快捷登录会访问localhost。
  • 微信有基本功能,依旧要扫码登录;如果你在文件传输助手传原图的话,下载下来的文件大小是原图的100分之一,不如直接用网页版。
  • 钉钉直接打不开。

ALL-IN-ONE

接下来才是折腾的重头戏。All in One这个东西集成度高,可玩性好,但相对复杂度也更高,如果硬件坏了可能会导致整个家庭网络的缺失。上面换下来旧的ssd刚好拿来装系统。目前软路由的玩法千恋万花,软路由套软路由、软路由套旁路由、软路由套docker套旁路由套软路由…不一而足。如何在可靠性和可维护性相对较高的前提下做到相对较低的耦合性,是我们要思考的重点。因此,我们应该先从自身的需求开始分析。

穷人的需求

在入手R69S之前,家中是由百年老漏油器newifi3来当作无线路由器和拨号上网的。由于博主家的面积仅为60平方米,而日常带机量估计在两位数以内,因此随便拿一个本世纪产的无线路由器都能够做到全屋覆盖。但对于在杭州拱墅区有500平米别墅的卷王和在城区有自建4层复式的高材生来说,可能这就是一个需要思考的问题了。常见的方案有ac+ap、mesh组网的方式。更细节一点的,ac+ap的交换机是选一体机还是仅带poe?mesh是用稳定的企业提供方案,还是用不太美观的垃圾佬斐讯方案?幸好在这方面博主一不是网络工程专业的保研大佬,二没有钱,因此无需忧虑。

简明的拓扑

初步确定画了好久的网络拓扑如下:

topology
如果有大house的家人们只需把ap换成交换机即可。

具体的部署思路可以看司波图的这个教程。在这里稍微解释下:

  • 所有设备都暂且设置到同一网段下。
  • 用R69S的第一个接口作为pev的默认网桥直通给openwrt虚拟机和lxc容器。剩下三个接口通过pci设备直通给openwrt虚拟机,所以四个接口都接入了openwrt。openwrt虚拟机中设置第四个接口为wan口,其余三个接口都桥接到openwrt内部的lan口。这样一来三个桥接到lan口的接口相当于交换机上的接口一样能互通了。
  • 所有的服务都以docker形式跑在Debian LXC容器上。
  • HDD硬盘先挂载到pve系统上,再通过绑定挂载点绑定到LXC容器上,从而被docker容器使用。
  • newifi3同样刷了openwrt,在br-lan桥接所有的有线和无线接口。br-lan的协议选DHCP client,只要把网线另一端插到newifi3的任意一个实体lan口,newifi3就会获得R69S中openwrt下发的ip,从而可以通过ip直接访问。同样这个newifi3除了ap的功能,也可以看成一个交换机。

内网穿透

内网穿透的方案确实又千恋万花了。如果有公网ipv4,一般的选择就是直球的ddns+端口转发(也有人担忧这样做的安全性)。如果没有,可以尝试v6。如果还不行,像传统的选择有frp、nps等,只是需要额外的服务器,有点本末倒置的意思。也有近年来比较火的借助nat打洞组建虚拟局域网的zerotier等,但对网络nat的要求苛刻,一但fallback到免费的服务器,速度就奇慢,如果要自建中转服务器,那你就又陷入了需要额外服务器的怪圈之中。此外用Cloudflare提供的Tunnel服务进行内网穿透也是一种选择,但是战狼不能用,详见下图证明(大雾。
shenyi
只是据说cf的速度堪忧。其他花生壳什么乱七八糟要收费的就不多说了。可以看到上面的网络拓朴中博主用了caddy来进行反代,博主选了啥只能说懂的都懂。

最后的话

本来想详细记录下折腾的过程的,但后来发现跟着司波图的教程做就算是小白都很容易上手。我用大佬的action搞了一个编译的模板[7],更改了openwrt的ip,这样在安装时pve和openwrt之间网关之类就不用切来切去了。那就这这样吧,也不知道被卷王顺走的电源发挥工作了没有,我先去看vtb了,88


  1. 【SFX横评¹】最全面的450W SFX电源测试+拆解横评,哪个最值得买? ↩︎

  2. https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port ↩︎

  3. https://github.com/microsoft/wslg ↩︎

  4. https://github.com/microsoft/weston-mirror/blob/23cf3a56ef3155a688e7cf48a33d1705446b6854/libweston/backend-rdp/rdpclip.c#L92 ↩︎

  5. https://github.com/microsoft/wslg/issues/23 ↩︎

  6. https://github.com/microsoft/WSL/issues/7456 ↩︎

  7. https://github.com/xizeyoupan/Actions-OpenWrt ↩︎