HexOS 推出 Anywhere 功能,让自托管应用可从外网安全访问
来源标题:HexOS Anywhere
HexOS 发布 Anywhere 功能,让用户在外网访问家庭网络内的自托管应用,无需端口转发。端口转发会暴露公网 IP,易被恶意扫描利用,且家庭宽带 IP 常变动。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
平时,你网络里的应用只能在本地访问。互联网上的任何设备试图连接你的家庭网络时,默认都会被阻止,除非是你主动发起的连接(比如你访问某个网站,或连接在线游戏)。在自托管场景下,如果你想让网络之外的人(包括你自己)连接到网络内的应用,基本上有三种选择:
端口转发会在路由器的防火墙上开放一个特定端口。这种做法是三者中最常见的,但也是迄今为止最不安全的。对家庭用户来说,配置起来也并不直观。你把公网(WAN)IP 暴露给全世界,恶意用户操作的端口扫描器就能发现它,并探测你所暴露服务中的漏洞。一个没有打补丁的服务,或一次存在漏洞的软件更新,就意味着坏人可能利用你的家庭服务器,进而可能控制它,并访问你网络中的其他设备。除此之外,大多数家庭用户还得额外折腾一番,才能防止服务掉线,因为多数家庭宽带套餐会定期轮换你的公网 IP 地址。这意味着你必须设置动态 DNS(DDNS),才能让暴露的服务保持可用。如果你想暴露多个通过 HTTP 或 HTTPS 这类通用端口通信的 Web 服务,还得更进一步,配置 NGINX 或 Caddy 之类的反向代理服务器。
VPN 隧道是一种安全得多的做法。这和从 NordVPN、Proton 这类 VPN 服务商购买套餐不是一回事。用这种做法,你自己就是 VPN 提供方;你不是用 VPN 假装自己在另一个国家,而是用 VPN 假装你连接的设备就在你自己的家庭网络上。不过这种做法也有几个坑。你必须在自己硬件上配置 VPN 服务,或者配置 Tailscale 之类的服务。你仍然得用自定义域名配合 DDNS,才能保证始终连得上,而且每一台想通过 VPN 连接你家庭网络的设备,都必须能够安装并运行 VPN 客户端。有些设备,比如智能电视、游戏主机,或者你没有完全权限的电脑(比如公共电脑或朋友的设备),如果不借助旅行路由器这类专用硬件,根本没法用这种方式连接。哦?你想让住在半个国家之外、不懂技术的朋友在他们的设备上安装并配置 VPN 客户端和自定义配置,好让他们能连上?你想在父母家的智能电视上看 Plex?别想了。
运行中继服务器可以说是三者中最好的选择;你隐藏了自己的公网 IP 地址,而且很多中继软件(如 Netbird 或 Pangolin)都有额外的安全功能,你可以配置它们来保护单个服务,把它们锁在密码甚至单点登录(SSO)认证之后。这也是配置起来最复杂的方式之一,因为你不仅要在自己的硬件上配置软件,还要在云端的一台服务器上配置。
如果你想自己动手做,你需要一台始终在线的虚拟专用服务器(VPS)、一个指向它的域名,以及时间去设置代理、它的证书、它的登录页面和它的更新。以下是让这样一套东西跑起来所需的全部内容。
所以,自己动手的基线成本大约是一年 72 美元(算上域名和免费证书之后),而这还没等你敲下一行配置。而且这又是你现在要负责的另一台服务器。如果你在旅行途中中继挂了,你对应用的访问也就随之而去。
说到配置,以下是你需要采取的步骤的简要清单:
这些总共要花多长时间?取决于你的专业水平和经验。你每添加一个应用,都要重新走一遍针对单个应用的步骤。
HexOS Anywhere 为你服务器上的每个应用提供自己的 URL,例如 jellyfin.k7m2p9qa.relay.hexos.com,所有安全考量都已就位,也没有需要你照看的续期任务。访客随后可以从任何设备打开该链接。连接会到达云端的一台 HexOS 中继,中继再通过安全的 WireGuard 隧道把流量直接转发到你的服务器。我们利用一项名为 TLS Passthrough 的功能来确保连接是端到端加密的。我们能看到被请求的 URL,以及一个告诉我们哪台设备正试图连接的标头,但所发送数据包的实际内容通过 HTTPS 保护,直到到达你的服务器才会被解密。这意味着,即使我们想,也无从读取经过中继的数据。
你的路由器完全不会被触碰,你的公网 IP 地址也绝不会展示给任何人。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。