使用 2 个相同子网时,Openvpn 客户端无法访问 Openvpn 服务器端 LAN

使用 2 个相同子网时,Openvpn 客户端无法访问 Openvpn 服务器端 LAN

我有以下设置:

--------------------------------------------------------------------------
| Local Area Network 1 (LAN 1) Netmask - 192.168.0.0/24 or 255.255.255.0 |
|   ---------------                                                      |
|  |Default gateway|------------------------------------                 |                          
|  |192.168.0.1    |                                   |                 |
|   ----------------                                   |                 |
|          |                                           |                 |
|   -------------------------------     -------------------------------  |
|  |Ubuntu server (PC2)            |   |Ubuntu server (PC1)            | |
|  |Running as web server          |   |Running OpenVPN server         | |
|  |LAN IP: 192.168.0.5            |   |LAN: 192.168.0.133             | |
|   -------------------------------    |OpenVPN IP: 10.8.0.1           | |
|                                       -------------------------------  |
|                                                                        |
--------------------------------------------------------------------------
--------------------------------------------------------------------------
| Local Area Network 2 (LAN 2) Netmask - 192.168.0.0/24 or 255.255.255.0 |
|   ---------------                                                      |
|  |Default gateway|------------------------------------                 |                          
|  |192.168.0.1    |                                   |                 |
|   ----------------                                   |                 |
|                                                      |                 |
|                                       -------------------------------  |
|                                      |Iphone client                  | |
|                                      |Connected to openvpn server PC1| |
|                                      |LAN: 192.168.0.5               | |
|                                      |OpenVPN IP: 10.8.0.2           | |
|                                       -------------------------------  |
|                                                                        |
--------------------------------------------------------------------------

我的 Iphone (LAN 2) 能够连接我家里的 openvpn 服务器 (LAN 1),但我的 Iphone 无法访问 Web 服务器 (PC2)。

但是,当我的 Iphone 客户端使用移动数据并连接到我的 openvpn 服务器时,我能够访问(PC 2)。

我已经启用我net.ipv4.ip_forward=1/etc/sysctl.conf

并添加push "route 192.168.0.0 255.255.255.0"到 server.conf

此屏幕截图标识我的路线-n 路线-n

我最好的猜测是,当使用 2 个相同的 192.168.0.0/24 子网时,我的 iPhone 客户端会感到困惑,因为它在 LAN 2 中发送 IP 地址 192.168.0.5 的流量,但在 LAN 1 中却没有。

如何解决这种情况,或者强制我的 vpn 客户端通过 openvpn 服务器(PC1)路由所有 192.168.0.0/24 网络,而不是通过 LAN 2 默认网关路由?

提前致谢!

答案1

假设问题是由于 LAN2 的子网路由与 LAN1 的 VPN 推送的路由之间的目的地冲突造成的,您可以尝试通过将推送的路由分成两半来解决冲突:

route 192.168.0.0 255.255.255.128
route 192.168.0.128 255.255.255.128

def1与标志对选项的作用类似redirect-gateway,这应该可以避免冲突并覆盖现有的192.168.0.0/24路线。

不幸的是,这仍然不允许您访问 LAN1 上与您的客户端或其网关在 LAN2 上具有相同 IP 的主机。

为了解决这个问题,你可以使用另一个子网(例如10.9.0.0/24)来“代表” 192.168.0.0/24LAN2 上的 LAN1,方法是使用NETMAPVPN 服务器上的 iptables(并为其推送路由):

iptables -t nat -A PREROUTING -d 10.9.0.0/24 -j NETMAP --to 192.168.0.0/24

相关内容