V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
SLboat
V2EX  ›  NAS

梅林固件 + IOS, 自制程序实现群晖 NAS 的指定 IP 访问.

  •  
  •   SLboat · 2019-12-21 18:41:56 +08:00 · 6774 次点击
    这是一个创建于 1784 天前的主题,其中的信息可能已经有所发展或是发生改变。

    群晖可以访问公网当然很方便,但很多时候并不需要这样做,只是临时的访问资料,所以一直在琢磨怎么可以实现有选择性的对特定 IP 开放访问.

    最初使用的方案是梅林固件+entware,安装了 knockd 敲门插件,指定若干个端口开门,开门程序是用 IOS 自己写的,这个方案还不错,只是互动性很差.

    后来了解到阿里云有物联网协议,可以一直在线,1 元 100 万分钟应该可以跑一年多了,于是全部重写了路由器端代码用 Python+aliyun iot SDK,实现响应.而客户端则是 IOS+aliyun iot SDK,这样一个操作逻辑.

    后来添加了一些小功能,比如路由器问题,启动时间什么的,全当是增加点色彩.

    核心的思路是:

    • 每个 IP 可以临时访问一段时间,就不用自己关闭了.
    • 如果笔记本要连群晖,手机暂时连入同一个网络后打开门就好了.
    • 如果两台设备同时连的话,在服务器里设置了两个门,在梅林里的实现是两个端口指向同一个 IP 和本地的.
    • 路由器本身不参与任何的外网访问过程,也本身不作为服务器,理论上也可以路由器自己做 web 服务器,但是衡量了下,那样就又是暴露公网的危险了,所以阿里云物联网完好的作为中间人参与了.
    • DDNS 还是作为 IP 寻找的路径,实际上如果洗白了群晖的话,不用 DDNS,用 QC 的 ID 也可以同样找到 IP 的,这里如果想去掉也可以去掉.

    所以本质就是,路由器在看守,给必要访问的 IP 放行一些时间,这样应该不管哪方面都不算是开放 Web 服务器对外访问了...

    手机端界面:

    V2EX 不能插入图片,我贴在知乎吧:

    https://zhuanlan.zhihu.com/p/98670119

    5 条回复    2019-12-24 15:10:25 +08:00
    Buges
        1
    Buges  
       2019-12-21 18:53:17 +08:00 via Android
    你是为了安全还是防查封 Web ?
    路由器上暴露 ssh,然后通过脚本操作防火墙就能达到这种效果了。
    当然,只为了安全的话,我用 basicauth
    SLboat
        2
    SLboat  
    OP
       2019-12-21 19:51:16 +08:00
    @Buges 开放 ssh,就显得太麻烦了...
    linbenyi
        3
    linbenyi  
       2019-12-23 09:51:00 +08:00 via iPad
    高手哇。于是为了传文件给朋友。要发 ios 程序给他了。
    SLboat
        4
    SLboat  
    OP
       2019-12-23 10:47:40 +08:00
    @linbenyi 如果真有这样的需要,让它把 IP 发给你,你给它开门也可以的.但对于公网严格的地区,有些牺牲似乎是必然的.
    linbenyi
        5
    linbenyi  
       2019-12-24 15:10:25 +08:00 via iPad
    能完成网页端的比较好。放到虚拟主机上。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:15 · PVG 05:15 · LAX 13:15 · JFK 16:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.