0%

先说结论:两者都是 HomeLab 必备,真香。如果做显卡直通的话,个人觉得 PVE 更好用一些。

Windows Server 2019 / 2022

在使用了 HyperV Server 2019 一段时间之后,我发现 Windows 还是有 GUI 的好。。。Windows Admin Center 虽然可以完成大部分任务,但有些细微之处还是需要 PowerShell 来完成,然而这玩意我用的不是很习惯。偶然有一天发现学校提供了正版的 Windows Server 2019,于是我就果断升级了。备份 HyperV 虚拟机非常简单,最简单的办法是把虚拟机文件复制走完事,然后重新创建虚拟机就行。

Read more »

声明

本文章仅供学习探讨相关技术之用,不保证实际环境中的可用性与合规性,请勿部署在实际环境中。同时,请遵守 VPN 提供方的相关规定(例如,学校提供的 VPN 绝对不可以分享给他人,并且只有本人可以使用)。

此外,本系统会保存登录 vpn 的用户名、密码与 2FA 于树莓派中,尽管可以以各种形式加强安全性(例如设置文件权限、禁止密码登录树莓派),但安全性与不部署此系统相比仍有降低,请参考 4.2 节关于安全性的措施。

2022 Jan 29 更新:

  • 实际使用中发现存在 OpenConnect 进程还在,但是 vpn 连接并没有生效的情况,所以新增了一个通过ping实现的保活的 daemon,详见 3.3.4
  • 更新了 myvpn.service,密码不会再明文暴露其中
  • 优化了一些脚本

1 需求分析

只在树莓派上登陆学校的 Cisco Anyconnect VPN,让同一个子网内的其他设备通过树莓派访问学校内网资源(ssh、远程桌面、查论文)(我的主要需求是访问内网工作站上的 PVE web portal 和使用 SPICE 远程连接工作专用的虚拟机)。同时在树莓派上实现 VPN 的自动登录和重连,保证高可用性。

近期主力科研设备转移到了一台放在实验室的 ML Workstation,由于这个 workstation 处于学校内网,所以必须要连接上学校的 VPN 再通过远程桌面使用(不喜欢 teamviewer)。考虑到 VPN 的特殊性,我并不想在个人设备上时时开着 vpn 进行科研(说得我好像经常在科研一样),所以我总是打开放在家里的一台学校的 workstation,再连接vpn、远程桌面。这台 workstation 发热量极大,导致房间温度总是很高,所以上述需求也就应运而生。如果我在树莓派上登录了 vpn,那我子网里其他所有设备就可以通过树莓派来连接学校内网了,并且只有在规则中设定好的请求才会被转发至内网,也就是说在个人设备上进行科研不再会有各方面的顾虑了。

2 实现分析

以树莓派为核心,这套系统分成了两个部分:流量转发和 VPN 的配置(主要是自动登录与重连)。

流量转发其实是一个老生常谈的话题(毕竟这种 routing 和科学上网密不可分),简单的静态路由加树莓派上开个 nat 就足够了。

Cisco Anyconnect 的 client 在树莓派上可以用 openconnect 替代。vpn 的自动登录主要难点在于学校启用了 Duo 2FA,需要在自动登录脚本里自动生成 2FA passcode,好在我在一番搜索之后找到了在命令行生成 Duo Passcode 的办法。除了一些网络连接错误之外, VPN 会有两种情况自动断线,一种是 idle 超过一定时间(据我观测大约是1小时),另一种是达到了最大连接时长(大约是24或25小时),所以需要实现自动重新连接,来保证 vpn 服务不断。这个需求用 crontab 或者 systemd 均可,权衡一番之后我最终给 openconnect 写了个 service 文件,用 systemd 作为 daemon。

总的来说,这套系统包含:

Read more »

我的首页是建立在github pages上的,并且使用了自定义域名。www.tangbao.me被CNAME到了tangbao.github.io上,github pages的证书也被issue到了www.tangbao.me,但是我却把tangbao.me CNAME到了www.tangbao.me上。这会导致使用tangbao.me访问我的首页的时候,浏览器会报证书错误。

Read more »

前几天给GitHub开了2FA,随后我发现我在terminal里没有办法push了。症状大约是

1
2
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/xxxxxxx'
Read more »

我已经升级到了 Win Server 2022,讲真这个比 Hyper-V Server 香多了。同时我还在另一台服务器上部署了 PVE,这个也比 Hyper-V Server 香。可以参见 https://blog.tangbao.me/2022/01/winserver-2022-and-pve/。建议早日升级 HyperV Server,因为它并没有相应的 2022 版。

没想到这篇文章也被我咕咕咕了三个多月,我已经将系统从预装的1T HDD转移到了1T的SSD中,本文以我最新配置为准。

黑五之前收回来的那台Dell T40 Server终于被我开箱大吉了。服务器嘛,当然是装好多虚拟机来榨干它的性能啦。一开始我是打算装一个Ubuntu Server然后KVM装各种虚拟机的,不过了解了一番微软家的Hyper-V Server之后,我决定拥抱这个操作系统,大概有如下理由:

  • 微软唯一免费的系统,香
  • 可以通过另一台windows上的Hyper-V管理器管理虚拟机,GUI太香
  • Windows Admin Center可以让我在任何地方管理我的服务器和虚拟机,web端管理更香了
  • 考虑到我没有太过专业的需求,就算Hyper-V对于KVM有各种各样的坑,也应该可以满足我的日常使用了
