OSX下VPN自动拨号

2016-11-26 11:27:14
网络安全和信息化 2016年6期
关键词:命令行系统配置脚本

引言:VPN是一种在公用网络上建立专用网络,进行加密通讯的网络技术。由于我国的互联网管理策略,正常情况下一些互联网站点是无法访问的,但是在工作和生活中又常常的需要访问这些网站,因此很多情况下选择一款VPN服务是解决此类问题的最简单的方法。

目前,各种主流的操作系统均提供了完善的VPN接入客户端的软件,一般只要按照向导的提示,配置好VPN服务器,账户密码以及VPN连接类型等参数就能方便的接入和使用了。在OSX操作系统中也提供了类似的功能,但是自OSX 10.9启用“钥匙链”功能后,系统配置的密码都是保存在“钥匙链”中,因此VPN配置中的密码也采用同样的处理方式。这给喜欢DIY的朋友们带来了一个小问题,那就是无法使用自动化工具动态修改VPN配置中的密码。而笔者长期使用某个免费试用VPN服务,该服务商每小时会更新一次访问密码并通过Web页面发布。为了方便的使用,笔者需要找到一种方法能自动的获取密码并实现VPN的连接。否则每次在OSX的VPN配置环境中修改密码比较繁琐,且每隔一个小时就需要设置一下。

笔者通过Google发现在OSX提供了一个命令行工具scutil,通过这个工具结合OSX强大的bash脚本可以方便的实现各种自定义的VPN连接控制。

scutil介绍

scutil工具是OSX提供的命令行系统配置工具,能够实现命令行环境下实现各种系统配置参数的读写操作,本文仅使用其中对VPN连接的管理和配置功能,即--nc参数下的各种命令的使用。

命令行调用格式:

命令格式说明listlist列出当前所可用VPN连接statusstatus显示指定VPN服务连接状态showshow显示指定VPN服务的配置参数信息start start[--user user][--password pass word][--secret secret]启动指定的VPN服务,其中用户名,密码,密钥等参数为可选参数stop stop 停止指定VPN服务

笔者在OSX网络连接已经配置好名为“FreeVPN”的VPN网络连接,如果需要使用密码连接,只需要使用以下命令行就可以了。

scutil --nc start --pss word MyPassword

注意:由于字体印刷可能的问题,以上命令中所有的连字符都是双连字符

编写自动连接VPN脚本

OSX操作系统继承了Unix操作系统强大的脚本功能,通过bash脚本可以实现很多用户的自定义操作,此项功能一直受到程序员和DIY用户的欢迎。在笔者的使用场景中,由于需要每次从固定的网站上获取动态的VPN密码,并调用scutil命令实现VPN的自动接入,因此bash脚本是首选编程语言。

在OSX中内置了很多实用命令行工具,例如curl就是其中一款强大的利用URL进行文件传输访问的工具。通过以下的命令行可以读取http服务器上的数据。

curl -s http://free.vpn/password.txt

其中-s参数为隐藏连接过程中的不必要性能参数的显示。curl还有很多强大的功能,这类不一一介绍,具体方法可以参考官方网站,网址为https://curl.haxx.se/

结合 scutil和 curl,最简单的实现笔者功能脚本代码如下:

需要说明的是笔者使用的这个VPN服务提供的密码文件恰巧是纯文本文件,因此不需要进行任何额外的处理,实际上很多情况下是需要对数据进行规范化处理,去除不需要的干扰符号,可以使用正则表达式等工具来实现这方面的处理工作。

以上脚本仅仅满足了笔者的最基本的需求,实际上通过使用脚本功能,完全可以实现对VPN连接的更多控制,例如实现自动检测VPN状态,并自动进行连接,从而实现类似付费VPN所提供的服务。

猜你喜欢
命令行系统配置脚本
酒驾
安奇奇与小cool 龙(第二回)
针对不同空间的13套系统配置攻略 2020定制家庭影院组建推荐指南
Windows 10新版CMD更新
数据库系统shell脚本应用
电子测试(2018年14期)2018-09-26 06:04:24
快乐假期
中学生(2017年19期)2017-09-03 10:39:07
Linux系统下GRIB2格式GFS资料转为GRIB1格式的方法详解
计算机联锁系统配置软件设计与实现
基于IEC61850的可视化系统配置器的设计与实现
一种1000MW机组超速保护系统配置方案