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

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 下看看还有没有什么漏洞?

7476 次点击
所在节点    宽带症候群
47 条回复
BadAngel
2020-06-24 23:17:36 +08:00
让我想起灰鸽子?
ochatokori
2020-06-24 23:27:34 +08:00
楼主的思路就是借助 vps 敲门
说实话这样搞是最麻烦的

个人觉得 vpn 是最兼顾易用和速度的
你说客户端被墙安装麻烦的问题,把客户端安装文件放到你服务器上需要的时候就下载就行了吧
jh163888
2020-06-25 08:51:13 +08:00
@stille 可是你却经常把自己折腾挂🤣
lifanxi
2020-06-26 17:51:19 +08:00
我以为穿越了,记得以前讨论过这个问题。
找了一下,请参考: https://www.v2ex.com/t/669709
bluesky139
2020-06-26 20:18:22 +08:00
@lifanxi 我也清楚的记得以前有过讨论,看了 40 多楼终于有人想起了。。
ungrown
2020-06-28 11:17:45 +08:00
首先遇到这类场景我反正无论如何不管怎样都开头无脑推荐 zerotier 先走一波。
反正值得一试,不行再说。

接下来具题具析:你用的思路,其实就是 Port knocking (端口敲门),只不过你这儿是 IP 敲门。
好了,结题,建议你上 github 细细搜一下,现成的实现应该不少,就算不能直接拿来用,也能直接拿来改。
greensea
2020-06-30 13:54:25 +08:00
提醒楼主可能在重新发明轮子

knock 了解一下

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

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

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

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

© 2021 V2EX