← 返回 TimeAmber set 限制解除

NAS党福音:近乎零成本优雅地实现家庭网络异地组网(一)

易雾君 易雾山庄 2024年11月24日 08:30

家庭移动宽带无公网IPv4,但经过一顿检测发现为NAT1型,有望实现大内网穿透,规划方案:Tailscale(客户端)+Headscale(服务端)+Derp(中继)+Cloudflare(Origin rules,DDNS)+IPv6+natter(开源打洞工具)

在家庭内网准备一台Linux虚拟机,做好网络隔离,设置DMZ。

打洞检测

docker run --net=host --rm nattertool/natter

如果打洞成功,则可以访问公网端口打开测试页面。

如果打洞失败,将服务器的入站默认策略改为允许,先验证是否能够打洞,才有必要往下开展工作。

CloudFlare API Key获取

  • 登录 CloudFlare

  • 进入 https://dash.cloudflare.com/profile/api-tokens

  • 点击 Create Token → Create Custom Token  ,选择如下三项权限

图片

克隆项目

git clone https://github.com/evling2020/hsmaker.git

替换.env域名下的域名为你自己的,修改邮箱为你自己的

粘贴上边的cloudflare token到secrets/cf_api_token

拉起容器

docker compose up -d

多等会,traefik反代需要获取tls证书需要点时间

功能

  • 支持双栈自动切换,最大程度保障回家链路稳定性,确保各种环境下都能顺利接入

  • 自动更新打洞IP和端口信息

  • Headscale 和Derp证书统一由traefik反代接管,减少打洞端口数量

  • 自动同步traefik生成的证书给derp使用

  • 自动监测ipv6地址变化,并同步更新

  • ipv6防火墙仅开放derp端口和stun端口


项目中以集成了一个客户端,接入指令,建议关闭防火墙操作策略,自行配置比较好,我个人比较信奉内网能路由尽量路由,别搞什么原地址转化,不利于审查和网络策略管控。

示例:

tailscale up --reset --accept-dns=false --accept-routes --login-server=https://hs.evling.tech --advertise-exit-node --advertise-routes=10.32.0.0/16,10.8.0.0/16,172.16.0.0/16 --netfilter-mode=off
这个节点作为家里的入口枢纽。

其他终端接入参考网上各路教程即可。

在客户端进行网络验证,发现ipv4和ipv6均正常。

图片

worker容器日志查看,未发现报错异常。

图片

家庭基建 · 目录
上一篇一个入门级家庭机柜是如何组建的下一篇NAS党福音:近乎零成本优雅地实现家庭网络异地组网(二)
个人观点,仅供参考

微信扫一扫
关注该公众号