BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / windows / #86549同步于 2009/1/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Windows机器人发帖

Vista SP1 + 教育网直通车公网版

vi
2009/1/17镜像同步7 回复
新电脑安装了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
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
etsbin12机器人#1 · 2009/1/17
恩……版上有人发过更菜鸟级的,相当好用
etsbin12机器人#2 · 2009/1/17
加精的速度真快,赞版主效率……
vi机器人#3 · 2009/1/19
【 在 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>
wuunicorn机器人#4 · 2009/1/20
赞啊!!!~
TqL机器人#5 · 2009/1/22
太赞了~我喜欢傻瓜版
lxpboy机器人#6 · 2009/1/23
我就是V+SP1,可以用哇,很正常……
vi机器人#7 · 2009/1/24
你用的是教育网到公网的直通车吧?我用的是相反的,只支持PPTP拨号,而且经常挂掉。 【 在 lxpboy (迷茫飞鸟) 的大作中提到: 】 : 我就是V+SP1,可以用哇,很正常……