大名鼎鼎的vpnc我就不用介绍了,虽然cisco有提供mac版本的客户端,但是在Linux下我就没装成功过。
现在分享一下我在Mac下使用vpnc连接CsicoVPN的心得,希望能对各个Mac用户的工作有所帮助。
操作系统的版本是:Mac OS X 10.6.2
需要安装的软件
1.安装mac ports
2.使用mac ports安装vpnc,命令:port install vpnc
3.安装tuntaposx
现在你就可以使用vpnc连接VPN了,具体的vpnc配置参数可以参考这篇博文http://blog.chinaunix.net/u/14220/showart_340223.html。
现在说说如何解决连接上了vpn之后会断网的问题。其实网络并没有真正断开,只是默认网关指向了tun0,也就是所有的网络全部指向了vpn所在的虚拟网卡上了,所以造成了我们无法一边登陆生产系统一边Google查资料解决问题。解决方法也很简单,只需重设这个路由:将默认网关还原为公网网关,再将生产网段的路由指定到vpnc得到网关,这样即可同时vpn和上公网了。下边贴下为Mac写的脚本,可以解决这个问题:
#!/bin/ksh
#
# MacOS使用VPNC脚本同时连接生产和互联网
#
# 作者:vlinux
# 邮箱:oldmanpushcart@gmail.com
# 参数:
# $1 : 配置文件
#
# 例子:
# sh vpnmac.sh home.properties
# sh vpnmac.sh office 10.0.0.0/24,10.0.1.0/24,10.0.2.0/24
# sh vpnmac.sh
#
# 打印错误信息函数
# 参数描述
# $1 : msg错误信息
function errmsg
#
{
local msg=$1
echo "错误信息:$1"
}
#
# 连接函数
function connect
# 参数描述
# $1 : conf_file 配置文件
# $2 : internet_gw 公网网关地址
# $3 : vpn_ip VPN内部地址
{
local conf_file=$1
local internet_gw=$2
local vpn_ip=$3
#这里检查参数是否齐全
#检查是否装有vpnc
if [ -x vpnc ]; then
errmsg "尚未安装vpnc"
exit -3
fi
#检查是否装有tuntaposx
ls /dev/tun* > /dev/null 2>&1
if [ ! $? -eq 0 ]; then
errmsg "在/dev下找不到虚拟网卡tun ,尚未安装tuntaposx"
exit -3
fi
#执行连接命令
echo "正在进行VPN连接,请稍后..."
local tmp_vpnmac="/tmp/vpnmac.$$"
sudo vpnc $conf_file > $tmp_vpnmac
if [ ! $? -eq 0 ]; then
errmsg "执行vpnc命令失败"
exit -3
fi
#得到VPN连接后的网关地址
local vpn_gw=`grep "add net default: gateway" $tmp_vpnmac | sed 's/.*gateway *//g'`
rm $tmp_vpnmac
#连接完成
echo "成功建立VPN连接,准备配置路由..."
#删除默认路由
sudo route delete default
#添加公网路由
sudo route add default $internet_gw
#添加VPN路由
for p in `echo $vpn_ip | sed 's/,/ /g'`
do
sudo route add $p $vpn_gw
done
echo "路由配置完毕"
}
#
# 取得参数配置
global_getProRetVal=""
function getPro
# 参数描述
# $1 : pro_file 参数配置文件
# $2 : pro_name 参数名称
{
local pro_file=$1
local pro_name=$2
if [ ! -e $pro_file ]; then
errmsg "配置文件 $pro_file 无法找到!"
exit -4
fi
#取得配置值
local pro_val=`grep -E "^$pro_name=" $pro_file | awk -F '=' '{print $2}' | tail -1`
#echo "\t$pro_name=$pro_val"
global_getProRetVal=$pro_val
}
#
# 主函数
function main
{
if [ $# -eq 0 ]; then
#关闭VPNC
sudo vpnc-disconnect
else
#连接VPN
#得到默认网关,默认网关地址将会被设置为VPN之后得公网出口地址
echo "正在取得当前默认网关地址..."
local internet_gw=`netstat -r | grep default | awk -F ' ' '{print $2}'`
if [ -z $internet_gw ]; then
errmsg "无法找到默认网关"
exit -1
fi
echo "当前默认网关为:$internet_gw"
if [ $# -eq 1 ]; then
#打开VPNC 采用配置文件方式
getPro $1 "vpnc_conf"
local conf_file=$global_getProRetVal
getPro $1 "vpn_ip"
local vpn_ip=$global_getProRetVal
connect $conf_file $internet_gw $vpn_ip
else
#打开VPNC 采用参数方式
connect $1 $internet_gw $2
fi
fi
}
main $@
如果选用的是调用配置文件的方式,则你需要一个配置文件
#vpnmac.sh配置文件模板
#vpnc_conf=vpnc配置文件名
#vpn_ip=需要路由的ip地址,你也可以在这里强行指定能访问的主机,例如:
# 为了避免误操作,我只允许自己拨上vpn之后只能访问172.16.0.5,6,7这三台主机,此时可以这样配置
# vpn_ip=172.16.0.5/32,172.16.0.6/32,172.16.0.7/32
# 又比如拨号到vpn之后有多个网段:10.8.0.0/24和172.16.0.0/24,也可以这样配置
# vpn_ip=10.8.0.0/24,172.16.0.0/24
# 总之用逗号隔开就是了
vpnc_conf=gxmcc
vpn_ip=172.16.0.0/24
配置文件的说明:
vpnc_conf是vpnc的配置文件,default对应的是default.conf
vpn_ip则是需要指定路由的生产ip地址
配置文件保存为default.properties
脚本文件保存为vpnmac.sh
你也可以采用命令参数方式:
$1 vpnc的配置文件名称,说明同vpn_conf
$2 生产的ip地址,说明同vpn_ip
脚本命令说明
连接VPN(配置文件方式):sh vpnmac.sh default.properties
连接VPN(命令参数方式):sh vpnmac.sh default 10.0.0.0/24,10.0.1.0/24
断开VPN:sh vpnmac.sh
sh vpnmac
分享到:
相关推荐
Windows远程桌面管理工具for MacOS,可以在MacOS中远程连接到Windows机器,可以保存多个远程连接
MacOS使用的中文字体
macos使用,seco client macosx-7.0.2.26
MacOS 系统用Python连接Oracle数据库必备instantclient macos 64位
This maintenance release includes the following features and support updates and resolves the defects described in Cisco Secure Client 5.0.01242: Basic Posture CLI for ISE Posture (CSCwc98263)—For ...
此资源包括macOs 10.11.cdr,macOs 10.12.cdr,macOs 10.13.cdr,macOs 10.14.cdr 懒人安装
最新iNode智能客户端MacOS版 inode智能客户端 for mac ,找得让人心碎。支持Mac OS 最新BigSur 11.6。
macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包 macOs sublime压缩包
• 为 Mac、iPad、iPhone 和 PC 提供加密的 VPN 连接 Xsan • 具有并发读/写访问权限的块级别 SAN 文件共享 • Xsan 宗卷托管和配置 • 宗卷管理、存储池、分段存储和宗卷映射 • 实时监控、图形显示和事件...
Apple 今日发布了 macOS 的下一个版本,称为macOS Ventura,它具有多项新功能,包括 Stage Manager、Continuity Camera、新的安全更新等。为大家带来macOS 13 Ventura测试版地址下载,想要体验最新的13系统的朋友...
Movist最新版macOS使用的,希望能够帮助需要的人,谢谢。
在macOS上使用`mdls`获取文件元数据
macOS 开发教程之如何设置菜单工具栏?...主菜单使用可用的命令菜单和组在macOS上组织其主菜单项。每个菜单均表示为顶级菜单栏菜单。每个命令组在一个顶层菜单中都有一组相应的菜单项,由分隔符菜单项分隔。
tcp_killer用于在Linux或macOS上关闭一个TCP连接
macOS Catalina Patcher 是一个工具,可以帮助用户将其旧版 macOS 系统升级到 macOS Catalina 操作系统。...需要注意的是,使用这样的工具可能会涉及到一些风险,所以在使用前建议用户充分了解相关信息并谨慎操作。
全部都是原生镜像可以用来做黑苹果使用 10.13.0macOS high sierra.dmg 10.13.1macOSHighSierra.dmg 10.13.2macOSHighSierra.dmg 10.13.3macOS High Sierra.dmg 10.13.4macOS.High.Sierra.dmg 10.13.5 macOS High ...
在 macOS Ventura 系统中 , pmset 命令行工具是目前找到的唯一可用的对 macOS 进行周期性电源管理的命令行工具, 常见操作包括开机、关机、唤醒、重启等, 下面的例子我们会演示一下如何使用 pmset 命令对 macOS 进行...
"cisco-secure-client-macos-5.0.00556.dmg" 是思科公司(Cisco)开发的一款安全客户端软件,适用于 macOS 操作系统的安装程序,用于保护网络的安全性。这个软件的功能包括身份验证、数据加密、远程访问等,能够帮助...
iOS and Macos Performance Tuning: Cocoa, Cocoa Touch, Objective-C, and Swift (Developer's Library) by Marcel Weiher English | 3 Mar. 2017 | ISBN: 0321842847 | 400 Pages | EPUB/PDF (conv) | 42.64 MB ...
一个功能强大使用简单的macos管理工具,Apple Remote Desktop 是专为Mac OS X而打造的远程桌面管理系统,拥有50多种新功能,在软件分发、资源管理和远程协助等方面表现更强。