Read more »

整个十一月我都没有写博客,结果12月的这篇博客还被我拖了两个月到2020年2月才开始继续试图写完。

我回顾了一下,发现我7-10月的时候生产力还是很足的,并且可以在很忙的时候作死挤出时间来写博客。等到了11月,学期到了mid和final的时候,我别的事情就忙了起来,我的生产力就逐渐下降,博客也不愿意写了。看来写博客和做research的动力是一荣俱荣,一损俱损的。我决定保持我写博客的惯性,希望以此来提升我的生产力。

Read more »

贼贵的大保养

因为我车已经7年70,000 mile了,有两任车主也不知道咋保养的,carfax上并没有记录,前任车主倒是挺爱惜车经常保养,车子到我手上的时候车况还算不错。不过总有一丢丢小毛病,并且我实际上对车子保养一窍不通,三个月之前去保养(Service Code A1)只换了机油(去了一家中国人开的维修店,免费换机油,机滤换没换我都不知道),并没有做轮胎调换,导致这两个月以来我的车胎磨损似乎很严重,并且左前轮总是没气。遂决定去4s店直接做一个每30,000 mile做一次的大保养。

在一个周末我终于把汽车开去4S店做了一个60,000 mile dealership recommanded service。换了一堆油,三个filter,做了一些clean,adjust和inspection,一共花了我$600多(labor fee就有$400多),搞得我非常心痛。但是车子保养完之后顺滑的一塌糊涂,开起来也更加动力十足,idle的时候汽车抖动抖到我的后视镜都在疯狂晃动的问题也没有了。总体上来说还是非常满意的。

不过我检查了一下一些服务项目,有些东西完全是可以自己做的。比如Engine and cabin air filter replacement,这服务regualar price得$127.25,实际上自己换也就三四十刀买下两个filter,然后花个十几分钟就ok,非常简单,油管上教程很多。

Read more »

今天发生了一件有违社会主义价值观的事情,我晚上很难受,所以我决定一不做,二不休,把我的小y给升级了。

这次我升级了网卡和SSD。网卡升级到了Lenovo 03T8215 BCM94352HMB Wireless-AC Bluetooth4.0 Dual Band 867Mbps Wifi Card,SSD升级到了Intel 545s 1TB

这次升级的想法来源于我前几天才惊讶的发现我的小y搜不到家里的5G WiFi,这咋能行?然后一看网卡,Broadcom 802.11n Network Adapter,干,我得弄个ac的网卡来。于是当场打开亚马逊准备下单mini PCIe的7260AC,但是nico大佬告诉我睾贵的Lenovo是有网卡锁的,即只有特定的几个型号的网卡可以用,即所谓的whitelist。我不信邪搜了一圈,悲哀的发现y430p并没有出破解版的bios来解决白名单问题,乱用网卡的话会导致启动不了。最后求助万能的ebay搜到了一款Broadcom的网卡,支持y430p并且是支持ac的,速率达到了867Mbps,我觉得是完全符合我的需求的。需要注意的是,这款MRU是03T8215,有一些同样是BCM94352HMB解决方案的网卡并不能用,那些网卡的MRU与之并不相同。

Read more »

很多时候还是很羡慕一些人的运气的,真的就靠运气就可以做的很棒了(

不过羡慕归羡慕,自己还是要加油鸭

前几天看到沃尔玛有20刀的all-in-one打印机(Canon PIXMA MG2522,可以搜搜附近能不能自提),于是我一脚油门就去提了回来。买回来之后发现这破打印机只能插到电脑上打印,想到自己还有一个闲置的树莓派B+,遂决定插到树莓派上共享这个打印机。经过一番搜索之后我发现并且实现了如下的网络打印机解决方案。

update 2020/2/17:增加了看门狗和墨水查看ß

前期准备

需求分析

将一台普通的三合一打印机变成网络打印机。

思路非常简单,linux上提供了lp和scanimage命令来分别操作打印机和扫描仪,那么只要将打印机连接到一台长期在线的linux电脑上,解决一下驱动问题,再将这台电脑作为服务器,然后写一个小网站提供调用lp/scanimage命令的交互页面就ok了。

解决方案肯定是要基于手头已经有的东西的。我有一个树莓派B+还有一个树莓派zero WH。这两个东西的性能半斤八两,但是树莓派zero WH使用了micro usb接口,如果插usb设备就要插otg,然而我并不想付额外的接口税(我的otg也找不着了),所以最后我选择了古老的树莓派B+,再找了个古老的8g的sd卡插了进去。

搜了一圈之后我发现这东西居然有非常现成的解决方案了,一个是CUPS(打印机的解决方案),另一个是SANE(扫描仪的解决方案)。于是我就犯了懒,直接用就行了,并没有必要自己再写个小网站,再说B+跑nginx也不太跑得动。。

原来还想再做个内外穿透远程使用打印机和扫描仪,不过后来想了想并没有必要。

Read more »