Mac Cisco IPsec 添加路由表 分流

居家办公用 Cisco IPsec 方式连公司VPN,由于VPN连接后会流量都会先从VPN经过,导致访问非公司网络极慢,搜索一番都得知可通过添加路由表让公司内网地址走VPN,非公司内网地址正常连接网络.

解决方案出自: https://superuser.com/questions/91191/how-to-force-split-tunnel-routing-on-mac-to-a-cisco-vpn/473766#comment471825_313961

  1. Mac IPsec 连接 VPN详见 https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth-zh.md#os-x

  2. 找到你的默认路由网关

    netstat -rn
    

    image-20220316171209642

即图中default 一行对应的 Gateway ,我的是 192.168.1.1

  1. 通过以下脚本可以实现路由表添加从而实现VPN分流

    #!/bin/bash
    
    if [[ $EUID -ne 0 ]]; then
        echo "Run this as root"
        exit 1
    fi
    
    route -nv add -net 192.168.0.0/16 -interface utun2 
    route change default 192.168.1.1
    

    其中192.168.0.0/16 代表公司内网的网络段(每个公司也许不同,可询问你的上级), utun2 表示 Cisco IPsec 的接口

    route -nv add -net 192.168.0.0/16 -interface utun2
    

    表示 所有 192.168.0.0/16网络段内的IP 都走utun2口 也即VPN

    route change default 192.168.1.1
    

    表示将默认路由恢复原来的(不连接VPN时)默认路由.

  2. 至此VPN的分流就配置结束了,如何让他自动运行呢?总不能每次用这两条命令吧,在上面提到的解决方案中已经给出了自动运行的答案.详见 https://gist.github.com/prehensile/675916

    1. /Library/LaunchDaemons目录下创建prehensile.networkwatcher.plist
    2. 写入以下内容
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    	"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>Label</key>
    	<string>prehensile.networkwatcher</string>
    	<key>ProgramArguments</key>
    	<array>
    		<string>/bin/bash</string>
    		<string>your_shell_path</string>
    	</array>
    	<key>WatchPaths</key>
    	<array>
    		<string>/Library/Preferences/SystemConfiguration</string>
    	</array>
    </dict>
    </plist>
    

    其中your_vpnshell_path请替换为你存放脚本的位置,以用户名为henry 脚本命名为auto-vpn.sh 为例/Users/henry/Scripts/auto-vpn.sh

    1. 添加执行权限

      sudo chown root:staff /Library/LaunchDaemons/prehensile.networkwatcher.plist
      
    2. 添加到后台运行

    sudo launchctl load -w /Library/LaunchDaemons/prehensile.networkwatcher.plist
    
    

至此大功告成.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值