![OpenVPN 在支持 VPN 客户端的路由器后面公开子网](https://linux22.com/image/1593234/OpenVPN%20%E5%9C%A8%E6%94%AF%E6%8C%81%20VPN%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%E8%B7%AF%E7%94%B1%E5%99%A8%E5%90%8E%E9%9D%A2%E5%85%AC%E5%BC%80%E5%AD%90%E7%BD%91.png)
我想通过 VPN 向多个客户端提供服务。我正在使用能够作为客户端建立 VPN 连接的路由器 (华硕 RT-AC51U)。我设置了一个 CA,创建了证书、私钥、.conf 文件 - 一切正常:
- 我可以连接到 VPN 并看到服务器端的多个设备(路由器、RPI 作为 VPN 服务器工作)
- 当我将上述路由器作为 VPN 客户端连接到网络时,我可以使用服务器网络公开的服务
现在我想将华硕路由器后面的客户端(或至少其中一个)暴露给VPN。
iroute
像使用和这样的选项push "route ..."
不起作用,所以我求助于子网中特定客户端的端口转发,但这也不起作用。
我可以:
- 使用 VPN 地址 ping 路由器
10.X.X.X
- 我设法转发了 HTTP 服务器端口,这样我就可以向华硕路由器的 WAN 地址发送请求
我不能:
- 向 VPN 地址发送 HTTP 请求,因此我假设端口转发在隧道适配器上不起作用
- 使用 OpenVPN 服务器和客户端配置暴露路由器后面的网络
使用 nmap 扫描 VPN IP 发现没有开放端口。另一方面,扫描 WAN IP 发现有开放端口。
我的问题:
是否真的可以暴露华硕路由器后面的子网?路由器通过其 WAN 端口连接到其网络。我需要禁用防火墙吗?我需要禁用华硕路由器中的 NAT 吗?暴露一个特定客户端有帮助吗?
答案1
显然我没有考虑到一种情况:我无法设置防火墙来通过我的隧道接口传递流量。
所以我用最新版本的固件刷了OpenWRT并设法从我设备上运行的 HTTP 服务器设置端口转发(测试用例),并且可以使用路由器的 VPN IP 访问该服务器。
虽然我花了一段时间才弄清楚一切,但整个过程实际上非常简单!
我仍在测试并完成我的用例的整个设置,但我非常肯定它会起作用!