基于群晖和IPv6的简陋外网访问方式

2023-12-28 16:48:11 2点赞 28收藏 11评论

小朋友换学校,迁网络,同时也失去了公网IPv4。

IPv6折腾好了(本篇不赘述),就是DDNS比较麻烦。

对于绝大多数人来说,内网每台设备的IPv6有了,端口也是原端口(非拨号路由器上的映射),记住每台设备的短地址(后缀),如果再能获知前缀地址,基于TCP/IP的应用就都可以玩了。

家用网络设备上的DDNS并非不支持IPv6,比如华硕路由,在外网ping xxx.asuscomm.com,获得的是路由器的完整IPv6(这个地址对于我们访问内网的其他设备没有帮助);而群晖,ping xxx.synology.me,获得的是[前缀::后缀]形式的地址。

基于群晖和IPv6的简陋外网访问方式

但在浏览器或一些客户端应用上,优先解析的是IPv4,https://xxx.synology.me:5001是无法访问的,只能手动填写https://[前缀::后缀]:5001的形式,当然这样访问,证书肯定是无法验证的。

基于群晖和IPv6的简陋外网访问方式

其实每次获取IPv6,也不用先打开命令行ping群晖,再复制前缀地址,然后拼接URL,可以用脚本来实现,下面是AutoIt3的。


#include <AutoItConstants.au3>

#include <String.au3>

#include <Process.au3>

Local $sOutput = ""

Local $iPID = Run(@ComSpec & " /c " & "ping xxx.synology.me | findstr [.*]", "", @SW_HIDE, $STDOUT_CHILD)

While 1

$sOutput &= StdoutRead($iPID)

If @error Then ExitLoop

WEnd

Local $IPv6 = StringSplit($sOutput,"[]")

Local $sURL="start firefox https://[" & $IPv6[2] & "]:5001"

_RunDOS($sURL)


或者cmd/bat批处理更简单

@echo off

for /f "tokens=2 delims=[]" %%i in ('ping xxx.synology.me ^| findstr [.*]') do (

start firefox https://[%%i]:5001

)


如果应用本身不支持IPv6那就没办法了,比如目前没搞定Seafile的Windows客户端。

手机上我用笨办法Ping & Net应用获取IPv6,DS file能勉强用。

以上方法过于简陋,DS Photo等需要保持同步的应用,你们还是投奔Lucky或ddns-go吧。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
11评论

  • 精彩
  • 最新
  • 楼上说的对。实在不行撸个免费的。

    校验提示文案

    提交
    其实我有namesilo上的域名,今年已经涨到$13/年了

    校验提示文案

    提交
    直接申请eu.org的顶级终身免费域名,转dnspod解析,都免,为啥还要给钱??只是首次申请要等一阵,我等了一个月,不管v6 V4都通吃,自己定义2级域名就行了。

    校验提示文案

    提交
    收起所有回复
  • 阿里域名8块一年 何必那么折腾

    校验提示文案

    提交
    是第一年8元还是每年8元

    校验提示文案

    提交
    我去年双十一的时候去腾讯云上买了个10年域名,175元,应该还算可以接受吧

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 这些方法都用过,但是只有内网可以访问,用手机网络没法访问,怀疑现在移动的ipv6是做了某些屏蔽

    校验提示文案

    提交
  • 群晖加ipv6 一定要注意端口安全

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
28
扫一下,分享更方便,购买更轻松