关于家用服务器对外服务的免费方案(基于公网 ipv6 和 cloudflare dns proxy)

2022-12-22 15:48:12 +08:00
 biguokang

之前我一直用家里的服务器对外服务,不过由于公网 ipv4 不好弄,而且限制颇多,所以一直都是买了一个云服务器用 frp 做中转,后来还换到樱花 frp 这类平台做中转。

后来我折腾了下 ipv6 ,成功让家里的每台上网设备都获得公网 ipv6 地址,这样我的服务器做个 ipv6 的 ddns ,就不用买云服务器做中转了,家里的服务器直接对外服务。

不过这样就产生了一个问题,不是所有用户的网络环境都支持 ipv6 ,手机流量上网全面支持 ipv6 那还好说,但是是固网那一块支持度还不高,比如我公司电脑就没有 ipv6 ,而且我了解过城中村的垄断网络都是没有 ipv6 的。

总而言之,用 ipv6 搭网站对外服务还不是特别完美,会有一部分用户因为没有 ipv6 的上网环境导致我的服务无法访问。

所以后来我把域名放到 cloudflare 解析了,家里的服务器 ipv6 ddns 到 cloudflare 去,然后再把 cloudflare 的代理开关打开(橙色小云朵),有了 cloudflare 服务器在前面代理,我也不需要管用户的上网环境,v4/v6 用户都能访问我的家里服务器。

整个流程都是免费的,我也不用花钱买云服务器做中转或者买 frp 服务了,可是发现了一个问题。

我测试了下,cloudflare 的代理服务器地址固定在美国加州,也就是说国内用户访问我家服务的路径是:

国内用户-->美国服务器-->我家里的服务器(广州)-->美国服务器-->国内用户

所以我在想有没有办法,让 cloudflare 的代理服务器设置为 cloudflare 香港或者亚洲区的服务器,走亚洲区中转而不是美国中转。

或者说,国内有没有类似 cloudflare 的服务商,提供 dns 服务解析的同时还能开 cdn 代理

ps.国内能满足我这个要求的貌似只有百度云加速,可惜不支持 ipv6 AAAA 解析,对我的使用场景没用。

6130 次点击
所在节点    程序员
49 条回复
THESDZ
2022-12-22 15:54:35 +08:00
注意安全防护
biguokang
2022-12-22 15:55:27 +08:00
@THESDZ 有 cloudflare 代理在前面顶着,没人知道我公网 ipv6 地址的。
THESDZ
2022-12-22 16:00:58 +08:00
@biguokang cloudflare 能进你的机器,如果没有防火墙,fail2ban 等机制,其它的也会进。
biguokang
2022-12-22 16:03:43 +08:00
@THESDZ 这个也没办法,毕竟站在平台作恶的情况下,全世界没有一个能跑得掉,特别是国内的。
THESDZ
2022-12-22 16:06:25 +08:00
@biguokang #4 我的意思是,你开放了 ipv6 的端口,其它扫描机器的程序也能扫到,如果不做白名单控制,有可能中招(传统的方式是路由器 /光猫会拦截入站流量。)
jeesk
2022-12-22 16:09:26 +08:00
你电脑或者手机不分配 ipv6 基本没法访问。 代理也不好使。
jeesk
2022-12-22 16:13:01 +08:00
我的建议是, 手机或者其他访问的地方没有 ipv6. 那么就用 frp 公网 或者 zerotier/局域网 把你家的设备使用前面 2 种暴露出来, 只用 ipv4 的流量。
biguokang
2022-12-22 16:14:04 +08:00
@jeesk 我测试过,好使的,在只有 v4 的情况下也能访问到我 v6 的网站,因为这个转发工作 cloudflare 代理已经帮我干了。

