Netgear WNDR3800 OpenWrt全攻略(一)

一、安装/更新OpenWrt

需要的软件:PuTTY (下载地址) ,HFS (下载地址)

1、下载固件:

如果是原厂固件下载这个

如果已经是OpenWrt下载这个

2、将OpenWrt安装进设备

由于现在能购买到的绝大多数都预装了OpenWrt,所以这里以更新固件为例,全新安装方法大同小异。

如果已装有LuCI,直接在web端刷写固件即可

OpenWrt

如果没有安装LuCI就需要使用HFS建立http服务器,将下载的固件重命名为 wndr3800.bin 并拖入HFS生成链接,比如我的是 http://192.168.1.2/wndr3800.bin 。接下来使用PuTTY登录路由器,输入下列命令刷写新固件

 刷写完成后路由器会自动重启

3、初始配置

用一根网线将WNDR3800的Lan口和电脑相连,打开PuTTY按如下设置连接

telent

登录成功后输入 passwd 修改root密码(注意输入密码时屏幕是没有显示的),修改完成后输入 exit 退出,此时SSH服务就已开启,以后可以使用SSH管理路由器了。

4、配置网络

使用PuTTY以SSH方式登录路由器

opssh

修改 /etc/config/network 文件,配置路由器以pppoe方式连接到网络

vi /etc/config/network

 将wan部分修改为

 修改 /etc/config/wireless 文件,开启无线功能

vi /etc/config/wireless

 文件内容修改为

 然后用一根网线将ADSL modem与路由器的Wan口相连,并输入以下命令使配置生效

/etc/init.d/network restart

 至此路由器已经可以连接到网络并开启了无线功能

5、安装基础软件包

现在只能通过SSH方式管理路由器,为方便日常使用还可以安装web图形界面的中文翻译

 输入以下命令开启支持web服务的uhttpd,并设置其为自启动

至此,OpenWrt的安装及基本设置已完成。

二、配置ipset及shadowsocks实现智能翻墙

本文介绍的方法是使用ipset实现智能分流,只需要维护被墙域名列表即可而不需要寻找被墙网站的IP段。访问列表内网站的流量转发到shadowsocks,其他站点直接连接。

1、安装需要的软件包

OpenWrt的官方源中没有shadowsocks,需要自行下载安装

自编译版下载地址: http://dl.kyonli.com/shadowsocks/ (同步最新源码编译,目前只适用于ar71xx和ramips_24kec)

官方编译版下载地址: http://shadowsocks.org/en/download/clients.html (被墙,版本更新滞后,适用于ar71xx, brcm47xx, brcm63xx及ramips_24kec)

本文以安装自编译polarssl版为例,SSH登录路由器,执行下列命令

编辑 /etc/shadowsocks.json 填写正确的服务器信息

编辑 /etc/init.d/shadowsocks 为以下格式

shadowsocks开机自启  /etc/init.d/shadowsocks enable ,ipset的某些模块需要重启才能生效,执行  reboot 重启路由器

2、配置dnsmasq和ipset

为了防止 DNS 污染和把被认证域名解析到的 IP 存放到 ipset 中,我们要把需要通过代理访问的站点域名交由 dnsmasq 处理,域名列表可以自己收集也可以从 gfwlist 导出,最简单的方法就是使用 gfwlist2pac ,从生成的 pac 文件中提取出域名列表再进行加工即可用于 dnsmasq

首先使用 ipset 新建一个名为 redir 的 set 用于存放列表中的域名对应的 IP

修改 /etc/dnsmasq.conf 在最后加入  conf-dir=/etc/dnsmasq.d ,新建并进入目录  /etc/dnsmasq.d ,新建一个名为 redir.conf 的配置文件,内容如下:

完整的由 gfwlist 生成的域名配置文件从 这里 下载,最后将以下内容加入到防火墙自定义规则中即可实现开机自动代理

至此智能透明代理部分配置完成

