/ 铃儿响叮当 / openwrt

openwrt

2014-03-31 posted in [day-to-day]

openwrt重置

接通电源时候按下reset键,通过192.168.1.1连接,通过http也能访问进入failsafe模式,可以上传新的image.

基本配置

telnet 192.168.1.1 passwd ssh root@192.168.1.1

/etc/config/wireless

# option disabled 1
option ssid xxxx
option encryption 'psk-mixed'
option key 'xxx'

/etc/config/network config ‘interface’ ‘wan’ option ‘ifname’ ‘eth0’ option ‘proto’ ‘dhcp’

/etc/config/dhcp config dhcp wan option interface wan option ignore 0

unbound( DNSSEC + TCP) 抵御DNS污染 该方案既可以利用国内DNS服务器(114.114.114.114)加速访问提供CDN服务的国内网站,也可以抵御GFW对域名的污染。

  1. 安装必须的opkg包

opkg install unbound

  1. 修改/etc/unbound/unbound.conf开启tcp查询和dnssec并监听5353端口

    port: 5353 do-ip6: no do-udp: yes do-tcp: yes neg-cache-size: 0 interface: 127.0.0.1 #interface: ::0 rrset-cache-size: 1m rrset-cache-slabs: 2 prefetch: yes forward-zone: name: “.” forward-addr: 8.8.8.8 forward-addr: 8.8.4.4 forward-first: no

  2. 启动并启用unbound

/etc/init.d/unbound enable

# /etc/init.d/unbound restart

  1. 修改/etc/dnsmasq.conf,引入https://github.com/felixonmars/dnsmasq-china-list项目提供的国内CDN域名列表

修改/etc/dnsmasq.conf,添加conf-dir=/etc/dnsmasq.d

下载dnsmasq-china-list提供的bogus-nxdomain.china.conf和accelerated-domains.china.conf文件到/etc/dnsmasq.d/

  1. 修改/etc/config/dhcp将wan口的dns服务器指向unbound提供的127.0.0.1#5353

#option resolvfile ‘/tmp/resolv.conf.auto’

option noresolv 1 list server ‘127.0.0.1#5353’ list server ‘208.67.222.222#5353’ list server ‘208.67.220.220#5353’

Shadowsocks + geoip 实现无缝翻墙 1. 安装必须的opkg包

opkg install iptables-mod-geoip iptables-mod-nat-extra kmod-ipt-geoip kmod-ipt-nat kmod-ipt-nat-extra kmod-ipt-nathelper

  1. 下载并安装shadowsocks-libev客户端

http://shadowsocks.org/en/download/clients.html

shadowsocks-libev-polarssl更适合嵌入式设备使用。但在Attitude Adjustment版本上需要对libpolarssl进行一点调整。cd /usr/lib && ln -s libpolarssl.so.2 libpolarssl.so.3

http://sourceforge.net/projects/openwrt-dist/files/shadowsocks-libev/

unbound需要libopenssl,所以安装-openssl可以。

修改配置文件/etc/config/shadowsocks.json,写入shadowsocks服务器信息。

之后修改/etc/init.d/shadowsocks,把所有ss-local替换为ss-redir。然后重启shadowsocks。

启用并启动shadowsocks服务

/etc/init.d/shadowsocks enable

# /etc/init.d/shadowsocks restart

  1. 生成IP国家信息数据库。在某台Mac或者Linux上下载并解压缩xtables-addons源码,然后按照这篇文档的步骤生成IP数据库。

http://sourceforge.net/projects/xtables-addons/

  1. 将中国的IP信息(CN开始的文件)拷贝到路由器/usr/share/xt_geoip/BE或者/usr/share/xt_geoip/LE。是BE还是LE取决于你的路由器的CPU架构是Big Endian还是Little Endian。如果你不确定你的路由器是什么架构类型,可以两个目录都放进去。

  2. 向/etc/firewall.user写入iptables规则

redirect !CN to shadowsocks

iptables -N shadowsocks -t nat iptables -A shadowsocks -t nat -p tcp -d -j RETURN iptables -A shadowsocks -t nat -p tcp -d 192.168.0.0/16 -j RETURN iptables -A shadowsocks -t nat -p tcp -d 127.0.0/8 -j RETURN iptables -A shadowsocks -t nat -p tcp -d 10.0.0/8 -j RETURN iptables -A shadowsocks -t nat -p tcp -j REDIRECT --to-port iptables -A prerouting_rule -t nat -m geoip -p tcp ! --destination-country CN -j shadowsocks

测试:

访问这个网站应显示shadowsocks服务器的地址

访问这个网站应显示国内ISP提供的地址