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

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

打洞检测

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

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

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

CloudFlare API Key 获取

a

免费领取源码:公众号 易雾山庄 后台回复消息 领取 headscale

替换.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 均正常。

b

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

c

举报· 105 次点击
登录 注册 站外分享
快来抢沙发
0 条回复  
返回顶部