我还特地测试过,纯 v4 去 ping 我的网站,出来的地址是 cloudflare 的 v4 地址,纯 v6 去 ping 则是 cloudflare 的 v6 地址
biguokang
2022-12-22 16:16:14 +08:00
@jeesk frp 或者打洞的方案还是得需要一台云服务器的,我之前也是这么干的,我就是因为不想买云服务器才转的 ipv6 ,毕竟乞丐版的云服务器出口带宽太小了,我家宽的出口带宽再高也没用。
biguokang
2022-12-22 16:20:50 +08:00
@THESDZ v6 的地址这么多,如果是黑客用程序随机扫到的可能性不大.。。除非是黑客做的钓鱼 v6 网站,记录了访问过的 v6 地址那才有可能,针对用户还能实现,服务器这种就不大可能了。
jeesk
2022-12-22 16:26:55 +08:00
@biguokang ping 和 http 是不同的协议,建议直接使用 http 的协议测试(如果你要访问 http 服务)。
6.ipw.cn 是测试是否能够访问 ipv6 的站点。 你可以再次确认一下,没有 ipv6 的情况下面是否真的能够访问 6.ipw.cn
brader
2022-12-22 16:29:21 +08:00
啊,虽然我是个程序员,但是我现在对 ipv6 还是一知半解的,我一直有个疑问,如果运营商肯分配一个 ipv4 地址给我们的话,那应该是我们的路由器获得了 ipv4 公网地址,内网其他设备得到的都是路由器分配的 192.168.x.x 地址。

难道 ipv6 不是这样的嘛?我一直理解的也是路由器获得了一个 ipv6 地址,内网设备都是 192.168.x.x 地址。为啥楼主你说每个内网设备都会得到一个 ipv6 地址啊
kaedeair
2022-12-22 16:35:16 +08:00
@brader 12# ipv6 地址很多,全世界设备都分配不完,自然不存在 nat 这种东西
brader
2022-12-22 16:37:19 +08:00
@kaedeair 那如果不用到 nat 机制,那我家的那 30 多块的水星路由器是不是没办法支持 ipv6 的?想支持还得买过路由器吗?
locoz
2022-12-22 16:37:55 +08:00
@biguokang #10 你不要把黑客理解成一个个只能全网扫描但资源不足的个体或小团队,黑客也是会用工具产生放大效应的。比如说 IP 地址多不代表没人能扫完,总会有大型团队拥有足够的资源去扫的,像那些做网络空间测绘的团队就是专门扫全网设备的。又比如说单纯攻击并不一定需要扫遍全网,也可以是针对特定区间缩小范围,甚至直接根据一些你忽略的点获取到 IP 地址实行精准打击。
locoz
2022-12-22 16:41:12 +08:00
永远不要觉得看起来概率相对较低就不会有问题。工业领域有个常见标语说得就很好:“安全源于持久警惕,事故源于瞬间麻痹”,网络安全也同理。
biguokang
2022-12-22 16:43:49 +08:00
@jeesk 我的服务都是 http 服务,纯 v4 使用环境也能访问到我的 v6 服务。

简单来说我的电脑在纯 v4 环境下,我的电脑和 cloudflare 代理用 v4 协议通讯,然后 cloudflare 代理和我的服务器用 v6 协议通讯。。。我的电脑不是直接和我的服务器通讯的,中间隔了个 cloudflare 代理做转发,而 cloudflare 代理本身支持 v4/v6 双栈协议
kaedeair
2022-12-22 16:47:01 +08:00
@brader #14 路由器可以同时支持 nat 和 ipv6,支持哪些功能是路由器决定的,你可以去后台设置看一看有没有相关设置。
在光猫桥接的情况下所有设备都很容易分配到 ipv6 地址,如果光猫是路由模式可能比较困难(我没有尝试过),可能需要路由器进一步的支持
0o0O0o0O0o
2022-12-22 16:47:16 +08:00
感觉不如 cloudflared ,连公网 IPv6 都不需要
ooxxcc
2022-12-22 16:48:59 +08:00
感觉不如 cloudflared ,连公网 IPv6 都不需要 +1

在公网 IPv6 上开服务也不安全

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

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

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

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

© 2021 V2EX