让家庭服务器也能部署互联网服务的方法

241 天前
 onichandame

唠唠背景

最近在尝试使用Joplin管理并记录自己的日常生活,看上它主要是因为数据都在本地,而且可以加密。但问题也出现了,如何将不同设备上的Joplin数据同步。首先试用了 OneDrive ,它的好处是免费,不需翻墙。但是也有两点坏处:一是数据要交给微软;二是网速太慢,同步一次要 1 分钟。因此我开始寻找更好的同步方案,然后就发现Joplin支持使用 S3 做数据同步后端。随即我产生了一个思路:在家庭服务器上部署一个minio实例提供对象存储,然后想办法让所有设备都能连上这个实例。

架构设计

已知的有利情况有:

  1. 家庭宽带的非常规端口一般不会被封
  2. cloudflare 可以对域名反代,以隐藏真实 IP
  3. cloudflare origin rules 允许重写端口

因此总体设计就基于上述三点,实现一个将家庭服务器的非常规端口反代到 cloudflare 上常规端口的架构。

细节分享

家庭网络内部的配置就不赘述了,简单的端口映射即可。重点在于 cloudflare origin rules 的配置。截图如下:

我还搭配上了 DDNS 以实现不间断服务,并定期更换路由器上的对外端口以避免被盯上。

3437 次点击
所在节点    分享发现
14 条回复
ccbikai
241 天前
cloudflared tunnel 更简单
qsnow6
241 天前
如果只是自己用的话 tailscale 把所有的设备串起来就行了,稳定、可靠。
hugo007y
241 天前
支持 webdav ,搭一个就行了,外网用 ddns 加端口映射。不太需要做隧道。
Tink
241 天前
建议使用 cloudflare tunnel
chancat
241 天前
好麻烦。。直接 ddns 不得了吗?不然 zeroTier ,tailscale,cloudflared tunnel 都很简单,一个 openwrt 固件即可
estk
241 天前
刑,我这就去逝世
locoz
241 天前
你这方案还可以优化,两点建议:
1 、同步完全可以考虑用 resilio-sync 做,同步速度很快,放后台自己同步无感知。
2 、无 vpn 通过域名不带端口且隐藏服务端 ip 访问家里的网站类服务,你可以选择用腾讯云 cdn ,支持填写自定义端口的源地址,国内使用速度比 cloudflare 快得多。
musi
241 天前
没备案被查就 gg
azusematsuri
241 天前
为啥不直接用 joplin/server
ShunYea
241 天前
@chancat 这类产品是不是还是得有个主控服务器,万一哪天官方发威,是不是全部被禁用就用不了了?我现在用的自建 nps ,但是感觉更新不太频繁,负载不得而知,能用多久也不知道。
Pteromyini
241 天前
这个方案非常不完美,实际上要满足你这个需求基本有三种方案
1 、有公网 ip ,直接 ddns ,风险是被查到可能会断网(不是危言耸听)
2 、异地组网方式,自用通过 zerotier 、tailscale (有公网 Ip 也可以 openvpn 、wg )方案(最推荐,安全性最高)
3 、内网穿透方案,通过 cf tunnel 、frp 、nps 等穿透特定端口(优点是可以提供公网服务而非只是自己用,缺点也很明显,除了 1 提到的合规风险外,还有带宽受限于中转服务器)
Calaquendiv
240 天前
用 nas 的搭服务都有被抓的 还敢部署家庭服务器
yzc27
239 天前
@locoz 大佬,2 提到的腾讯云有教程吗?
locoz
239 天前
@yzc27 #12 没啥必要看教程,自己上腾讯云操作一下就知道了,产品名和核心方法都摆着了…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972560

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX