曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3672|回复: 0
打印 上一主题 下一主题

[FQ] 在openwrt下配置autoddvpn,实现科学上网

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2014-7-3 02:20:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


本文涉及的操作会带来风险,严重情况下会造成路由设备变砖,请在确保自己有能力修复的情况下进行操作。
注意:#号后面的为注释,请不要输入。
注意:请保证你的路由器有足够的储存空间,一般来说8M应该是足够了,4M不一定够。

如何查看自己路由器的硬件信息?在 openwrt 和 ddwrt 的 wiki 里找。


登录路由
  1. ssh 192.168.1.1 -l root
复制代码




更新源列表
  1. opkg update  
复制代码


安装openvpn-client
  1. opkg install openvpn-client
复制代码


某些路由器在彻底断电后时间会归零,如果遇到这种机器, 记得在在/etc/rc.local中加入 rdate -s time.windows.com

建立openvpn目录,配置文件全部在这里面
  1. mkdir /etc/openvpn
复制代码


下载你 openvpn 提供商提供给你的3个注册文件,ca.crt、client.crt、client.key放入 /etc/openvpn 目录中。把 openvpn 的帐号密码分行写入 password.txt ,也放入此目录中。新建 openvpn 配置文件,内容如下

vi /etc/openvpn/openvpn.conf

up 'iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE; /etc/openvpn/vpnup.sh openvpn'
down 'iptables -D POSTROUTING -t nat -o tun0 -j MASQUERADE; /etc/openvpn/vpndown.sh openvpn'

client                 
dev tun                     

ca /etc/openvpn/ca.crt  
cert /etc/openvpn/client.crt
key /etc/openvpn/client.key

<connection>
remote <server1_ip_address> 443 udp
</connection>            

<connection>
remote <server2_ip_address> 53 tcp
</connection>

remote-random

resolv-retry infinite
nobind     
float      

persist-key
persist-tun

comp-lzo      
verb 3
remote-cert-tls server

ping 10
ping-restart 60      
redirect-gateway def1
auth-user-pass /etc/openvpn/password.txt  
script-security 3 system
log /tmp/openvpn.log


下载:


将 vpnup.sh 中所有/jffs/替换为/etc/  ,vpnup.sh 原本为 ddwrt 设计 。

找到 OLDGW=$(nvram get wan_gateway)

修改为
OLDGW=$(route |grep -Eo "default ([0-9.]+)" | cut -d" " -f10)


保存。现在使用 HFS 或者 everything,使用 http 的方式共享出来,取得地址,比如http://192.168.1.110/vpnup.sh ,如果你有更好的取得网关地址的指令,请不吝赐教,我不是最在行。

继续在路由器上操作:
cd /etc/openvpn/ wget http://192.168.1.110/vpnup.sh
wget http://autoddvpn.googlecode.com/svn/trunk/grace.d/vpndown.sh
chmod a+x *.sh
vi /etc/config/openvpn #编辑配置文件

增加以下内容:
config 'openvpn' 'vpn'
option 'config' '/etc/openvpn/openvpn.conf' # conf 的文件名别错了
option 'enable' '1' #保存


在路由器控制页面中找到防火墙或者叫firewall的。在自定义中增加增加两个转发:
iptables -I FORWARD -o br-lan -j ACCEPT

iptables -I FORWARD -o tun0 -j ACCEPT





在 /etc/config/dhcp 中的 dnsmasq 里增加如下内容(也可以用web界面的DHCP和DNS页面进行配置)
list 'server' '/google.com/8.8.8.8'
list 'server' '/facebook.com/8.8.8.8'
list 'server' '/fbcdn.net/8.8.8.8'
list 'server' '/twitter.com/8.8.8.8'
list 'server' '/youtube.com/8.8.8.8'
list 'server' '/ytimg.com/8.8.8.8'
list 'server' '/imageshack.us/8.8.8.8'


搞定,重启试试看。重启后ssh进路由器,用route命令查看,如果发现返回只有小猫三两只,那肯定是哪一步错了,用cat /tmp/openvpn.log 看看有没有错误提示,再做修改。如果返回的是密密麻麻的,多半就没错了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 20:23 , Processed in 0.063092 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表