Skip to content

如何在外面连接到家里的内网?

发布于  at 13:54

本文讨论的是在外面连接到家里的内网,比如访问内网 IP、SSH、SMB、科学上网等。如果你不需要访问完整内网,只需要访问其中一个服务,只需要配个 Nginx 就行了,本文不做讨论。

方案对比

下面是我折腾过的方案,其他方案欢迎留言讨论。

最早的时候用过 OpenConnect,默认会把本地的路由表干掉,影响日常使用,而且时间太早就不写了。

方案 网络环境要求 安装类型(server) 连接类型 延迟 安装/维护成本 推荐指数 备注
Tailscale / ZeroTier docker NAT ★★☆☆☆ 网段可能会冲突:比如你家里有一网段是 192.168.1/24(最常见的)并且添加到 tailscale 的静态路由里面了,在外面的 WiFi 网段刚好也是 192.168.1/24(它真的很常见),那你就访问不到家里的这个网段了,这一点刚好和 OpenVPN 相反。你可以把家里的网段手动修改成一个不常用的,比如 10.x.x/20
Tailscale + 自建中转 一个有公网 IPv4 的中转节点 docker NAT ★★☆☆☆ -
Headscale 一个有公网 IPv4 的中转节点 docker NAT ★★☆☆☆ -
Tailscale + IPv6 公网 IPv6(两端) docker 直连 很低 ★★★★★ -
OpenVPN + IPv6 公网 IPv6(两端) 虚拟机 直连 很低 ★★★☆☆ -
OpenVPN 公网 IPv4(服务端) 虚拟机 直连 很低 ★★★☆☆ 配置是真的繁琐,记得把证书的有效期设置长点
WireGuard 公网 IPv4(服务端) unRAID 内置 直连 很低 ★★★★☆ 可以配置多个 peer 达到多端同时连接的效果

补充

设置 Tailscale 的主要步骤:

设置 WireGuard 的文档:https://unraid.net/blog/wireguard-on-unraid

提醒:无论是哪个,苹果生态下载客户端都需要一个非中国区的 Apple ID。

分享到: