连接校内 WiFi 后自动连接 VPN 实践一二

自动化万岁~

所以问题是这样的, 部分可能类似于我这种不用 Dr.COM 上网而用各种 VPN 的同学经常希望局势能更乐观美好一些, 比如电脑开机自动连上 WiFi 之后能够顺道把 VPN 什么的也连上. 看似只省了一部操作, 其实省下了在诸多开机自动启动的程序上重新登录之类的操作. 关键是, 爽~

所以这里结合自己的经验介绍两种方法. 因为用的英文系统, 对应的中文名称就凭感觉啦.

1. Task Scheduler

打开 Task Scheduler, 左侧可以看到目录, 随便找一级看着顺眼的右键新建任务.

General 选项卡中填上任务名称, 比如 ConnectVPN, 下方选择 Run w (这个其实我是凭感觉选的, 你们随意, 总之好用).

Trigger 选项卡中新建一个 trigger, Begin the task 选择 On an event, 下面出现的两个下拉菜单和文本框依次选择和填写:

Microsoft-Windows-WLAN-AutoConfig/Operational
WLAN-AutoConfig
8001

确认继续. 然后在 Actions 选项卡中添加一个 Action, 不过在此之前先在电脑上比较宜人的位置新建一个 js 文件 (比如 connect-vpn.js), 内容如下 (其中的中括号是要一起替换掉的, 在进行下一步之前, 你可以先断开 VPN, 双击运行脚本看看能不能成功连上).

var shell = new ActiveXObject("WScript.Shell");
shell.run("rasdial [VPN连接名称] [用户名] [密码]");

那么就在新建的这个 Action 中选择刚刚创建的这个 js 脚本文件, 确认继续.

切换到 Condition 选项卡, 取消连接电源才执行任务的选项. 再往下有个选项可以选择依赖的网络连接, 可以试试, 我没弄过… 因为有更棒 (对我来说) 的方法.

至此基本搞定, 最后还有个 Settings 选项卡大家根据自己胃口设置啦. 确定保存, 会要求输入密码. 现在连接一个 WiFi, 就会自己连 VPN 啦~ 当然, js 脚本还可以做很多事情, 这里只是以 VPN 为例. 或者也可以不用 js, 自己随意~

1.1 Task Scheduler with Custom Trigger

但是只想在连接到某几个无线网络的时候连 VPN 肿么办? 上面提到一个我没试过的方法, 不过不尽完美, 因为换个地方, 即便是同样的 SSID, 可能也没法连了 (我 YY 的, 具体请自己测试)… 加上楼主的 WiFi 源主要有两个, 寝室自搭的 WiFi 和学校的. 这个时候就可以自定义 Trigger 啦.

回到 Trigger 选项卡, 选中刚刚新建的 Trigger 编辑, 类型由 Basic 改为 Custom, 然后 Add Event Filter. 在打开的对话框中切换到 XML 选项卡, 并且勾选 Edit query manually. 会有警告说再也回不去了, 好马不吃回头草~

<QueryList>
    <Query Id="0" Path="Microsoft-Windows-WLAN-AutoConfig/Operational">
        <Select Path="Microsoft-Windows-WLAN-AutoConfig/Operational">*[System[(Level=4 or Level=0) and (EventID=8001)]] and *[EventData[(Data[@Name='SSID']='CQUNET' or Data[@Name='SSID']='VILIC-C1539')]]</Select>
    </Query>
</QueryList>

贴上如上代码, 这里 CQUNET 和 VILIC-C1539 是我常用的两个 WiFi 的 SSID, 请更改为自己的. 里面那个 or 很明显吧~ 如果只需要一个的话就删掉后一个, 还有 Data 前后的圆括号. 如果还想要! 还想要就加!

保存搞定~

2. Intel 网卡驱动自带的功能.

装驱动的时候装一下完整包, 貌似精简包里没这个. 右键已经连上的 WiFi 连接查看属性, 在 Connection 选项卡中看有没有一个叫 Enable Intel connection settings 的选项, 没有就不用继续了 (或者考虑装驱动). 勾选后配置.

然后瞬间发现有一项可以改 MAC 有没有! 原来怎么就没有发现!

不过这里要改的是 Application Auto Launch, 勾选上之后要选中一个程序. 可以是 bat, 可以是 exe 什么的… 但是不能是 js. 于是桑心了. bat 当然还是很好用的, 不过黑框框一闪实在过不了我完美主义这关, 于是 C++ 写个小程序来拨号好了 (C# 可能更方便, 当时脑抽就用 C++ 了).

因为我 C++ 不好, 就不献丑了, 你们这些地球人用 bat 吧.

然后,,, 就没有然后了. 祝大家自动连接愉快~

大学寝室等通用网络共享方式 (视情况需交换机/路由)

刚进大学的时候, 还可用使用Connectify, 不过随着这家伙的普及, 也很快被Dr.COM封杀了. 后来一直使用的是通过无线路由中转, 然后在其中一台电脑上架设代理来实现共享网络. 虽然前后遇到过一些升级, 但经过调整总算是还能正常使用, 下面就介绍下具体的方式和所需要的软件.

首先需要选定一台主机, 用来登录相关账号, 比如我们的是Dr.COM, 需要一款代理软件, 推荐Privoxy. 这里需要说明的是, 可能有些同学联网的客户端会进行代理软件检测, 或许Privoxy不能幸免, 但只要稍作修改即可. 绝大多数检测代理是通过关键字, 比如这里的Privoxy就是Dr.COM的一个关键字. 所以只要改掉这个关键字就好. 如果你懂得一点编程知识, 可以自己下载源码, 在源码中全局替换之后进行编译. 不过Privoxy编译Windows版本还比较麻烦, 所以不推荐这种方式. 这时需要一个可以编辑字节文件的软件, 比如010 Editor. 使用010 Editor, 查找并替换Privoxy主程序中所有的 “Privoxy” 字符串为另一个长度相等的字符串. 比如我改的是 “PcgPrvx”. 当然如果使用其他专门用于编辑这些资源的编辑器, 可以不用一定长度相等, 但这里为了保证没其他问题, 取相同长度.

改好Privoxy程序之后, 需要修改其配置文件, 一般为config.txt, 内容可以全部删除掉, 只写一行, 9257这里是代理端口:

listen-address :9257

当然如果你有耐心看都有哪些设置自然最好了. 更多信息官网上也有提供.

之后就是进行防火墙相关的设置了, 这个就不细说啦. 完成后, 这台电脑就成了一个代理服务器啦. 不过还需要别的电脑能连接到它, 才能真正用起来… 我们学校的情况是, 同一台交换机下的设备无法互相访问, 所以在完成上面的设置之后, 其他交换机上的同学已经可以通过我的IP和代理端口访问网络, 但同一台交换机下的同学, 比如寝室里的, 则不行. 这个时候就需要一台路由器或者自己的交换机啦. 话说买个无线的路由/交换机还是很方便的, 比插网线舒服多了… 将需要共享的设备连接到同一个路由或者交换机下, 然后则可以通过相应的IP和端口访问网络了. 至于两台设备是否可以正常互相访问, 可以互ping IP看看.

还有一个问题, 比如也是我们学校, 不允许使用自己的路由器, Dr.COM会检测, 如果发现则断开网络连接, 这个时候则必须使用交换机. 多数路由器都是可以当做交换机使用的, 具体设置请自行搜索. 🙂

最后再推荐ProxyCap作为共享网络的客户端, 可以把全部程序添加到代理中, 免得麻烦. 否则像QQ等, 还需要更改代理设置, 有些软件甚至根本不支持代理设置… 另外使用ProxyCap之后, 自己的科学上网软件也工作正常, 其实这个才是用它的最大动力啦…