不得不说Mac下VPN连接的创建和管理非常方便、简单。记得之前在Fedora下为了配置一个能够使用PPTP的VPN连接,费了九牛二虎之力,Mac下,很轻松的就搞定了。言归正传,首先进入Mac的“网络配置” Network Preferences。可以通过状态栏的网络图表进入,也可以从系统配置中选择网络 Network进入。
进入网络后,看到列表下方有个加减号,用来添加和删除网络连接。
点击加号后可以创建一个新的连接,选择VPN,VPN下有三种类型,分别是:PPTP、Cisco IPSec、L2TP Over IPSec。可以根据自己的情况选择适用的类型,并且可以为每一个连接起一个名字,方便记忆。
使用Cisco IPSec方式
适用Cisco IPSec的方式创建过程和PPTP大同小异,也是在网络配置面板中点击加号进行创建。在配置的时候与PPTP有些不同:
在服务器地址 Server Address中填写公司VPN的地址;
在用户名 Account Name 中填写用户名;
在密码 Password 这一栏中留空,因为每次需要输入SecurID的动态密码;
然后点击授权设置 Authentication Settings
在 共享密钥 Shared Secret 中填入从公司网管那里得到的共享密钥();
在 组名 Group Name 中填写 自己VPN所属的组名;
关于共享密钥,有些公司会以明文的形式告知,有的会用PGP的方式发送一个加密的密码,需要使用自己的私钥解密后使用。这个过程大多数都会有文档说明,这里就不过多阐述了。流程也可以参考之前的一篇文章:
SecurID卡小贴士:SecurID卡坚固小巧,用起来也很方便,只是千万要小心别丢失了,因为可以是要花大洋的。
----------
Mac下配置基于SecurID的Cisco IPSec VPN全攻略
如果选用的是调用配置文件的方式,则你需要一个配置文件
配置文件的说明:
vpnc_conf是vpnc的配置文件,default对应的是default.conf
vpn_ip则是需要指定路由的生产ip地址
配置文件保存为default.properties
脚本文件保存为vpnmac.sh
脚本命令说明
连接VPN(配置文件方式):sh vpnmac.sh default.properties
----------
Mac下配置基于SecurID的Cisco IPSec VPN全攻略
大名鼎鼎的vpnc我就不用介绍了,虽然cisco有提供mac版本的客户端,但是在Linux下我就没装成功过。
现在分享一下我在Mac下使用vpnc连接CsicoVPN的心得,希望能对各个Mac用户的工作有所帮助。
操作系统的版本是:Mac OS X 10.6.2
需要安装的软件:
现在分享一下我在Mac下使用vpnc连接CsicoVPN的心得,希望能对各个Mac用户的工作有所帮助。
操作系统的版本是:Mac OS X 10.6.2
需要安装的软件:
- MacPorts
http://www.macports.org/
tuntaposx
http://tuntaposx.sourceforge.net/
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写的脚本,可以解决这个问题:
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
sh vpnmac
from http://www.iteye.com/topic/593613