Nat小鸡+Tailscale+PVE,打造家里云平台

还是之前折腾 PVE,个人 NAS 的一些话题,‘家里云’这个词也是最近在b站看到的,指的是把服务部署在家里,就不用买阿里云的服务器了嘛,所以就叫‘家里云’;

Nat小鸡,是共享一个 IP 的服务器,会便宜不少,‘小鸡’就是有些人会用服务器在虚拟出子虚拟机出来,或者使用 Docker,LXD 之类的进程隔离技术,所以叫小鸡。

好的,名词解释到此结束。

在之前,我写过一个文章,关于使用 tailscale peer relay,很抱歉的是,在体验了一段时间后,发现这项技术在国内并不好用。

原因很简单,固定端口导致的运营商限制。UDP 本身面临着运营商很严重的 QOS(服务质量保证,人曰:限速),本身运营商也不会一刀切,毕竟使用 UDP 的服务很多,包括远程桌面,视频会议呀之类的,但是像是使用 Wireguard 这种很明显的 UDP 服务,并且是 C2C 的这种连接,没在白名单内,运营商识别到了还是会限速的。

前两天我用 Tailscale 的时候(没用 Peer Relay )发现,文件传输速度会从 3M/s->100k/s->3M/s,而后面的升幅我使用 tailscale status查看详情时, 发现连接端口变了,可能是运营商会对单个端口大流量进行管控,所以就是我前面得出 Peer Relay 在国内并不好用的原因。

关于国内如何突破运营商 UDP 限制我也参考了一些文章,大多都是使用例如 phantun 和 udp2raw 这种方式,将 UDP 加入一些额外的头伪装成 TCP,当然这需要在装对应的客户端和服务端,进行对应配置,对于我这种有多个终端,并且使用很多端口的来说,是不太可能的事,也很明显违反了最初使用 Tailscale 的初衷;

然后又回到自建中转了,不知道什么时候看到了 Nat 小鸡这词,所以去搜了一下,发现各家的价格都不会很贵,虽然看起来都是一些野鸡厂商,但是对于我们这种只是转发数据来说,而且数据都是加密的,没什么不妥。一个月 15 左右就可以了,流量限制 500G ,如果流量不够用,也可以买多个,还能做个负载均衡。

具体厂家就不打广告了,随便搜都有,像是飞牛 NAS 这种提供的穿透服务,其实也差不多这个价格,自己买 Nat 小鸡部署穿透服务,你还获得个额外个 2c2g 的服务器,也可以顺便部署个 MC 游戏服玩玩。

对于 Tailscale,自己买个上面的 NAT 小鸡,部署个自建 Derper,各个终端下载个 Tailscale,对于 Linux 服务器,也是就一行命令的事。现在自建 Derper 也不要什么域名了,也不需要强制 80 端口,当然也就不需要什么备案了。
具体就下面几行代码就可以用docker部署一个derper:

services:  derper:    image: fredliang/derper    environment:      - DERP_DOMAIN=127.0.0.1 # replaced with your ip      - DERP_CERT_MODE=manual    network_mode: host    # 在tailscale后台添加配置 https://login.tailscale.com/admin/acls/file# "derpMap": {#   "OmitDefaultRegions": true,#   "Regions": {#     "900": {#       "RegionID":   900,#       "RegionCode": "custom",#       "RegionName": "custom",#       "Nodes": [#         {#           "Name":             "custom",#           "RegionID":         900,#           "HostName":         "your-ip",#           "CertName":         "your-can-find-this-content-in-derp-logs"#         },#       ],#     },#   },# },

具体见下面参考文件,我这就不赘述了。

这里就实现自己的内网互通了,实现真正的“家里云”平台;相对就我半个月的使用而言,也是非常的稳定的,也不会被运营商限制,毕竟我通过正经的机房中转的,运营商如果阻段机房的连接,可能会影响到真正的企业用户,引起投诉;现在也可以直接使用 immich 随时随地同步我手机的照片,观看家里的摄像头监控,不用通过萤石那满是广告的 App 。

Tailscale 毕竟只能自己使用,要是想把你的服务共享给朋友,也可以在小鸡上转发几个端口过去。我这里使用的是 rinetd 这个服务,直接 apt install rinetd 即可,然后修改 /etc/rinetd.conf, 例如我是下面的配置,把我的MC 服务器和 Immich 通过 NAT 小鸡穿透出去,就可以不需要 Tailscale 也能通过转发后的 IP 端口访问了。

0.0.0.0 29195 100.80.240.26 2283# 100.80.240.26 是tailscale的内网ip,因为小鸡也装了tailscale0.0.0.0 27310 100.64.158.94 191320.0.0.0 27310/udp 100.64.158.94 19132/udp

然后重启服务 service rinetd restart

ok,今天的分享就到这里,今天是除夕,提前祝大家新年快乐。

最近我的硬盘也坏了一块,SMART 提示有坏道,里面的数据我迁移到了另一块上面,最近硬盘很贵也舍不得换了,买了 8 年的 115 会员,合计 800,把不重要的数据都转移到了 115 上面,硬盘又空出来了很多空间;旧的硬盘我都带回了老家,想着可以用他们存一些可有可无的冷数据,反正有些坏道也不代表硬盘完全不可用。

然后给老家买了个小机柜,200 块钱也不是很贵,现在机柜里面还很空,只有录像机,交换机,光猫,还有一个小电脑,下次回家再给它美化下,加点新装备。

OK,后面再分享新的东西。

参考文章: