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

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

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

是否有相对较好用的『P2P 私人网盘』可供搭建?

  •  
  •   MFWT · 2023-05-24 09:06:27 +08:00 · 5435 次点击
    这是一个创建于 544 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    一台旧电脑,安装了 Debian 11 做 NAS ,上面有 SMB 和 WebDAV 服务,也有 Alist 文件面板,也有 Zerotier (但未开启)
    家宽是中国移不动,有 FullCone ,可以 TCP 打洞(之前玩 PT 就是这么干的)

    现状

    用 Zerotier 做 P2P-VPN ,是可行的,也可以做到访问内网的目的,但是需要多开软件,总感觉不是很方便
    也查看过Syncthing这个东西,感觉『同步文件夹』这种工作方式不是很适合我的需求,我就是想要一个可以普普通通地上传下载文件的东西,就够了

    换句话说,我现在需要一个类似群晖 QuickConnect 的东西,具体来说就是:

    1. 有公网就直连,有 Cone-NAT 就打洞直连,实在不行再中转
    2. 连上以后,可以直接在软件里面管理 NAS 上的磁盘文件
    3. 最好可以自建中转端(类似 Zerotier 的 Moon 服务器)
    4. 多客户端( Windows ,Android )支持
    5. 如果有 IPv6 ,优先使用 IPv6 ( v6 是公网)

    能满足这些要求的 P2P 网盘软件,v 友们有无好的推荐?

    附:或者说,是否有成品的『支持同时上报端口的 DDNS 软件』(没有的话我只能自己搞了,比如写个 PHP 脚本,收到打洞软件的 Hook 就把端口写入 txt 文件什么的),这样我就可以用 v4-TCP 打洞的方式直连回家了

    48 条回复    2023-07-02 16:52:02 +08:00
    leorealman
        1
    leorealman  
       2023-05-24 09:20:40 +08:00
    owncloud
    MeteorVIP
        2
    MeteorVIP  
       2023-05-24 09:22:59 +08:00 via iPhone   ❤️ 1
    FTP ,哈哈哈,
    Linken404
        3
    Linken404  
       2023-05-24 09:29:49 +08:00
    自带 DDNS 的网盘类或文件管理类应用好像没听说过,你用 Debian 并且本地网络环境还可以用 ddns 的话,直接参考这个 https://github.com/NewFuture/DDNS 把 ddns 的脚本放服务器上自动执行就行了吧
    多客户端跟群晖最像的是 nextcloud ,可以用它替代 NAS 自带的文件管理器,基本功能感觉还算全
    MFWT
        4
    MFWT  
    OP
       2023-05-24 09:40:25 +08:00
    @Linken404 其实并不能 DDNS ,因为我没有公网,只能用 NAT 打洞的方式实现直连
    gogogo2000
        5
    gogogo2000  
       2023-05-24 09:46:36 +08:00
    群晖可以做到你说的那几点是因为群晖官方有 qc 服务端,负责和 nas 进行协商和打洞,说白了还是要部署一套系统在公网的,纯 p2p 网盘没有服务端的没有听说过……
    Linken404
        6
    Linken404  
       2023-05-24 09:47:42 +08:00
    @MFWT 那如果要使用体验轻便,我目前能想到的最理想的就是 frp 内网穿透或者干脆买个白群晖……当然前者要稳定安全还需要自己弄个有公网 IP 的 vps ,并且群晖的 quickconnect 也挺慢的,可能还没 frp 快呢
    MFWT
        7
    MFWT  
    OP
       2023-05-24 09:53:06 +08:00
    @gogogo2000 公网搭建没有问题,我有大把 VPS 可以做握手 /中转服务器,当然如果说是可以直接 P2P 那最好了
    BeautifulSoap
        8
    BeautifulSoap  
       2023-05-24 09:53:28 +08:00 via Android
    难以理解什么叫 P2P 网盘
    SenLief
        9
    SenLief  
       2023-05-24 09:55:06 +08:00 via iPhone
    你需要的可能不是 p2p 网盘,而是 p2p 同步工具
    MFWT
        10
    MFWT  
    OP
       2023-05-24 09:55:43 +08:00
    @Linken404 公网 VPS 有(双栈网络),但是在香港,所以担心 FRP 之类的软件长连接会不会导致服务器被墙
    MFWT
        11
    MFWT  
    OP
       2023-05-24 09:56:11 +08:00
    @SenLief 我提到过了,Syncthing 之类的 P2P 同步工具的工作模式不合我要求
    MFWT
        12
    MFWT  
    OP
       2023-05-24 09:58:02 +08:00
    @BeautifulSoap

    就是用我在家宽后面的 NAS 做服务端,我出门在外可以直接通过 P2P 的方式(比如,我的条件下就是,FullCone 打洞穿透 NAT )进行访问

    允许再加一台公网服务器,但是优先用于打洞握手,实在不行再用来做中转
    Ericality
        13
    Ericality  
       2023-05-24 10:01:19 +08:00
    你都说了 类似于群晖 那直接买个百元过时白裙不就完了?
    (性能无所谓 就当买序列号了 然后套到群晖虚拟机)
    lambdaq
        14
    lambdaq  
       2023-05-24 10:01:24 +08:00
    FTP

    FXP 哈哈
    root01
        15
    root01  
       2023-05-24 10:06:58 +08:00
    Zerotier 做 P2P-VPN 求教程
    gogogo2000
        16
    gogogo2000  
       2023-05-24 10:07:56 +08:00
    如果要打洞,那么必然是需要本地客户端支持的,要不就是客户端软件,要不就是浏览器 webrtc 。

    如果是客户端软件的,那就违反了你要求的第一条“但是需要多开软件,总感觉不是很方便”,如果使用浏览器的,你已经提出了群晖 qc 可以做到了……
    conglovely
        17
    conglovely  
       2023-05-24 10:09:02 +08:00
    看样子群晖能满足啊,有公网 IP 的直接 DDNS 连回家,没有的打个洞
    gogogo2000
        18
    gogogo2000  
       2023-05-24 10:09:43 +08:00
    如果只是想要做到文件的访问,首先 qc 可以做到。其次你可以用 snapdrop ,instant.io 等 p2p 文件传输工具进行改造
    BeautifulSoap
        19
    BeautifulSoap  
       2023-05-24 10:10:37 +08:00
    @MFWT 那你这根本没必要加个 p2p ,你这就是就是普通中心化网盘 /文件管理。任何一个能直接管理文件目录的服务 /网盘都满足你的需求。
    samba ,ftp/sftp ,wedav 都是,如果想要网盘的话选择更多了
    Linken404
        20
    Linken404  
       2023-05-24 10:18:41 +08:00
    @MFWT 只做 frp 应该问题不大,我倒是没听说过只因为这个就被封的。另外 13 楼说的感觉也是个不错的点子,你可以弄个 2 手过时白群晖回来,用它的 qc 然后在控制面板里面设置一个反向代理,这样就可以在外面用 qc 的链接直接访问你家里的其他设备页面了,群晖只做一个反向代理工具蹭官方的 qc 服务。
    Gitss
        21
    Gitss  
       2023-05-24 10:50:31 +08:00 via Android
    你好 OP 合适您的 p2p 网盘我也研究过,第一个为 resilio 全平台 linux 苹果安卓都有客户端高级功能可以搜索网上秘钥激活,第二个为微力同步,速度好,iov6 支持不错。但是要付费 90 多永久。全平台,他们都有一个功能按需同步可以来实现您的网盘功能,同步的客户端越多速度越快。
    Gitss
        22
    Gitss  
       2023-05-24 10:52:39 +08:00 via Android
    第一个速度不咋滴感觉不稳定,第二个稳定需要付费,交互界面没第一个好,都可以在 linux 下安装,你都安装 debian 了,应该没问题
    hing
        23
    hing  
       2023-05-24 11:38:29 +08:00
    袋鼠存储,不知道符不符合,当然是旧版,新版改名叫红袋鼠了
    lithiumii
        24
    lithiumii  
       2023-05-24 11:40:31 +08:00 via Android
    你都有 zt 了直接用 samba 呗
    IDAEngine
        25
    IDAEngine  
       2023-05-24 12:58:11 +08:00
    rsync 老版本,很好用
    IDAEngine
        26
    IDAEngine  
       2023-05-24 12:58:36 +08:00   ❤️ 1
    @IDAEngine btsync ,说错了,走 DHT 网络
    MFWT
        27
    MFWT  
    OP
       2023-05-24 13:42:04 +08:00
    @Ericality 主要是我现在 NAS 还算够用,而且六盘位白裙也贵啊
    MFWT
        28
    MFWT  
    OP
       2023-05-24 13:42:36 +08:00
    @root01 网上教程很多啊,而且这是最基本的操作了
    MFWT
        29
    MFWT  
    OP
       2023-05-24 13:43:12 +08:00
    @gogogo2000 不,我是 FullCone 网络,可以做到无客户端打洞(服务端打出来就行了)
    MFWT
        30
    MFWT  
    OP
       2023-05-24 13:44:34 +08:00
    @BeautifulSoap 但是我的文件服务器在 NAT 之后(家宽的),SMB 之类的怎么直连呢
    BeautifulSoap
        31
    BeautifulSoap  
       2023-05-24 14:36:01 +08:00   ❤️ 1
    @MFWT
    1. 我感觉你的思考非常矛盾,你既然都说你的 NAT 类型是 Full Cone 了,都能无客户端打洞了,那么你不就能在任何地方直连你家 NAS 的服务了?
    2. 你都能用 Zerotier 了,开个 Zerotier 不就行了?我知道你嫌开个软件麻烦,但是对于组网、NAT 穿透来说,只要你想以点对点的形式连接并且没有固定公网 ip ,你无论如何都必须要在通信两端以某种形式运行一个程序(即便你的 NAT 类型是 Full Cone ),因为你不运行某种形式的程序,你的服务器就不知道你客户端的 ip 和端口,你的客户端也不知道你服务器的 ip 和端口。那么问题来了,你这情况最适合 rsync/synthing ,因为这两者是去中心化文件同步工具且自带内网穿透。但你又不喜欢这两种,那么你就只能选中心化的网盘了,但可惜目前根本没有这种功能的中心化网盘。所以你到头来还是必须要运行组网工具
    ohmyself
        32
    ohmyself  
       2023-05-24 15:57:32 +08:00   ❤️ 1
    用你翻的工具,比如 clash 或者任何一个工具,在内网上跑一个 ss ,然后 v6 公网连回来,clash 添加一个内网 ss 节点,然后规则里设置内网 IP 走这个节点。这样你在外面就跟在家一样操作内网设备了。
    MFWT
        33
    MFWT  
    OP
       2023-05-24 16:25:05 +08:00 via Android
    @BeautifulSoap

    并不矛盾

    1.FullCone 可以无客户端打洞,这是真的,但并非全无代价(最主要的就是,外网端口会变动,因此我需要某种方式来获取最新的可用端口)

    2.Zerotier 可用,这不错,但是问题是 zerotier 本身并不具备有文件管理等功能,他就是个组网工具,因此我需要一个别的程序(比如浏览器)来访问我的文件系统。而我的目标需求就是,寻找一个多客户端可用的网盘系统,这个系统自带打洞和中转回落等功能

    3.syncthing 据说 P2P 传输效果不错,但是我并不是要『文件同步』,因为我不想在不同客户端上都拥有一模一样的一个文件 /文件夹,我只需要上传下载指定的一个或者数个文件,就可以了
    MFWT
        34
    MFWT  
    OP
       2023-05-24 16:26:51 +08:00 via Android
    @ohmyself

    你说的方法我也试过,还是类似于 VPN 的方式,确实 v6 可以用,但是我的目标还是 v4 连接性,所以也不太适合
    BeautifulSoap
        35
    BeautifulSoap  
       2023-05-24 17:56:35 +08:00
    @MFWT
    我寻思你自己不都已经得出结论了 “最主要的就是,外网端口会变动,因此我需要某种方式来获取最新的可用端口” 。为了获取这种信息,你必须要在服务器和客户端那同时运行一个程序。在这里 Zerotier 就是负责这个工作的,同样 synthing ,rasync 这些软件也有这种功能。
    > 而我的目标需求就是,寻找一个多客户端可用的网盘系统,这个系统自带打洞和中转回落等功能
    我搜了一圈,没有找到符合你这种要求可以内网穿透的中心化网盘。所以你只能选择运行 app 先组网,然后通过内部网络访问 nas 。
    jeesk
        36
    jeesk  
       2023-05-24 18:25:54 +08:00
    不能 ddns 直接绑定 zerotier 的虚拟 ip 即可.
    Mythologyli
        37
    Mythologyli  
       2023-05-24 18:40:26 +08:00 via Android
    alist 有 webdav driver ,在公网部署 alist ,然后自己写个 driver 在原来的基础上解决 webdav 端口问题应该就可以
    ysc3839
        38
    ysc3839  
       2023-05-24 19:35:23 +08:00 via Android
    现成的方案应该是没的,可以考虑给现有的网盘 app 啥的加入 DNS SRV 记录的解析支持,这样的话你就能把打洞得到的端口写到 SRV 记录里面,然后让客户端自动连接。
    参见 https://zh.m.wikipedia.org/wiki/SRV%E8%AE%B0%E5%BD%95
    7RTDKSAK
        39
    7RTDKSAK  
       2023-05-24 23:05:34 +08:00
    拿 RCLONE 开 WEBDAV 作为服务端

    拿 WINSCP 作为客户端来连接

    (我随便说得,没有实际测试过)
    IvanLi127
        40
    IvanLi127  
       2023-05-24 23:21:42 +08:00 via Android
    我感觉相比 syncthing ,resilio rsync 更像网盘一点,方便分享,能按需下载,能设只读
    DefoliationM
        41
    DefoliationM  
       2023-05-24 23:48:20 +08:00
    zerotier 或 tailscale 组网, 然后终端开个 python3 -m http.server 直接浏览器访问,我目前就是这样,可以直接在公司看家里的下好的视频。
    AloneHero
        42
    AloneHero  
       2023-05-25 07:59:15 +08:00 via Android
    看下来楼主的需求好像和我的需求有点像,我的需求简单来说就是希望移动设备通过 p2p 方式连接到家里服务器并进行各种管理,但是这个 p2p 连接不是 vpn 形式的,因为感觉开 vpn 有点麻烦。如果楼主找到了合适的应用可以分享一下。我现在在自己做基于 webrtc 的应用
    laoyutang
        43
    laoyutang  
       2023-05-25 08:54:24 +08:00 via Android
    看 op 的说法,应该是本身有 v4nat1 和 v6nat0 ,想要在外面直接访问局域网下的某台服务器吧。成品的网盘工具没有听说过带这种功能的,网络工具的话可以看下 softethervpn ,虽然我平时使用它来组件虚拟局域网和搭梯子,但是应该也能满足你需求,按照说明支持 ipv6 不错我没实测过,一直用的 v4
    awinds
        44
    awinds  
       2023-05-25 09:51:40 +08:00
    我觉得如果你家里的 ip 固定那就直接 ip 直连回家就行了,具体想做什么,你用 V-P-N 连回家都可以,如果不固定得用 DDNS 拿到你家的公网 ip 然后回家就可以了啊
    YOUXIAZ
        45
    YOUXIAZ  
       2023-05-25 11:02:13 +08:00
    seafile
    MFWT
        46
    MFWT  
    OP
       2023-05-25 11:45:38 +08:00
    @awinds 说了,没有公网 v4 ,只有公网 v6 ,v6 不是个个地方都有的
    awinds
        47
    awinds  
       2023-05-25 12:20:27 +08:00
    @MFWT 有 v6 的地方可以直连回去吧,没有 v6 的地方需要有个转的地方,如云服务器,这样应该是可行的,不想云服务器用 tailscale 应该也是可行
    sbilly
        48
    sbilly  
       2023-07-02 16:52:02 +08:00
    私有化部署的 ipfs
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:25 · PVG 05:25 · LAX 13:25 · JFK 16:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.