返回信息流新电脑安装了Vista SP1 zh-cn版。官方的那个教育网直通车(公网版)0.92在XP下一切正常,但是在Vista SP1下压根不灵光。不得已,只能手动配置VPN,连接到 lnscnc_bj.vip.edu.cn 之后,再通过脚本更新本地路由表,以实现并行访问公网和教育网的目的。
现把脚本贴出来,仅供参考。
@echo off
rem Update the route after we connect to vip.edu
echo --------------------------------------------------------
echo 在使得本VPN生效之前,必须要注意如下事项:
echo 0.创建VPN连接时,使用Administrator帐号,关闭UAC,并且VPN连接应保存为“只由本账户使用”
echo 1.虚拟专用网之属性页,配置IPv4之高级属性,取消“在远程网络上使用默认网关”选项
echo 2.虚拟专用网之属性页,配置IPv4属性之DNS为“自动获得”
echo 3.PPP设置中,只启用“软件压缩”
echo 4.安全设置则启用“高级设置”,允许可选加密,允许PAP,CHAP,MS-CHAP v2
echo 5.启用PPTP VPN
echo 6.设置好wget.exe的路径
echo 7.通过下面的路由表更新,启用split tunneling
echo 8.在家庭网关的设置中要将本机IP地址置于DMZ区域中
echo --------------------------------------------------------
echo 更新教育网地址列表......
wget.exe http://www.vip.edu.cn/lnssetting/cernet.txt -O cernet.txt -o wget.log
echo 地址更新完毕!
echo ==============================================
echo 正在更新路由表........
rem rundll32.exe cmroute.dll,SetRoutes /Profile %PROFILE% /STATIC_FILE_NAME cernet.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME cernet.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
cmdl32.exe /VPN %PROFILE%
rem 执行cmroute.dll更新路由后,因为没有设置“在远程网络上使用默认网关”选项,因此会丢失默认路由,下面一行加上默认路由
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
echo 路由表更新完毕!
pause
route print
pause
这是一条镜像帖。来源:北邮人论坛 / windows / #86549同步于 2009/1/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Windows机器人发帖
Vista SP1 + 教育网直通车公网版
vi
2009/1/17镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 vi (威艾) 的大作中提到: 】
: 新电脑安装了Vista SP1 zh-cn版。官方的那个教育网直通车(公网版)0.92在XP下一切正常,但是在Vista SP1下压根不灵光。不得已,只能手动配置VPN,连接到 lnscnc_bj.vip.edu.cn 之后,再通过脚本更新本地路由表,以实现并行访问公网和教育网的目的。
: 现把脚本贴出来,仅供参考。
: @echo off
: ...................
此前发布的批处理脚本在运行时有问题,因此用Windows的宿主脚本重写了一个,这个确认可以在vista上正确处理路由及DNS问题了!
这个脚本是给教育网直通车公网版(在校外访问教育网)用的,如果你是在校内使用直通车访问公网,那么路由处理部分必须经过修改!
附件是脚本以及wget.exe,此外还有一个WinHelp32的补丁,用于阅读wget.hlp
VPN拨号成功之后,执行 Setup.cmd 即可。或者直接在命令行执行 cscript.exe SetupVPN.wsf 也可。
以下是 SetupVPN.wsf 内容
<job id="main">
<script language="VBScript">
'vbYes 6
'vbNo 7
Public Function infobox(msg, title)
Dim choose
choose = msgbox( msg, vbYesNo, title)
infobox = choose
End Function
</script>
<script language="JScript">
var DEBUG=0;
var msg="在使得本脚本生效之前,必须要注意如下事项:\n"+
"0.这个脚本是给Vista+教育网直通车(公网版)使用的,对于XP无效!对于其他直通车版本,需要做一些修改!\n"+
"1.虚拟专用网之属性页,配置IPv4之高级属性,取消“在远程网络上使用默认网关”选项\n"+
"2.虚拟专用网之属性页,配置IPv4属性之DNS为“自动获得”\n"+
"3.PPP设置中,只启用“软件压缩”\n"+
"4.安全设置则启用“高级设置”,允许可选加密,允许PAP,CHAP,MS-CHAP v2\n"+
"5.启用PPTP VPN\n"+
"6.设置好wget.exe的路径,或将wget.exe与本脚本放在同一目录下\n"+
"7.请确认您的VPN连接名称是\"EDU\",否则会出现错误!\n"+
"8.当然,最重要的是,你必须得已经连接到教育网直通车了!!!\n"+
"按确认键继续,按取消键退出!";
var truthBeTold = infobox(msg, "请确认");
if (truthBeTold==7)
{
WScript.Quit(1);
}
WScript.Echo("==================================================");
WScript.Echo("开始更新路由表:");
//定义变量
//VPN接口的名字,用于获取其拨号后的IP地址
var VPN_IF_NAME="EDU";
//生成的临时批处理文件,用于更新路由表
var UR_FILENAME="UpdateRoute.cmd";
//构造各种需要执行的指令
var command;
var WshShell = WScript.CreateObject("WScript.Shell");
//var WshShell = new ActiveXObject("WScript.Shell");
//==================================================
WScript.Echo("从直通车网站中获取教育网地址列表...");
command="wget.exe http://www.vip.edu.cn/lnssetting/cernet.txt -O cernet.txt -o wget.log";
if (DEBUG==1)
{
WScript.Echo(command);
}
var oExec = WshShell.Exec(command);
WScript.Echo("地址列表已经下载。");
//==================================================
WScript.Echo("正在获取VPN的IP地址...");
command="netsh.exe interface ipv4 show addresses \""+VPN_IF_NAME+"\"";
if (DEBUG==1)
{
WScript.Echo(command);
}
oExec = WshShell.Exec(command);
/* netsh返回的结果格式如下,需要对此字串进行分析
接口 "EDU" 的配置
DHCP 已启用: 否
IP 地址: 58.207.112.7
子网前缀: 58.207.112.7/32 (掩码 255.255.255.255)
InterfaceMetric: 20
*/
oExec.StdOut.SkipLine();
oExec.StdOut.SkipLine();
oExec.StdOut.SkipLine(); //跳过3行,定位到“IP 地址”这一行
var line=oExec.StdOut.ReadLine();
if (DEBUG==1)
{
WScript.Echo("含有IP地址的行内容:"+line);
}
//设置查找IP地址的正则表达式,0-9以及dot字符,至少出现7次,忽略大小写
var re= new RegExp("[0-9.]{7,}","i");
var index=line.search(re);
var VPN_IP_Address=line.substr(index);
WScript.Echo("VPN的IP地址是:"+VPN_IP_Address);
//===================================================
//将地址列表转换为可执行的批处理文件,用于更新路由
WScript.Echo("开始更新路由表...");
var fso, fread, fwrite, re1,re2, temp, la;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fread = fso.OpenTextFile("cernet.txt", ForReading);
fwrite = fso.OpenTextFile(UR_FILENAME, ForWriting, true);
re1=new RegExp("REMOVE_GATEWAY", "i"); //cernet.txt最后一行,不要了
re2=new RegExp("default METRIC default IF default", "i"); //查找网关及跳跃点数关键词,将它替换为VPN地址
while (!fread.AtEndOfStream)
{
la= fread.ReadLine( );
if(la.search(re1) != -1)
break;
lb=la.replace(re2, VPN_IP_Address);
command="ROUTE.exe "+lb;
if (DEBUG==1)
{
WScript.Echo("路由更新指令是:"+command);
}
fwrite.WriteLine(command);
}
fread.Close( );
fwrite.Close( );
WshShell.Run("cmd.exe /C "+UR_FILENAME, 1);
WScript.Echo("路由表更新完毕!");
</script>
</job>
你用的是教育网到公网的直通车吧?我用的是相反的,只支持PPTP拨号,而且经常挂掉。
【 在 lxpboy (迷茫飞鸟) 的大作中提到: 】
: 我就是V+SP1,可以用哇,很正常……