首页 生活随笔

公司网络比较慢,家里网络比较快而且有本地DNS和内外网分流,可以让公司电脑访问外网时候走家里的宽带。

用softether的L2TP实现了这个需求,但是公司电脑windows10不支持断线重连,于是需要自己写一个。

这个脚本实现的功能为:让公司电脑开机自动通过L2TP连接家里内网,并在L2TP断开连接后定时进行重拨,实际使用时需按照具体需求进行修改。

新建一个文本文档,内容如下

title 自动连接网络

#等待系统网络服务加载完成,避免网络未加载即运行导致的报错
TIMEOUT /T 20
# 开机后连接家里内网
rasdial L2TP连接名 用户名 密码
# 连接成功后微信通知我(这里本应该有个判定,我懒得写了)
curl -I https://sc.ftqq.com/[Api key].send?text=WrokPCReboot
# 此处延时避免重拨检测异常
TIMEOUT /T 60

:begin
# 检测内网连接是否正常(ping 本地DNS服务器)
ping -n 2 192.168.60.120 >nul
# 如果ping不通,则重新拨号
if "%errorlevel%"=="0" (cls & echo 连接正常) else (echo 内网不正常,正在重连 & goto redial)
# 避免连续检测
TIMEOUT /T 30
# 循环
goto begin

:redial
# 此处延时为了等待宿舍OP系统将PPPOE新接口的IP解析到域名上
TIMEOUT /T 600
# 重拨
rasdial L2TP连接名 用户名 密码
# 微信通知
curl -I https://sc.ftqq.com/[Api key].send?text=WrokPCRedial
# 此处延时避免重拨检测异常
TIMEOUT /T 30
# 继续监测
goto begin

脚本随便找个地方放。
然后新建一个vbs,用于隐藏脚本执行时的UI界面:

CreateObject("WScript.Shell").Run "cmd /c 脚本的路径",0

然后把vbs脚本放在自启目录下

C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

[purpleacc open="open" title="总结"]开机VBS自启,VBS调用隐身的CMD,CMD自动联网并循环监测,监测断网则自动重连,重连后继续进行循环监测。[/purpleacc]

[blueacc open="open" title="附注"]
1.如果你的脚本中含有路由设置这种需要获取管理员权限的命令,你可以使用BatToExeConverter把脚本转成exe,然后用Compatibility Administrator设置下UAC白名单避免开机就弹UAC。
2.如果你也是公司电脑访问家里内网,可以用route add -p添加永久路由,保证访问公司内网时走公司内部网络。[/blueacc]




文章评论