tomato+openvpn+路由表+自动检测重启openvpn进程

自从用上asus的RT-N66U后,原来的Buffalo WHR-G54S就一直闲置下来了。在购买linode的vps,并设置好openvpn后,就想把它充分利用起来,作为自动翻专用路由器。本来想用openwrt+vpnc的,结果由于最新的openwrt是2.6的内核,刷上去后16M内存直接耗光导致自动重启,无奈只好返回tomato用openvpn。由于WHR-G54S只有4M FLASH,16M RAM,而且没有usb口,安装optware是不可能了。

我刷的版本是Tomato RAF Firmware v1.28.8525 _RAF ND VPN,2.4的内核对WHR-G54S这样的老设备来说,比2.6内核节省资源,并且更稳定,此版本已经内置openvpn客户端。

image

在Basic-Network中做好相关设置后,将WHR-G54S的Wan口与RT-N66U的Lan口用网线连接

image

到VPN Tunneling-Client中设置如图所示

image

image

image

上篇设置好openvpn服务器端并制作好客户端ca后,将得到的

ca.crt client1.crt client1.key

<p>
  <tt>用文本编辑器(如记事本)打开,将ca.crt中的内容贴到Certificate Authority,将client1.crt的内容贴到Client Certificate,将client1.key的内容贴到Client Key中,保存后点击Start Now按钮启动openvpn客户端。</tt>
</p>

<p>
  <tt>至此,路由器上所有的流量都会走openvpn,这对于国内的网站来说不但速度慢,而且耗费vps的流量。这就需要继续设置路由表,让国内的网站走直连,国外的网站走vpn。</tt>
</p>

<p>
  由于前面说了,WHR-G54S没有usb口,需要到Administration-JFFS中启用jffs来存放脚本。<a href="http://www.wikai.info/wp-content/uploads/2012/08/image12.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.wikai.info/wp-content/uploads/2012/08/image_thumb12.png" width="644" height="281" /></a>
</p>

<p>
  routetable.sh脚本内容为
</p>

<div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:69686301-8e70-423a-9ec1-daa52161d488" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
  <pre style=" width: 598px; height: 500px;background-color:#F0F0F0;overflow: hidden;"><div>

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/

–>

#!/bin/sh gw=$(nvram get wan_gateway)

ip -batch - <<EOF

route add 1.0.1.0/24 via $gw metric 5

route add 1.0.2.0/23 via $gw metric 5

route add 1.0.8.0/21 via $gw metric 5

route add 1.0.32.0/19 via $gw metric 5

route add 1.1.0.0/24 via $gw metric 5

route add 1.1.2.0/23 via $gw metric 5

route add 1.1.4.0/22 via $gw metric 5

route add 1.1.8.0/21 via $gw metric 5 . . .

  <p>
    <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div> 

    <p>
      将routertable.sh和routedetect.sh保存到jffs中,到Administration-Scripts-Wanup中添加如下内容,
    </p>

    <p>
      <a href="http://www.wikai.info/wp-content/uploads/2012/08/image6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.wikai.info/wp-content/uploads/2012/08/image_thumb6.png" width="388" height="125" /></a>
    </p>

    <p>
      然后到Administration-Scheduler中设置相应的计划任务
    </p>

    <p>
      <a href="http://www.wikai.info/wp-content/uploads/2012/08/image13.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://www.wikai.info/wp-content/uploads/2012/08/image_thumb13.png" width="644" height="237" /></a>
    </p>

    <p>
      其作用是每3分钟检测一次openvpn,如果断流则重启openvpn客户端进程,并将重启时间写入系统日志,便于日后跟踪openvpn的运行情况。
    </p>

    <p>
      所有设置完成后,保存并重启路由器。现在所有连接到WHR-G54S的设备都可以按需自动翻了。
    </p>

    <p>
      tips:
    </p>

    <ul>
      <li>
        由于routetable脚本内容较多,有147892字节,而WHR-G54S的jffs只有区区640KB,为了节省jffs空间,可以用gzexe对routetable脚本进行压缩。
      </li>
    </ul>

    <div id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:7ae5e13a-9729-4fc4-abe0-1a87988053df" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px">
      <pre style=" width: 598px; height: 20px;background-color:#F0F0F0;overflow: hidden;"><div>

<!–

Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/

–>

gzexe routetable.sh