把设备移到家里,需要重新弄一个宽带,折腾了小一星期,也算是能满足了一些远程、Web服务的需求,做个汇总,兴许能有些参考价值。
省流总结:
- 联系移动宽带人员,询问折扣,小城市8元保号套餐都能免费装200M宽带
- 光猫桥接路由器拨号后把防火墙一关,公网IP就暴露了,不要偷懒用UPnP直接映射端口裸奔,定时重启路由器,再装个lucky做动态域名+反代
- 等待大佬补充
宽带选择
虽说南电信北联通,但我电话了解了一下最近这几年运营商已经不再提供公网IPv4地址给家庭宽带,所以还是选择办理移动的家庭套餐。
刚好有张家里的移动卡一直是8元保号套餐,直接升级了129元/月的套餐,师傅说前两年打折,只需要69元每月,然后再加上200元光猫、安装费,就搞定了。
家庭套餐挺不错的,带500分钟通话、通用流量30GB,还可以给家人的移动号绑定副卡套餐:10元/月,三个人每月一共89元。
路由拨号
师傅上门装宽带的时候就直接让他改了桥接,路由直接拨号上网,然后公网ipv6就到手了。我的主路由是红米AX6000,直接后台打开ipv6,选择Native,关闭防火墙,打开UPnP
开启ipv6
访问测试地址: https://ch.test-ipv6.com/ 和 http://test6.ustc.edu.cn/
PC 和 NAS 都没有打开ipv6
PC
- PC的去网络适配器属性里开启ipv6
- win + R,输入
ncpa.cpl
,跳转控制面板的网络连接 - 右键网络适配器,点击属性,勾选v6协议
NAS黑群晖
- 群晖默认关闭IPv6: https://zhuanlan.zhihu.com/p/663789339
- 以DSM 7.2.1为例,开启教程:
- 请进入控制面板 > 网络 > 网络界面。
- 选择一个现有网络接口(如 局域网1),并右键单击编辑。
- 在 IPv6 选项卡下,从 IPv6 设置中选择一种设置类型:
自动:Synology NAS 会根据 LAN 路由器通告 (RA) 自动生成 IPv6 地址。
手动:输入 IPv6 地址、前缀长度和默认网关等信息来手动设置 IPv6。
配置DNS
看测试结果,发现运营商 DNS 没有接入 IPv6
解决方案:去路由器或设备里手动配置DNS,使用阿里公共DNS https://www.alidns.com/knowledge?type=SETTING_DOCS
- IPv4——选择使用指定的DNS,在DNS服务器地址中输入223.5.5.5 和 223.6.6.6,输入后确定退出即设置完成。
- IPv6——选择使用指定的DNS,在DNS服务器地址中输入2400:3200::1 和 2400:3200:baba::1,输入后确定退出即设置完成。
Zerotier
我在云服务器上自建了Zerotier的中转站,之前都是靠它来组网的。
但是发现Zerotier 的 ipv4认证地址被移动ban了,群晖按照教程启动后会一直显示未连接:
docker exec -it zt zerotier-cli status
200 info ****** 1.14.0 OFFLINE
查看贴吧发现问题的原因貌似是zerotier被运营商封了?!而且好像每年都会有一段时间出现这样的情况
解决方法为:打开计算机的IPV6协议,并切换到IPV6网络,在IPV6网络下使用zerotier
https://blog.csdn.net/qq_61683908/article/details/132395184
Zerotier是跑在docker上的,我还没折腾明白怎么玩ipv6,所以设备开启ipv6后可以连上了,但是显示中继
- 重新查看zerotier-cli状态,已经online了
群晖配置Zerotier官方教程:Synology | ZeroTier Documentation
第三方教程:https://imnks.com/3175.html
Lucky大吉
路由器直接域名裸奔实在太危险,而且我也记不住ipv6的地址,肯定考虑DDNS+cloudflare,直接在设备上弄就很麻烦,所以直接在路由器上做是最好的。
感谢作者制作的插件:https://lucky666.cn/
装插件也很简单,不需要刷系统,只需要给AX6000开放SSH就行,不影响米家的使用: https://www.right.com.cn/forum/thread-8253125-1-1.html
然后直接去SSH终端安装lucky即可,不影响任何功能:
配置功能也很简单,直接去看作者列出的 网友教程/经验分享 即可:网友教程/经验分享 | Lucky
下面几个功能是我非常需要的
- 端口转发
- 动态域名(DDNS)
- Web服务
- ACME自动证书
动态域名:泛解析
我买有10年的域名,在cloudflare上解析,只需要在lucky上拿着CF的token就能搞定
配置一下WebHook,我用的是自己在cloudflare反代的tg bot:
请求体:
{
"chat_id": "",
"text": {
"Device": "Lucky",
"ipv6": {
"time": "#{time}",
"addr": "#{ipAddr}",
"domains": "#{failedDomains} --> #{successDomains}",
"Success domainsLine": "#{successDomainsLine}",
"failed domainsLine": "#{failedDomainsLine}"
}
}
}
SSL证书
在lucky的安全管理里面就提供了自动在Let’s Encrypt给域名续签证书的服务,非常方便,因为是泛解析,所以我这个域名所有的地址都带上了证书:
远程串流:sunshine + moonlight
软件安装没有什么难度,随便搜视频找到下载地址就行,
然后在PC的sunshine设置中: config - Network :
- UPnP:启用
- IP 地址族:IPv4+IPv6
在Lucky中使用端口转发,将sunshine需要用到的端口对齐一下,我建议不要开放web UI的端口
Web服务
这个是重点,我这边NAS和PC都有端口需要开放访问,如果直接http那实在是太危险,所以通过反代的形式,一个端口对应一个设备,一个前缀对应一种服务,都走HTTPS,非常优雅:
暂时应该是这样,如果有更多好玩的,或者可以改进的地方,欢迎指正和补充