适用于DD-WRT V24 SP1 的Auto DD VPN(PPTP+jffs)方案

基本设置过程是一样的 可能原来的那些脚本在V24上有点问题的 自己修正了下脚本
在pptp+jffs(如何初始化?)方案中 run.sh废弃 使用下面的方案设置代替run.sh
launch.sh

[bash]#!/bin/sh
#Update by ihipop @ 2011/12/1 21:29
#http://ihipop.info
#This Version is tested and Passed @ dd-wrt.v24-13064_VINT_mega.bin (SP1 Build10020) on Linksys WRT54GS v2.1
VPNUP='vpnup.sh'
VPNDOWN='vpndown.sh'
VPNLOG='/tmp/autoddvpn.log'
#PPTPSRVSUB=$(nvram get pptpd_client_srvsub)
DLDIR='http://autoddvpn.googlecode.com/svn/trunk/'
#CRONJOBS="* * * * * root /bin/sh /tmp/check.sh >> /tmp/last_check.log"
PID=$$
INFO="[INFO#${PID}]"
DEBUG="[DEBUG#${PID}]"
IPUP="/etc/config/pptpd_client.ip-up"
IPDOWN="/etc/config/pptpd_client.ip-down"
WORKING="/jffs/pptp"

echo "$INFO $(date "+%d/%b/%Y:%H:%M:%S") log starts" >> $VPNLOG
echo "$INFO $(date "+%d/%b/%Y:%H:%M:%S") pptp+jffs mode" >> $VPNLOG

cd $WORKING
cp -f $IPUP ./
cp -f $IPDOWN ./

OLD_IPUP=$IPUP
OLD_IPDOWN=$IPDOWN
IPUP=$WORKING"/pptpd_client.ip-up"
IPDOWN=$WORKING"/pptpd_client.ip-down"

sed -ie "s#exit 0#${WORKING}/${VPNUP} pptp\nexit 0#g" $IPUP
echo "$INFO $(date "+%d/%b/%Y:%H:%M:%S") $IPUP modified" >> $VPNLOG
sed -ie "s#exit 0#${WORKING}/${VPNDOWN} pptp\nexit 0#g" $IPDOWN
echo "$INFO $(date "+%d/%b/%Y:%H:%M:%S") $IPDOWN modified" >> $VPNLOG

echo "$INFO $(date "+%d/%b/%Y:%H:%M:%S") Mounting Files" >> $VPNLOG
mount --bind $IPUP $OLD_IPUP
mount --bind $IPDOWN $OLD_IPDOWN
echo "$INFO $(date "+%d/%b/%Y:%H:%M:%S") ALL DONE. Let's wait for VPN being connected" >> $VPNLOG

#FOR TESTING Purpose,Do not Ucomment This Below
#umount $OLD_IPUP
#umount $OLD_IPDOWN
[/bash]

然后设置开机启动即可

[bash]mkdir -p /jffs/etc/config
echo /jffs/pptp/launch.sh >/jffs/etc/config/pptp.startup
chmod +x /jffs/etc/config/pptp.startup [/bash]

关于DD WRT的开机rc脚本和命名规则 在这里看 个人不建议使用rc_startup 变量
vpnup.shvpndown.sh基本不要改动,除了在vpnup.sh末尾调用下/sbin/restart_dns清除可能中毒的dns缓存

[bash][ -x /sbin/restart_dns ] && /sbin/restart_dns[/bash]

此外哦 为了解决DNSMASQ自动填充上层DNS值为wan_get_dns的值,比如电信pppoe获取到的的DNS的问题,在/jffs/etc/config建立这样一个可执行脚本 比如wan_dns.ipup 内容如下

[bash]nvram set wan_get_dns="8.8.8.8 8.8.4.4"
nvram commit
[ -x /sbin/restart_dns ] && /sbin/restart_dns[/bash]

然后会在建立pppoe连接后自动设定dns 基本这样就搞定了 DNSMASQ的设置参考我之前的文章吧


这里 DNSMASQ和vpnup.sh的思路是国外线路走VPN,国内走wan。之所以不想像某些人一样费力维护一张外国被污染的网站的路由版本的,因为这样是在是没有维护国内网站方便。国内IP段就那么多,而每天被污染的DNS和IP你又知道多少呢?Autproxy工作在应用层,切换什么的,自定义什么的都很方便,维护这样一张路由和域名表,就没有必要了
国内网站用的起CDN和双线的就那么几家,把他们的图片,js和css,主站的域名白名单整理整理清楚到时实在的举动。

为啥不用Gracemode(IP黑名单走VPN)

@xream 你一开始就走错路了 应该准备国内域名和国内IP的白名单 而不是收集被墙的ip和域名黑名单。企业维护行为瞬息万变,可能这一秒解析的cdn节点是这个 下一秒就变了 autoproxy可行是因为他工作在应用层,随时可以便捷的自定义且只影响一个浏览器,而维护路由表就不划算了
@xream 你与其这样 还不如像我一样 收集收集好国内那些大企业的域名白名单和放置js和css的域名,指定ISP的dns解析,这才是正道 国内网站用的起双线和CDN且常上的就那么几个。而被墙的地址却在时刻增加或者动态减少,维护这样一套路由表和dns黑名单实在是不划算
@xream 嗯啊 向你那样Google的SA那天情趣来潮维护下CDN,就歇菜了。又要重新维护。 况且这样还有一个好处,就是出国全加密后,可以避免关键词检测。有些正常网站虽然没被墙,可是依然受到出国关键词检测的监控,搜索个江什么的都可能被重置,和吃苍蝇一样难受。
@xream gracemode一开始也就被我否决的 原因之前已经说过了
autoproxy工作在应用层,可以随时自定义和调节模式,相对灵活。维护这样一张国外IP黑名单,你总归是感觉不到爽的,维护的成本比autoproxy大,反映也不够灵活。chnroutes才给人大便般的顺畅感

CDN IP什么的变化太复杂了 尤其是一些大型网站 三天两头变的 这也是我为啥反感改Host的原因。使用使用正确的DNS获取正确的最合适结果才是我努力的方向。

Author Info :
  • From:适用于DD-WRT V24 SP1 的Auto DD VPN(PPTP+jffs)方案
  • URL:https://blog.ihipop.com/2011/12/2887.html
  • Please Reserve This Link,Thanks!
  • 发表回复

    您的电子邮箱地址不会被公开。 必填项已用*标注