找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 13243|回复: 77

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

  [复制链接]
发表于 2025-1-10 21:04 | 显示全部楼层 |阅读模式
本帖最后由 evling 于 2025-1-11 10:03 编辑

第一篇快速将近期写的一个项目跑了起来,没怎么描述过多的细节,本篇做下补充。近期写的这个项目基于开源方案做了些许自动化处置,实现了无公网IPv4场景的大内网异地组网和发布家庭网的站点服务。标题中的零成本解释下,本方案涉及到域名可能会花点钱,有些免费域名也可以接入Cloudflare,其实完全可以做到不花钱的。
先梳理下当下的痛点及基础环境。组网方面,家庭为重庆移动宽带,有公网IPv6,无公网IPv4,曾经向运营商索要无果,针对IPv4场景,如公司的访客网仅支持ipv4,一度使用手头上的一台广州VPS中转,供手机在IPv4网络环境接入,国内的云服务器普遍管子特小,影响体验。而IPv6场景,则通过手机流量直连回家,稍微做下ddns,使用体验还能在接受方位内,虚拟隧道选的是wireguard。总体看下来,ipv4和ipv6回家链路不统一,不够优雅。然而,现在唯一的VPS不打算续期后,IPv4回家链路就没有了,急需解决办法,好在一直在关注p2p组网,正好有了此系列的折腾。
其次,家庭站点发布方面,之前采用 cloudflare zero atrust tunnel 发布站点,由于众所周知的跨境原因,网络经常不稳定,于是采用了Cloudflare反代模式,IPv6可以直接配置代理模式,而IPv4则通过打洞形式接入,回源重写端口达到优雅地免端口访问站点,顺便告诉大家一个消息,重庆移动的家宽443端口其实没有被封禁,不知道你们的家宽有没被封禁呢。这里顺便友情提示下,对公网暴露服务具有较大安全风险,如有需求,建议套一层雷池的WAF社区版,降低被攻破的概率。
我的家庭宽带是通过PVE下的OpenWRT进行直接拨号的,光猫改的桥接模式,曾经有段时间,我的IPv6经常不稳定,找了很久的原因,后来将网络模式由linux bridge改为openvswitch bridge 模式后基本稳定下来。担心哪天它又开始作妖,所以项目实现需要自动回退到IPv4模式,组网和发布站点都要能自动回退,也就是,即使我的网络环境没有ipv6公网IP,也能顺利异地组网和发布服务。
由于牵涉到大内网打洞,我们还希望简化网络结构,最好将打洞操作和组网服务捆绑在一块,出口网关作最小的操作,比如有些硬路由不支持软件扩展,但设置DMZ基础功能是具备的,避免让这些傻瓜路由来完成打洞操作,最终实现一键式编排。打洞能否成功,主要看你的真实网络类型,相关检测方法已在第一篇做了介绍,可跳转查看。



反代服务(headscale-traefik),用于反向代理多个web服务,有效减少打洞数量,每开放一个web服务就打一个洞极其不现实,同时接管tls证书自动签发,配合cloudflare和letencrypt。
服务端(headscale-server),开源的tailscale服务端版本,又叫协调服务器,负责wireguard节点的密钥交换、访问控制等。
服务端控制后台(headscale-ui),headscale的图形化控制,降低管理复杂度。
中继节点(headscale-derp),端到端打洞保底方案,且其本身就在境内,即使无法完成俩设备直连,回退到了中继方案,也能有很低的延迟。中继节点可同时开启DERP和STUN服务。
客户端(headscale-client),这个tailscale客户端主要充当两个角色,一个为接入家庭网的核心入口节点,一个为防止derp被白嫖的作用。
核心维护容器(headscale-worker),负责一些关键配置的初始化,tls证书同步,ipv4场景打洞并维持稳定,如存在ipv6,优先通过ipv6暴露web服务和stun服务,如ipv6地址掉了,能自动监测回退只ipv4环境,确保顺利组网且暴露服务功能正常。当打洞端口发生变化,ipv6地址发生变化,都会自动更新derp节点信息,确保headscale服务端能提供最新有效的中继信息。

项目实现上主要分两大板块,一是打洞,二是实时监测本地网络地址的变化,三是同步traefik的tls证书给derp。整体工作流如下,当检测到本地支持ipv6,优先通过ipv6暴露服务,ipv4方面本方案则采用的开源natter进行打洞,打洞的稳定性经一段时间测试还算比较稳定,对外仅需打洞暴露两个端口,一个traefik服务端口和stun服务端口,traefik后需接入cloudflare反代,从而实现面向公网暴露。

接下来看看我的项目实现。近期我对项目已做了一版更新,相对更加友好和人性化。赶快尝试体验吧!

免费获取资料:
游客,如果您要查看本帖隐藏内容请回复


  1. # 替换.env里相应的变量,替换获取到的cloudflare token到文件secrets/cf_api_token里边
  2. chmod 0600 certs/acme.json
  3. docker compose up -d
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
发表于 2025-12-3 18:51 | 显示全部楼层
看起来好麻烦
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-12-3 17:16 | 显示全部楼层
关注,研究一下。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-11-23 01:14 | 显示全部楼层
看看
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-11-19 21:05 | 显示全部楼层
ipv4环境
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-11-4 13:43 | 显示全部楼层
一直在关注,研究一下。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-10-28 01:20 | 显示全部楼层
好!收藏了慢慢研究
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-10-26 21:56 | 显示全部楼层
楼主6666666666
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-10-11 23:11 | 显示全部楼层
感谢分享
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-9-8 20:31 来自手机 | 显示全部楼层
感谢分享
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-9-6 15:13 | 显示全部楼层

谢谢分享
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-9-6 10:56 | 显示全部楼层
研究一下
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-9-5 15:54 | 显示全部楼层
很牛逼,看不懂
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-9-5 15:17 | 显示全部楼层
支持一下,感谢大佬
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2025-9-5 14:41 | 显示全部楼层
支持一下老乡,感谢分享
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-12-5 11:46

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表