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

2023-09-10 22:59:20 +08:00
 onichandame

唠唠背景

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

架构设计

已知的有利情况有:

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

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

细节分享

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

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

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

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

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

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

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

© 2021 V2EX