家庭服务器公网服务全新解决思路

2020-06-24 17:03:09 +08:00
 sadfQED2

首先,我这里说的公网服务包括 http,ftp,smb 等等。

目前来说,这些服务直接暴露到公网,安全问题都是小事,更关键的是 v2er 都提醒又被断网的风险。因此对应的办法:

1,只对外开放一个微屁嗯,需要访问服务的时候都通过微屁嗯连回家里的网络使用。缺点:需要安装微屁嗯客户端,而且这类客户端基本上都被墙了,在一些公共电脑上装一次客户端就得搞半天

2,通过代理服务器,比如 frc ngrok 花生壳这类,原理是客户端和代理服务器通讯,代理服务器通过 tcp 长连接和你家里服务器通讯。这样你家的服务器没有开放任何端口,但是!这样缺点也很明显,经过代理,速度太慢了。我家可是千兆宽带,经过代理能跑到 10 兆就很不错了。

所以,最近我有了一个全新的解决思路,首先我在路由器上面禁掉所有外网 ip 访问,然后,我家里路由器和我一台公网服务器保持通讯,当我需要访问家里服务器的时候,我先请求公网服务器,公网服务器发送消息给家里路由器,然后路由器仅对我当前 ip 开放访问权限。这时,我就可以直接访问我家的服务器了,而且中间没有代理,保证速度。另外,由于家里路由器平时是关闭所有外网 ip 请求的,这样也就解决了安全性以及被断网的风险。

最后,调研了实现方案,路由器上面可以使用 go 语言开发,控制访问只需要编辑 iptables 的规则即可。

目前方案还没实现,先写个思路出来,各位大佬 review 下看看还有没有什么漏洞?

7176 次点击
所在节点    宽带症候群
47 条回复
sadfQED2
2020-06-24 17:13:20 +08:00
另外,公网服务器并不一定真的是一个服务器,可以是一个邮箱,可以是 github,或者是一个 tg 机器人都行,反正我需要连接家里服务器的时候,我能把我当前 ip 发送回家就行
jiangzm
2020-06-24 17:15:32 +08:00
太麻烦了吧,又是通过公网服务器发给路由器,然后还要写程序更新路由器防火墙规则。
CheekiBreeki
2020-06-24 17:18:13 +08:00
最後發現還是 vpn 方便
CloudnuY
2020-06-24 17:18:30 +08:00
我记得最近几个月在本站看过这个解决方案
k9982874
2020-06-24 17:21:40 +08:00
我先否定代理服务器,然后我再自己实现一个代理服务器,就是这么任性
yorkyoung
2020-06-24 17:22:31 +08:00
借楼同问,可以通过这种 NAT 服务得到固定外网 IP 吗?
wtsamuel
2020-06-24 17:31:43 +08:00
我倾向于使用 zerotier 的 nat,还能直接打通多个局域网。
安全方面直接靠应用自己,比如 smb 账号密码什么的
ericbize
2020-06-24 17:32:45 +08:00
但是你一个公网服务器的成本是多少?
这个很简单啊, 你可以在云上面把 vm 装个路由系统上去,然后家里 vpn 连上去,直接端口转发就可以了。
家宽的优势在于价格吧!
sadfQED2
2020-06-24 17:33:54 +08:00
@jiangzm 最终实现后可能就是路由器上面装一个插件


@k9982874 我这种并不是代理啊,只是控制防火墙规则,公网服务器只是为了有个固定的地方和路由器通讯


@yorkyoung 不能,相当于只是动态维护防火墙规则
jiangzm
2020-06-24 17:38:13 +08:00
我觉得可以结合 ip+mac 地址 两种白名单方式,大部分情况能覆盖到,在公司时把公司的固定 IP 加白名单,然后在外面把自己的手机 mac 地址加下白名单。
sadfQED2
2020-06-24 17:38:56 +08:00
@wtsamuel 家里的服务很多不能保证安全,比如我服务器上面就装了一堆个人开源的 xxxDownload,这种东西谁都不知道有多少漏洞


@ericbize 公网服务器并不一定是一个真正的服务器啊,可能是一个邮箱?需要使用的时候往家里发封邮件,或者是一个 github 私有项目,需要的时候上去改一行配置。路由器轮训邮箱或者 github,检查到规则变化就更新防火墙。之所以不愿意经过服务器转发是为了通讯速度,云服务器那 1M 2M 带宽,转发我千兆带宽有什么意义
ztxcccc
2020-06-24 17:40:03 +08:00
你都有服务器了,搭建一个这个吧,github 上搜 ehang-io/nps
sadfQED2
2020-06-24 17:40:29 +08:00
@jiangzm 这个想法好
sadfQED2
2020-06-24 17:41:32 +08:00
@ztxcccc 我不是要做转发,转发经过服务器代理,太慢了
ztxcccc
2020-06-24 17:44:39 +08:00
@sadfQED2 p2p,完整文档里看看
Tonni
2020-06-24 17:53:47 +08:00
开个 ss 代理,然后通过这个 ss 端口返代。
ferock
2020-06-24 17:57:15 +08:00
我的方案

外网只提供 2 个服务
1. https
2. vpn 端口

使用 openVpn 组网,或者使用 zerotier 组大局域网
以上满足绝大部分需求,服务器为 白 群晖。
ferock
2020-06-24 17:59:35 +08:00
https 服务都是直连的。
stille
2020-06-24 18:00:20 +08:00
只开了一个端口给 openconnect,只开了一个证书登录账号,手机和笔记本部署好就很完美了,几乎秒登
sadfQED2
2020-06-24 18:07:14 +08:00

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

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

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

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

© 2021 V2EX