`
vlinux
  • 浏览: 53687 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

MacOS 使用vpnc连接Cisco VPN

阅读更多

大名鼎鼎的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

    标题中的“Windows远程桌面连接工具 for MacOS”是指的在苹果Mac操作系统上使用的应用程序,它允许用户从Mac设备上远程访问Windows计算机。这个工具是解决跨平台操作需求的一个关键方案,尤其是对于那些工作环境混用...

    华为 ssl 安全客户端 macos版本

    macos使用,seco client macosx-7.0.2.26

    cisco secure client 5.0.01242(macos)

    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使用的中文字体

    总的来说,MacOS为用户提供了丰富的中文字体资源和便捷的管理工具,无论是日常使用还是专业设计,都能找到合适的字体方案。通过对字体的深入理解和有效利用,我们可以提升工作和生活的视觉体验,让文字更好地服务于...

    MACOS苹果电脑系统新手入门指南教程1.pdf

    MACOS 苹果电脑系统新手入门指南教程 本教程旨在帮助新入门的 Mac 用户快速了解和掌握 MAC OS 苹果电脑系统的使用方法和技巧。通过本教程,您将了解 MAC OS 的基本操作、硬件配置、系统设置、软件安装等方面的知识...

    cisco anyconnect macos 版本

    可以用来企业之间建立通讯

    macos连接cx_oracle instantclient-basiclite-macos.x64-19.3.0.0.0dbru.zip

    本文将详细介绍如何在MacOS上使用Python的cx_Oracle库通过这个客户端连接到Oracle数据库。 首先,Oracle Instant Client是Oracle公司提供的一个小型客户端,它包含了与Oracle数据库通信所需的关键组件,如oci.dll、...

    MeshCommander.dmg macOS 专用 Intel AMT控制台连接工具

    Intel AMT 管理控制台工具,配置好AMT后安装后链接即可使用。 此版本在macOS 15.1 M3机型测试通过

    iNode智能客户端MacOS版 iNodeClient for MacOS 7.3(E0538)支持Portal认证方式,内附安装指导手册

    2019年7月最新iNode智能客户端MacOS版iNodeClient for MacOS_7.3(E0538)支持Portal认证方式,支持Mac OS 10.9至10.14。内附安装指导手册,iNodeClient_MacOS_7.3 (E0538)Portal.zip

    MacOS蓝牙重连脚本

    标题中的“MacOS蓝牙重连脚本”是指一个专门针对苹果操作系统(MacOS)的脚本程序,设计用于解决在MacOS系统从休眠状态唤醒后蓝牙设备无法自动重新连接的问题。这种问题可能是由于系统在睡眠期间未正确管理蓝牙连接...

    macOS.Catalina.Patcher1.4.7

    描述中提到的“如果你的电脑支持High Sierra,要先在线升级到10.13”,这表明在使用该补丁前,用户需要确保自己的Mac电脑当前运行的是macOS High Sierra 10.13系统。这是必要的前提条件,因为不是所有Mac设备都能...

    H3C-iNode-MacOS-7.3-E0630

    H3C-iNode-MacOS-7.3-E0630,支持M1芯片的macos使用H3C的inode连接SSL VPN。

    xray macos版,github上太慢了

    xray macos版,github上太慢了xray macos版,github上太慢了xray macos版,github上太慢了xray macos版,github上太慢了xray macos版,github上太慢了xray macos版,github上太慢了xray macos版,github上太慢了xray...

    MacOS在x86PC上的安装方法

    安装 MacOS 的步骤包括:将下载的 Tiger-x86.tar.bz2 解压,删除原来所有的分区,使用 dd 工具将镜像文件写入硬盘,重启系统,将已经装入 MacOS 的硬盘设为主盘。 7. 安装 MacOS后有什么优缺? 安装 MacOS 后,系统...

    macOs10.11.cdr macOs10.12.cdr macOs10.13.cdr macOs10.14.cdr四个版本

    此资源包括macOs 10.11.cdr,macOs 10.12.cdr,macOs 10.13.cdr,macOs 10.14.cdr 懒人安装

    macOS Catalina Patcher 2022最新版

    macOS Catalina Patcher 是一个工具,可以帮助用户将其旧版 macOS 系统升级到 macOS Catalina 操作系统。...需要注意的是,使用这样的工具可能会涉及到一些风险,所以在使用前建议用户充分了解相关信息并谨慎操作。

    Python-tcpkiller用于在Linux或macOS上关闭一个TCP连接

    【Python-tcpkiller用于在Linux或macOS上关闭一个TCP连接】 Python-tcpkiller是一个实用的工具,专门设计用于在Linux或macOS操作系统上中断特定的TCP连接。它利用了低级别的socket接口和操作系统的网络控制功能,...

    Cisco Secure Client 5.1.0.136

    Cisco Secure Client 5.1.0.136 For MAC OS

    H3C iNode(SSL) for macOS

    H3C iNode(SSL) 实现了这一功能,使得苹果用户能够方便地在macOS系统上接入公司的SSL虚拟私有网络(SSL VPN)。 该安装包特别指出“非Windows”,这意味着它不是为微软的Windows操作系统设计的,而是专门为macOS...

    macos14镜像下载

    macos14镜像下载

Global site tag (gtag.js) - Google Analytics