![OpenVPN启动后如何自动添加本地路由?](https://linux22.com/image/679847/OpenVPN%E5%90%AF%E5%8A%A8%E5%90%8E%E5%A6%82%E4%BD%95%E8%87%AA%E5%8A%A8%E6%B7%BB%E5%8A%A0%E6%9C%AC%E5%9C%B0%E8%B7%AF%E7%94%B1%EF%BC%9F.png)
我有一个容器,它通过 OpenVPN 路由所有流量。OpenVPN 通过以下组合实现此目的:
0.0.0.0/1 via 10.8.8.17 dev tun0
128.0.0.0/1 via 10.8.8.17 dev tun0
屏蔽default
路由(OpenVPN 关闭时路由仍然存在)
我需要明确添加一条用于本地网络的路由,该路由将通过eth0
而不是 来引导数据包tun0
。
这是通过以下方式手动完成的
ip route add 10.10.10.0/24 via 10.10.11.254 dev eth0
在 OpenVPN 启动后。
如何在 OpenVPN 启动时自动执行该操作?
我尝试添加
route 10.10.10.0 255.255.255.0
到 mu.ovpn
配置文件,但这会导致一条新的路由tun0
(这是可以理解的,因为没有关于要通过的 NIC 的具体信息 - 但我在文档中也没有看到任何可用信息)
# ip route
(...)
10.10.10.0/24 via 10.8.8.17 dev tun0
我想要实现的目标是否可以通过 OpenVPN 配置来实现,或者我是否需要在 OpenVPN 启动过程之外以某种方式来实现?
答案1
如果它是本地可访问的网络,那么您只需拥有一个持久的本地路由即可,而不管 openvpn 是否启用,并且应该可以正常工作。根据您的系统,您可以配置路由,以便在相关接口启动时加载它。
答案2
up
OpenVPN 文件可以引用使用和指令启用或禁用隧道时要执行的 shell 脚本down
。
例子:
up on-up.sh
down on-down.sh