其实早就折腾过一遍了,不过这次回家发现怎么一下,变的极其不稳定,于是又来一发ww
用openwrt的路由器是在一个固定场合最好的科学上网的方法了
型号是RG100A 一个白菜价的无线路由器,既然都白菜价 我就感放心刷了233.(刷了openwrt的路由器就相当于一个linux了w)
CPU:BCM 6358 300M
FLASH:16M内存
默认32M无线:54M
openwrt其他支持的型号可以参见 http://wiki.openwrt.org/toh/start
既然是路由器使用,那么使用稳定优先,功能较全就行。所以就不用去赶最新的固件去试。我使用的是 OpenWrt Backfire 10.03.1-RC6
1)SSH 的科学上网
SSH的方法大家应该都用过,但一般都要在本机连接到SSH,在通过端口转发来实现代理。
这里就用openwrt去连接到SSH,而乃就通过路由器来转发。
openwrt 可能用Dropbear 作为 SSH 客户端,那么不能满足需要。删除路由器的文件系统中 /usr/bin 目录的 ssh 和 scp,这只是链接 删除吧。
ssh登入好路由器
opkg update
opkg install openssh-client autossh
用 OpenSSH 来登录主机并做端口转发,使用 Autossh 来自动管理 SSH 连接。
安装完之后,我们首先要做的就是设置 SSH 的密钥,这样就可以自动登录,而不用输入密码。
ssh-keygen -t rsa
将生成的id_rsa.pub考到你用户目录下的/.ssh
chmod -rw------- /root/.ssh/id_rsa
在测试下科学上网正常不
autossh -M20000 -f -q -N -D 192.168.1.1:[代理端口] [用户名@你的主机地址]
测试使用方法就不说了,如果正常话。
一下摘录自网络:
在路由器 /etc/init.d/ 文件夹下,我们建立个文本文件,比如叫 iautossh,编辑其中的内容
#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
START=99
start() {
autossh -M20000 -f -q -N -D 192.168.1.1:[代理端口] [用户名@你的主机地址]
}
stop() {
killall autossh
}
保存,加上执行属性
chmod +x /etc/init.d/iautossh
然后使用命令
/etc/init.d/iautossh enable
2)openwrt 的openVPN的科学上网
openwrt上使用openVPN,最好是在编译openwrt固件时包含openvpn,现在我用的固件已经openvpn已经编译好了
配置文件 根据自己的vpn.conf修改
config 'openvpn' 'sample_client'
option 'client' '1'
option 'dev' 'tun'
option 'proto' 'udp'
option 'resolv_retry' 'infinite'
option 'persist_key' '1'
option 'persist_tun' '1'
option 'comp_lzo' '1'
option 'verb' '3'
option 'dev_type' 'tun'
option 'keepalive' '10 60'
option 'port' 'vpn port'
option 'nobind' '1'
option 'remote' 'vpn ip'
option 'rcvbuf' '65536'
option 'enable' '1'
option 'ca' '/lib/uci/upload/cbid.openvpn.sample_client.ca'
option 'key' '/lib/uci/upload/cbid.openvpn.sample_client.key'
option 'cert' '/lib/uci/upload/cbid.openvpn.sample_client.cert'
注意证书的导入,接下来应该是能连接了 但是要注意 现在你还在DNS污染中。
加入或修改 /etc/config/dhcp
option 'resolvfile' '/etc/openvpn/resolv.conf'
新建或修改 /etc/openvpn/resolv.conf 建议DNS填满3个,防止ISP 自动补全
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 178.79.131.110
配置 firewall 端口流量被转发
配置文件 /etc/firewall.user
iptables -I FORWARD -o br-lan -j ACCEPT
iptables -I FORWARD -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
以上配置好了以后,就应该能连接openVPN科学上网了
进阶设定:配置路由表走不走VPN,配置DNSmasq选择解析的服务器
如果你路由器连上VPN后没有配置route,那么下载p2p和上国内网站都会变得很苦逼。所以一定要配置route。
理论上有两种路由表,一种是除开中国外其他全走VPN,这是最保险的,因为除开中国外都会被墙,中国里面是直接拔线,问题是你p2p和VPN的可靠性,p2p会有大流量操作,还有一旦VPS 不稳定,你就可能只能上国内的网了,还有8.8.8.8连不上你连国内的都上不了。另一种是被墙的走VPN,IP根据GFWIPlist来,这就看你适合哪一个了。
第一种,参考 http://code.google.com/p/chnroutes/
摘录:
下载 chnroutes.py
从终端进入下载目录, 执行python chnroutes.py -p linux, 执行完毕之后同一目录下将生成两个新文件’ip-pre-up’和’ip-down’.
上传到路由器 连接VPN 后运行ip-up就行。
控制DNS解析 配置dnsmasq.conf
可参考 http://code.google.com/p/autoddvpn/wiki/DNSMasq http://ihipop.info/2010/12/1977.html
第二种,参考 http://code.google.com/p/autoddvpn/source/browse/#svn%2Ftrunk%2Fgrace.d
根据grace.d里的vpnup.sh配置ip-up和ip-down
根据gfwdomains配置dnsmasq.conf
