AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 987504
Accepted
symcbean
symcbean
Asked: 2019-10-11 06:02:48 +0800 CST2019-10-11 06:02:48 +0800 CST 2019-10-11 06:02:48 +0800 CST

openfortivpn 杀死了我的路线

  • 772

我正在尝试使用 openfortivpn 进行连接。以前我一直在 MS-Windows 上使用 Fortinet VPN 客户端 - 现在每次尝试启动它时都会出现蓝屏(我正在下载升级版本,但出于其他原因想在 Linux 上配置它)。

我连接的基础设施有很多子网,其中一些与我的本地子网冲突。因此,使用默认设置 (--set-routes=1) 它会覆盖我的本地路由,并且盒子会断开与本地网络的连接。命令行选项似乎只允许一切或不允许。

我能够捕获启动时正在应用的配置并自动配置路由。Cherry 选择相关条目并尝试应用它们(在使用 --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 的了解太生疏了,无法对其进行逆向工程)。

linux
  • 1 1 个回答
  • 1698 Views

1 个回答

  • Voted
  1. Best Answer
    JC Arnu
    2020-04-20T22:53:26+08:002020-04-20T22:53:26+08:00

    事实证明,可以使用 ip-up 脚本自动执行该技巧,我仍在努力使其工作。

    答案是:您可以创建一个“ip-up”文件并使用 --ppp-ipparam 进行路由:

    只需将以下文件添加到您的/etc/ppp/ip-up.d/yourendpointname:

    -你可以随便叫它 -

    #!/bin/sh -e
    
    if [ "$PPP_IPPARAM" = "yourendpointname" ]; then
      /sbin/ip r add 10.0.99.0/24 via $PPP_LOCAL
    fi
    

    在这里,"yourendpointname"应该匹配--ppp-ipparam您要在 openfortivpn 调用中使用的参数。

    chmod 755 这个文件然后 --ppp-ipparam=yourendpointname在调用 openfortivpn 时使用。

    以下(以前的)答案有些复杂:

    顺便说一句,您可以使用以下脚本获取 VPN 网关并添加一些路由:

    # Print routes, get ppp0 route link, get gateway ip into $GW
    GW=$(ip r|grep ppp0|grep link|sed -e 's/.* link src \(.*\)$/\1/g')
    # Use $GW variable as gateway for your new routes
    ip r add 10.0.99.0/24 via ${GW}
    

    这可能会有所帮助。

    • 3

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve