V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bzkmsjy
V2EX  ›  宽带症候群

旁路由+IPV6+DDNS,纯小白折腾邪道的经验分享

  •  
  •   bzkmsjy · 66 天前 · 1247 次点击
    这是一个创建于 66 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为当年买了个 TP 的 AC 一体机,不支持纯 AC 模式,必须拿它当主路由(主要是 DHCP )才能拥有完整的 AP 漫游功能,所以我的家庭环境绑定了只能旁路由。旁路由 IPV6 属于是无人问津的邪道,没什么作业可以抄,本人也就是个零基础小白,完全是瞎折腾搞出来的经验。

    IPV6 的好处,公网访问和 BT 下载,缺点就是油管奈飞看不了,GPT 抽风,至少我没碰到别的问题。

    最开始的想法是用 DHCPv6,因为安卓苹果都不支持,用这个模式等于在主力的移动设备上禁用了 IPV6 。需要 BT 下载和公网访问的 NAS 就正常用 IPV6 。 但是这个模式问题很大,频繁出现不走旁路由的设备无法上网的问题。猜测可能是我 DHCPv6 地址租期设置了 2880 分钟,客户端租期不到就不会主动重新申请地址,上游运营商网关/DNS 改变了(可能 1 天变一次?)下游就会有网络故障,但是租期设置短了 DDNS 生效又要花时间,这个模式总归会出问题。我是建议绝对不要用,无论是 WAN 口获取运营商地址还是 LAN 口都用 SLAAC 。内网 DHCP 方式我选的 RDNSS 。

    好了,用 SLAAC+RDNSS ,给旁路由和 NAS 分配好了公网 IPV6 ,先解决 DDNS 问题,手机电脑先放一边。

    旁路由建议不用服务里那个动态 DNS 或者更有名的 DDNS-GO ,而是用 Lucky 大吉这个服务,把各种服务都打包了,一步到位实现 DDNS 和端口转发,这玩意懂得都懂,但是我真的刷了五六个教程视频才看到有人提这个。

    我用的是 iStoreOS ,设置旁路由模式的时候有个启动 LAN 口的 DHCPv6 客户端,勾上就行。接口里会多一个 lan6 ,没有设置其他东西,DNS 相关设置保持不动。

    然而 Lucky 默认的获取 IPV6 地址的接口对于 LAN 口貌似无效,使用第二个从设备获取的方式只能获取 br-lan ,br-lan 上的是个内网地址,这也不行,所以这里请出万能的 GPT 给了个脚本,使用第三种脚本方式成功获取到了公网 IPV6 地址。

    ubus call network.interface.lan6 status | jsonfilter -e '@["ipv6-address"][0].address'

    话说我在腾讯云上弄 DNS 解析只做了两件事,买域名和生成 token ,除此之外啥都不用填,折腾之前看了几个 DDNS 教程都挺麻烦的,要在云服务商网站上设置一些东西,没想到完全不用。价格也挺便宜的,一年 5 元,阿里云我注册了没看到个人用户有什么优惠,企业用户最低也要十多块一年。

    接下来是内网服务映射到公网,因为咱用的是旁路由,连接公网的是 LAN 口,像是 alist 自带的允许公网访问的开关是完全没用的,它只会对 WAN 口设置防火墙规则,这里就直接用 Lucky 的端口转发,把内网的地址和端口转发到公网的监听端口。

    路由器管理页面就是路由器 IP+端口 80 ,Samba 服务器端口都是 445 ,不过 alist 上手后就抛弃了,直接 Webdav 走起。

    用了几天又发现问题,经常睡一晚起来连不上域名,查看旁路由 lan6 接口有两个 IPV6 地址,查看主路由 PPPoE 连接时长发现有时候凌晨 1 点会重新拨号。猜测是运营商定时断开连接重新下发地址,然后 lan6 拿到了新地址,老的地址却没有释放。所以又问了 GPT 老师要个了定时重启 lan6 接口的计划任务。每天 2 点重置一下 lan6 ,这样到了白天都能稳定连上域名了。

    0 2 * * * ifdown lan6 && sleep 5 && ifup lan6

    最后处理下内网不需要 IPV6 的设备如何屏蔽。 Win 电脑可以去控制面板里禁用对应网卡的 IPV6 协议,这个很简单,不过多介绍。 Mac 可以自定义 IPV6 ,设置仅本地连接。 iOS 可以自定义 DNS 删掉 IPV6 的 DNS 。 Shield TV 直接自带选项可以禁用 IPV6 ,怎么不普及到其他安卓? 最麻烦的就是安卓手机/平板,手机上本来就要用个 Clash 之类的客户端,覆写设置里启用 IPV6 油管奈飞也可以看,就是会转一下圈,不知道是不是从 V6 回落到 V4 导致的延迟。 如果是 root 的设备,可以用下面这个 Shell ,用 Xposed Edge Pro 或 Tasker 设置开机或者连上 WIFI 自动执行。 sysctl -w net.ipv6.conf.wlan0.accept_ra=0 sysctl -w net.ipv6.conf.all.disable_ipv6=1 但是 root 的设备除了小米和联想都会掉 DRM 等级,看奈飞不合适。要看奈飞还是得用客户端 FQ 。

    目前已经稳定使用半个月,BT 下载连 IPV6 很快,外网访问 NAS 稳定,油管奈飞 GPT 均正常使用。

    10 条回复    2024-11-27 10:14:52 +08:00
    dalaoshu25
        1
    dalaoshu25  
       66 天前   ❤️ 1
    很辛苦,但是没啥意思,一台 RouterOS 路由器,比如 hAP-AX3, 搭配一个境外 VPS 即可,不知道你们从哪里学来的什么“旁路由”技术,迭床架屋,没有困难自己创造困难。
    bzkmsjy
        2
    bzkmsjy  
    OP
       66 天前
    @dalaoshu25 哈哈,你越是嘲讽我越感觉自己折腾这些值得,多亏了大佬们不屑走旁路由这条路,我这种外行才有了发挥的机会,想当初我刚买 R2S 那会儿当主路由折腾搞得家里人怨声载道的,改旁路由后清净了不少,我相信会有人需要这些经验的。
    guiys
        3
    guiys  
       65 天前 via iPhone
    openwrt 里的 ddns 可以通过一个 url 获取当前的公网 ipv6 地址,而不是直接从网卡拿,这样可以解决重播换前缀的问题。不知道 istoreos 有没有。
    bzkmsjy
        4
    bzkmsjy  
    OP
       65 天前
    @guiys 就是方案一从接口获取啊,是一个 url ,但是不知道为什么旁路由获取不到
    bbsingao
        5
    bbsingao  
       65 天前
    我之前试过用 openwrt 做旁路由, 但是客户端设备的 ipv6 都是直接访问主路由.
    也就是如果使用 ipv6,那么客户端设备就无法用上旁路由上的各种服务(除非手动修改客户端设备的 ipv6 路由). 楼主可以解决这个问题吗?
    bzkmsjy
        6
    bzkmsjy  
    OP
       64 天前
    @bbsingao 不知道你说的是什么服务,我旁路由上的 alist 、aria2 、docker 服务在局域网下都可以正常访问,我直接就用的域名+映射的端口访问,连局域网 IP 都不用,如果是要旁路由代理 IPV6 流量的话确实不懂,一般当主路由用的也是过滤 AAAA 解析的吧,除了 BT 下砸 u 和公网访问我也没有别的使用场景。
    gunner168
        7
    gunner168  
       31 天前
    ubus call network.interface.lan6 status | jsonfilter -e '@["ipv6-address"][0].address',如果外网 ip6 地址不在第一行,这个命令就没用,我是 lan6 里还有好几个内网的 ip4 地址,而且外网的地址位置是随机的,可能这次在第一行,重启后就变成在第二行,不知道还有什么方法能精准提取吗?
    bzkmsjy
        8
    bzkmsjy  
    OP
       30 天前
    @gunner168 是的,我用原版 openwrt 也是这样,istoreos 就只有一行,你可以试试 istoreos 的旁路由模式,另外第一个获取方式其实是可以用的,我发现了失败原因是因为用了 openclash ,默认是不代理 ipv6 流量的,所以一 fq 就没 ipv6 ,打开 ipv6 代理或者让 clash 不代理路由器本机流量应该就能用第一种获取方式了(但是好像有什么问题,具体是啥我忘了,所以还在用 istoreos )
    gunner168
        9
    gunner168  
       30 天前 via iPhone
    @bzkmsjy 我是开了 openclash ,现在是 ip6 ddns 正常,局域网用域名可以访问,外网就不行,是因为 clash 的原因吗?
    bzkmsjy
        10
    bzkmsjy  
    OP
       29 天前
    @gunner168 外网直接用 ipv6 地址 ping 一下是否通,通的话就等运营商 dns 缓存更新,ping 不通就是没设置好,地址不对或者防火墙问题,clash 不会导致外部访问问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5500 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 08:24 · PVG 16:24 · LAX 00:24 · JFK 03:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.