快速批量添加路由表的小方法

2012年5月31日 | 分类: 翻墙相关 | 标签: , ,
        有些时候需要向windows系统中添加路由表,只有一两条时在命令行下手动输入“route add”命令即可,数量稍多时编辑个批处理也好解决。但若有几千条以上时,添加路由的批处理会运行的较慢,CPU一直在100%高悬,风扇呼呼作响,配置 一般点的笔记本电脑运行个十分、八分钟都有可能。
        若网络环境稳定、网关不变,倒也好办,执行“route -p add”命令添加永久路由表,就不必每次重启机都忍受漫长的添加过程了。
        像是笔记本电脑,若经常变换网络环境,家里、办公室、出差…上述办法就显得不那么合适了。这时可以采用如下办法:
       方法一:调用cmroute.dll,快速添加路由表。新建一个文件夹,准备如下文件:
       1、cmroute.dll
       这个动态连接库,系统中没有的话,可以从网上自行搜索下载,猛击这里也提供下载(整个文件夹)。
       2、addroutes.bat
      建立批处理文件内容如下(引号中),用于调用cmroute.dll从而快速添加路由表:
echo 正在添加路由表……
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME addchnroutes.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
       3、addchnroutes.txt
      建立txt文件,内含路由表信息,上面的批处理调用这个txt文件,格式如下(引号中):
add 1.0.1.0 mask 255.255.255.0 default METRIC default IF default
       4、delroutes.bat
      上面添加的都是活动路由,重启之后即消失。若要立即删除上述路由则建立:
       delroutes.bat,内容如下(引号中)
echo 正在删除路由表……
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME delchnroutes.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
跟上面添加路由的批处理格式完全一样,不同之处在于读取的txt文件不同。
        5、delchnroutes.txt
        删除路由表批处理读取的txt文件,ip地址、子网掩码跟添加的一样,add换成delete而已,如下(引号中)
delete 1.0.1.0 mask 255.255.255.0 default METRIC default IF default”     
       方法二:使用SetRoute软件
        一个流传于网上的小程序,估计为复旦学生开发,本用于教育网环境。但具有备份、恢复路由表的功能,可以在运行于常用网络环境时,比如网关为 192.168.1.1、192.168.0.1时等等,先运行一下诸如chnroutes的添加路由表批处理,慢就慢这一回,然会使用SetRoute 的备份路由表功能备份为一个名为19216801的rbk文件。
       等下回再回到这个网络环境时,使用SetRoute的恢复路由表功能恢复名为19216801的rbk文件进系统,实现快速添加路由表。
       这个方法没有怎么测试,估计可行。软件可以Google之,也可这里下载。
“方法一”打包备用下载:http://sharesend.com/fa7rg
“方法二”软件备用下载:http://sharesend.com/fo2s0
  1. L.Wen
    2012年8月3日00:13

    iGFW :你使用的什么VPN?

    自带的。我是WIN7系统 cmroute.dll找到一个34KB的。

    • iGFW
      2012年8月3日15:21

      那应该没问题的,我这测试没问题。
      你是怎么联网的?

      • L.Wen
        2012年8月3日17:57

        ADSL+路由器 但是添加的时候CPU占用还是100%

        • iGFW
          2012年8月3日19:17

          这个100%时间很多,只要几秒。
          路由器上应该是没有问题的呀。应该在vpn连接前执行。

          • L.Wen
            2012年8月3日19:26

            DONT_REQUIRE_URL 直接在BAT删掉就行了吗?貌似取消这个VPN速度回变慢。但是CPU不会占用到100%。
            add -p 是不是永久路由?add -p 1.0.1.0 mask 255.255.255.0 default METRIC default IF default

          • iGFW
            2012年8月3日20:01

            -p是永久路由的命令

          • L.Wen
            2012年8月3日20:21

            add -p 1.0.1.0 mask 255.255.255.0 default METRIC default IF default 吗?

          • iGFW
            2012年8月3日20:30

            道理上通,你试试

          • L.Wen
            2012年8月3日23:18

            我怎么感觉改了 看视频速度回变慢。

          • iGFW
            2012年8月4日11:20

            这个不清楚,你可以问问原文作者,这个他比较清楚吧。

          • @MGjiee
            2012年8月7日17:12

            今天失效了 百度贴吧 什么的都走VPN 昨天还正常。

          • iGFW
            2012年8月8日06:35

            方法没问题,你重启下电脑,在vpn连接前执行。

  2. 2012年6月1日10:16

    学习了

  3. will
    2012年6月1日09:34

    经测试pppoe拨号连接(windows7、一般的电信宽带,tp-link宽带猫),也可以添加成功,稍微比路由下慢几秒。

  4. will
    2012年5月31日13:54

    欢迎转载、扩散,建议下chnroutes项目,windows系统(Mac、Linux不懂)的路由表文件也改成这种设置办法就好了,比批处理快不少。
    “DONT_REQUIRE_URL”可以不要。
    调用微软cmroute.dlld动态连接库的办法,添加、删除路由信息很快。很多商业vpn客户端都用这种办法,所谓“智能路由”,但都捂着不说,偶无意间发现这办法的。

    • starzp
      2012年5月31日16:20

      可以介绍下windows下具体该怎么操作吗?我试了好多次都不成功。
      开始执行addroutes.bat时,说缺少配置。按照网上的方法,将addroutes.bat复制到sysytem32文件夹下。然后以管理员权限执行,只是跳出来闪了一下就没了,vpn连接后测试,还是全局的美国地址。
      分别在连接vpn前,连接vpn之后,执行这个程序都没 成功。openvpn,pptp也都测试了。请问,问题出在哪里?
      技术小白,所以,也就折腾到这一步了。

      • iGFW
        2012年5月31日17:23

        下载文中的chnroutes后双击addroutes.bat等一段时间就好了,然后再连VPN

        • L.Wen
          2012年8月2日22:33

          朋友 能更新下这个么?我用了这个虽然能够分流了 但是所有国外网站都没办法访问。

          • iGFW
            2012年8月2日23:17

            你使用的什么VPN?

        • L.Wen
          2012年8月3日02:37

          对了可以添加永久路由吗?添加永久路由有什么影响吗?

          • iGFW
            2012年8月3日15:23

            可以添加。
            如果你的IP是固定的影响不大,如果常变动可能导致失效或不能上网。

          • L.Wen
            2012年8月3日18:00

            DONT_REQUIRE_URL 直接在BAT删掉就行了吗?貌似取消这个VPN速度回变慢。但是CPU不会占用到100%

    • iGFW
      2012年5月31日17:21

      感谢支持

  5. lijinyu
    2012年5月31日11:06

    我现在用的就是这种方法,虽然我不知道它的原理。