我在 OpenVPN 客户端(mikrotik 路由器)后面有一个 LAN,它连接到服务器,并允许连接到服务器的每个其他客户端访问 LAN 内的机器。除了连接到此服务器的其他客户端外,LAN 有自己的子网。我无法配置此客户端以强制服务器添加路由,这将正确路由此子网的流量。目前我必须手动转到服务器并运行:
route del -net <client's subnet> netmask 255.255.255.0 gw <old client's ip>
route add -net <client's subnet> netmask 255.255.255.0 gw <new client's ip>
有什么方法可以改变服务器的设置以使其自动执行此操作吗?
客户端的 IP 是动态的,我更愿意保持这种状态。我尝试添加:mikrotik 路由器上的开放式 VPN 客户端设置非常有限,因此在客户端方面我能做的事情不多,但我希望在服务器端可以做一些事情来在客户端连接时设置路由 + 将此路由推送到其他连接的客户端。我实际上尝试添加
push “route <client's subnet> 255.255.255.0”
在服务器上,但我仍然需要手动设置其他客户端的路由。然而对我来说最重要的是在客户端连接时设置 OpenVPN 服务器 [系统] 路由。
答案1
它应该是push route [subnet] [subnet mask] [metric]
例子:
如果 OpenVPN 服务器的信息是:
Server IP: 10.10.10.254
Subnet: 255.255.255.0
Gateway: 10.10.10.1
OpenVPN IP: 10.10.11.1
Subnet: 255.255.255.0
那么配置应该是:
push route 10.10.10.0 255.255.255.0 1
这应该可以让您的 VPN 客户端添加必要的静态路由来访问 VPN 后面的资源。但是,您可能需要验证本地静态路由,以确保本地流量知道如何路由到 VPN 客户端。
答案2
正确的命令是 openvpn 配置文件中的“route NET MASK GW”。只有当您想要将路由推送到客户端时才使用“push”。