37 thoughts on “Netgear WNDR3800 OpenWrt全攻略(一)

  1. 搜索“倚天剑shadow”可以获取ss账号
    我的openwrt能上google, twitter,但youtube时断时连,fb一直连不上。
    楼主,要怎么解决呢?

    1. 查资料改配置,折腾之后,找到原因了。
      需要修改pdnsd里的配置:
      /etc/dnsmasq.d/xxx.conf 这个配置文件 “xxx”因人而异,加上类似这种格式:
      server=/.youtube.com/127.0.0.1#1053
      ipset=/.youtube.com/gfwlist
      如果需要上gmail,加上这种:
      server=/.gmail.com/127.0.0.1#1053
      ipset=/.gmail.com/gfwlist
      以此类推了。
      说明:1053是openwrt上pdnsd的监听端口~

  2. 我宿舍的网支持ipv6,插上就能用的。我想用路由通过ipv6连接shadowsocks服务器,手机、kindle和所有其他设备就都能直接连上路由器全局翻墙了。该如何设置呢?

  3. 防火墙这样配置怎么样?
    iptables -t nat -A PREROUTING -p tcp -m set –match-set redir dst -j REDIRECT –to-port 1080
    iptables -t nat -A PREROUTING -p tcp -m set ! –match-set redir dst -j RETURN

  4. 请问LZ,我的路由器型号是北美版的WNDR3800-1CHNAS,如果刷openwrt,刷哪个固件版本? 有一个是3800的,还有一个是3800ch的固件。请教, 谢谢!

  5. 您好,按照您的教程添加/etc/dnsmasq.d/redir.conf后,在这个列表内添加的站点完全无法访问,请问如何解决?

  6. 楼主你好!请问按照您这样设置之后,SS中的忽略IP列表【shadowsocks/ignore.list】这个功能还会生效吗?如果仍然生效的话,会不会所有国外IP仍然走SS代理呀?

      1. 您好,我用的是文件名带spec的ipk,luci中有‘忽略IP列表’这个选项。我按照您这样的设置之后,还是有DNS污染,表现在youtube,facebook,twitter无法打开,所以我参考了http://www.lifetyper.com/2014/06/anti-dns-poison-without-vpn.html这篇文章,将几十个DNS污染IP添加到了防火墙规则里(虽然这几天GFW送大礼包,但是貌似还没影响到我这个地方)。可以正常使用youtube,twitter,facebook了。今天突然想到luci中有‘忽略IP列表’这个选项,所以怀疑是否会除了列表之外的全走SS。。。故此一问。。。楼主可有解~

        再次谢谢楼主的贡献。

  7. 之前用shadowsocks-spec+chinadns,但是国外ip都走ss,导致bt下载也跑VPS的流量
    改用这个方法后发现一个问题,,google play无法下载应用,但是浏览 搜索都正常
    请问是什么原因导致的?

  8. 我这样做了以后还是不能访问被墙的网站,dnsmasq 的日志找不到在哪里。shadowsocks配好了,电脑上直接通过路由的shadowsocks代理可以访问。
    怎么样能查出是哪里的原因呢|

      1. 搞定了,原来是我用了官方源里的shadowsocks,这个用的是ss-local,这个不行,需 要用ss-redir,现在好了。终于在家里能自由上网了。不过刚才打开gmail刷了几次才行, 别的几个一次就刷出来了。
        现在多拨加无界,好自在:-)

  9. 作者你好!首先感谢你的贡献!
    我按照你的方法用SS出墙成功!youtube、google等都正常访问。但是facebook和twitter等,却仍然无法打开。有朋友说是DNS被污染了。请问有什么方式可以解决呢?我是个新手,所以也不太懂。

    1. 更正:youtube、facebook、twitter等仍然无法打开,但google正常,还有其他一些本来被墙的也能打开。

  10. 按这篇文章做,成功了,不过为什么google.com就是上不去呢。其他网站都没问题。而且google用ip可以访问,域名就不行

    1. 首先确保电脑的DNS是路由器默认分配的,然后在openwrt中开启DNS部分的“将收到的DNS请求写入系统日志”,然后电脑打开google.com,看路由器日志中google.com是否解析成功

  11. Collected errors:
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for iptables-mod-nat-extra:
    * kernel (= 3.10.58-1-bc45bbfb90a5d25560660197a9e6ec90) *
    * opkg_install_cmd: Cannot install package iptables-mod-nat-extra.
    如何解决?谢谢

  12. 请问我在opkg install shadowsvpn 安装包的时候总是提示如下错误,是什么情况?
    pkg_hash_fetch_best_installation_candidate: Packages for ShadowVPN found, but incompatible with the architectures configured
    * opkg_install_cmd: Cannot install package ShadowVPN.

发表评论

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