我正在尝试使用 openfortivpn 进行连接。以前我一直在 MS-Windows 上使用 Fortinet VPN 客户端 - 现在每次尝试启动它时都会出现蓝屏(我正在下载升级版本,但出于其他原因想在 Linux 上配置它)。
我连接的基础设施有很多子网,其中一些与我的本地子网冲突。因此,使用默认设置 (--set-routes=1),它会覆盖我的本地路由,并且盒子会断开与本地网络的连接。命令行选项似乎只允许一切或什么都不允许。
我能够捕获启动时应用的配置并自动配置路由。挑选相关条目并尝试应用它们(在使用 --no-routes 重新启动 VPN 后,手动记录 IP 地址)导致连接正常。
ip route add to 10.0.99.0/255.255.255.0 via 10.220.136.94 dev ppp0
但是每次连接时本地地址都会改变;我不能将其用作脚本中的文字值。
我如何编写脚本让其自动发生?
这openfortivpn 的手册页提到了一些控制路由的环境变量 - 但是输入
"VPN_ROUTE_GATEWAY" openfortivpn
进入 Google 只会给我提供 openfortivpn 源代码的链接(并且我对 C 语言的了解太生疏,无法对此进行逆向工程)。
答案1
事实证明,使用 ip-up 脚本可以自动完成这个技巧,我仍在尝试让它发挥作用。
答案如下:您可以创建一个“ip-up”文件并使用--pppd-ipparam进行路由:
只需将以下文件添加到您的/etc/ppp/ip-up.d/yourendpointname
:
-你想叫什么就叫什么-
#!/bin/sh -e
if [ "$PPP_IPPARAM" = "yourendpointname" ]; then
/sbin/ip route add 10.0.99.0/24 via $PPP_LOCAL
# add other routes here as needed
fi
这里,"yourendpointname"
应该与--pppd-ipparam
您想要在 openfortivpn 调用中使用的参数相匹配。
最后,在调用 openfortivpn 时chmod 755
使用 ip-up 文件 。--pppd-ipparam=yourendpointname