路由器/代理:使用什么来强制来自一个特定设备的所有流量通过 VPN?

路由器/代理:使用什么来强制来自一个特定设备的所有流量通过 VPN?

我一直在谷歌上搜索解决方案,也尝试了一些方法,但找到的解决方案不太合适。另外,如果这里不适合提问,请告诉我。

目前,我的网络设置如下:

  • 使用 PiHole 作为 DNS 的个人设备。例如,本地 LAN 192.168.1.0
  • 具有受国家/地区限制/感知的应用程序和内容的设备。例如 192.168.1.10
  • 家庭网关为 192.168.1.1,使用 PiHole 作为 DNS。例如 192.168.1.2
Personal PCs ______       Raspberry Pi --- PiHole DNS (Docker)
(and other stuff)  \           |
                    \          |
  Device that        \         |
Must use a VPN ---------- Home Router ---- Internet

此特定设备具有 IP/DNS/网关设置,但没有 VPN/代理配置,但我想在 PiHole 之后强制通过 VPN 来使用其所有网络(因此,PiHole 仍将是此设备的 DNS)。我如何使用 Docker 容器或 VM 来实现这一点,同时保持网络的其余部分不变?

简而言之,我正在努力实现这一目标:

                      _ Force Internet Traffic through VPN _
                     /    while using PiHole as DNS sink    \
                    /                                        \
  Device that _____/       Raspberry Pi --- VPN Container (OpenVPN Client)
Must use a VPN     \           |        |_ PiHole DNS (Docker)
                    \          |
Personal PCs         \         |
(and other stuff) ------- Home Router ---- Internet

当然,我可以通过购买带有 VPN 配置的路由器并让此设备通过此路由器连接到互联网来实现这一点。但我知道有一种通过软件实现的方法。

因此,这里的问题如下:

  • 我对 Linux 上的网络不太熟悉。您能告诉我哪里有关于这个主题的更全面(且最新)的资源吗?
  • 如果我设置了一个带有桥接网络和 OpenVPN 客户端的 Docker 容器,是否可以使用 IPTables/UFW 规则来实现这一点?或者我应该为此启动一个功能齐全的路由器操作系统?
  • 我的路由器没有可配置的 LAN 路由。只有 WAN/LAN 路由。

有没有办法通过 IP 强制执行或从给定的 MAC 路由包?

先感谢您!

相关内容