跳过正文

无公网 IP下的远程访问虚拟局域网,最佳实践

·62 字·1 分钟
作者
王浩宇
记录服务器、虚拟化、网络和日常折腾。
绝大多数家用宽带都被运营商分配内网 CGNAT 地址,无法获取原生公网v4地址,部分地区可能v6地址都没有,这种场景下只能依托一台低配低延迟大带宽 VPS 搭建统一网关才是最佳实践。 这里推荐一下自己用的服务器,带宽高,价格合适,[点这里][1] 整体思路和方案一逻辑一致,只是把「本地公网入口」替换成「云端 VPS 入口」,家庭内网主动向外建立出站加密隧道,路由器无需开放任何入站端口,攻击面极低。

云端入口层(VPS)
#

VPS 部署独立 Nginx+Lua/Caddy+WAF 作为统一公网入口,仅开放 80、443、WireGuard 隧道端口,所有外网访问流量先经过 WAF 过滤,拦截注入、扫描、爬虫等攻击;同时 VPS 作为虚拟局域网网关,承载所有的加密隧道流量的转发。 可以参考我之前的文章 Caddy 配置 WAF防火墙 LAMP环境配置 ModSecurity Web 应用防火墙模块

组网层
#

内网软路由 / 服务器部署 WireGuard 客户端,主动向 VPS WireGuard 服务端建立连接,形成私有虚拟局域网,所有家庭设备分配固定虚拟IP: 公网 Web 业务:外网用户→VPS WAF→WireGuard 加密隧道→内网对应服务; 设备互通流量:HOME1、HOME2 两台异地家庭站点优先 P2P 直连传输,打洞失败自动经 VPS 中继; 运维管理流量:手机、笔记本接入 WireGuard/OpenVPN 后,仅允许访问内网管理网段,和公网业务流量物理隔离。

家庭宽带全程仅出站连接,路由器无需放行任何入站端口,Hack无法主动发起对内网的扫描攻击; 一套 WireGuard 同时满足公网业务发布、文件传输、远程维护等需求, 而且新增第二台异地家庭灾备站点仅需加入同一 WireGuard 网络,引入路由即可实现跨区域混合 SD-WAN 架构。