准备

  • 一台支持OpenWrt/LEDE固件的路由器,本文以Netgear R8000为例。查看支持OpenWrt/LEDE的设备列表:https://wiki.openwrt.org/toh/start
  • shadowsocks账号(需自行购买或者搭建shadowsocks服务)
  • PC
  • 网线

安装OpenWrt固件

首先根据自己的路由器型号,到支持设备列表页面下载对应的OpenWrt/LEDE固件。

电脑连接路由器后,登录Netgear路由器设置界面www.routerlogin.com,高级-管理-路由器升级菜单,选择上一步骤下载的OpenWrt/LEDE固件进行固件升级,等待升级完成。

OpenWrt网络配置

使用物理网线连接路由器,打开OpenWrt luci控制台 http://192.168.1.1进行登录,用户名root,初始密码为空。

登录成功之后按照提示设置root密码。

进入Network-Interfaces菜单,配置WAN网络。

切换PPPoE协议,填入你的宽带上网账户和密码。

进入Network-Wireless菜单启用无线网络。

然后点击Edit,设置加密方式和WIFI连接密码等安全性相关信息。

至此,OpenWrt基本的网络设置已经完成,正常情况下使用设备连接刚设置的WIFI就可以上网了,下面进行透明代理设置。

SSH登录

首先使用SSH终端(如Xshell/Putty)访问路由器,主机名:192.168.1.1,用户名:root,密码:即前面设置的root密码。

增加软件源

为opkg添加软件源公钥

wget http://openwrt-dist.sourceforge.net/packages/openwrt-dist.pub
opkg-key add openwrt-dist.pub

获取路由器处理器架构
准备步骤中的支持设备页面,选择相应的路由器型号可以查看路由器技术信息,如下

添加软件源

vi /etc/opkg/customfeeds.conf 增加

src/gz openwrt_dist http://openwrt-dist.sourceforge.net/packages/base/arm_cortex-a9
src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/packages/luci

安装shadowsocks

opkg update
opkg install shadowsocks-libev
opkg install iptables-mod-tproxy
opkg install luci-app-shadowsocks

安装DNS优化相关包

  • ChinaDNS:解决DNS污染问题,优化DNS解析以提升访问速度
  • DNS-Forwarder:将 UDP协议的DNS 查询转换为 TCP 协议,避免某些ISP不稳定的UDP查询

整个DNS优化方案如下


执行安装

opkg update
opkg install ChinaDNS
opkg install luci-app-chinadns
opkg install dns-forwarder
opkg install luci-app-dns-forwarder

配置DNS

打开OpenWrt luci控制台。

菜单Network-DHCP/DNS中General选项卡local server填写127.0.0.1#5353,作用是为了设置dnsmasq的上游服务器为ChinaDNS;Resolv and Hosts Files选项卡中勾选Ignore resovle file以忽略dnsmasq配置的DNS服务器。

进入Services-DNS-Forwarder菜单,启用DNS-Forwarder。

进入Services-ChinaDNS菜单,启动ChinaDNS,设置国内DNS服务器地址和DNS-Forwarder监听地址为其上游服务器:114.114.114.114,127.0.0.1#5300。

配置shadowsocks

打开Services-shadowsocks-Servers Manage菜单进入服务器设置界面。

填入shadowsocks信息:服务器IP、端口号、密码、加密方式等。

切换到General Settings选项卡配置透明代理。

切换到Access Control选项卡选择不走shadowsocks代理的IP列表为ChinaDNS CHNRoute。

终于大功告成,正常情况下,现在连接路由器的设备无需任何其他设置就能够自动翻墙,策马奔腾吧,少年!

FAQ

  • ss-redir运行错误:Error loading shared library libmbedcrypto.so.0: No such file or directory (needed by /usr/bin/ss-redir)

原因是Openwrt官方软件源升级了libmbedtls_2.7.0-1,而shadowsocks-libev_3.1.3-1与该新版本不兼容,需要将版本降级到libmbedtls_2.6.0-2。

wget http://openwrt-dist.sourceforge.net/packages/LEDE/base/arm_cortex-a9/libmbedtls_2.6.0-2_arm_cortex-a9.ipk
opkg --force-downgrade install libmbedtls_2.6.0-2_arm_cortex-a9.ipk

然而发现降级不成功,貌似opkg update更新了软件包索引后只会更新索引中的新版本而不是下载的低版本。
执行如下命令,删除更新下来的可用软件包索引文件,移除现有libmbedtls版本,再安装低版本即可。

rm -rf /var/opkg-lists
opkg remove libmbedtls
wget http://openwrt-dist.sourceforge.net/packages/LEDE/base/arm_cortex-a9/libmbedtls_2.6.0-2_arm_cortex-a9.ipk
opkg install libmbedtls_2.6.0-2_arm_cortex-a9.ipk
  • Google home连接WIFI后无法正常使用:”Something Went Wrong” “Try Again in a Few Seconds”

Service-Shadowsocks 开启Udp Relay

参考

https://github.com/shadowsocks/luci-app-shadowsocks

https://github.com/shadowsocks/openwrt-shadowsocks

http://openwrt-dist.sourceforge.net/

https://github.com/aa65535/openwrt-chinadns

https://github.com/aa65535/openwrt-dns-forwarder

2 Comments

  • 陈先生

    按照教程, 第一步我就失败了, 在升级固件的时候, 需要先上传, 但是上传的时候提示我的文件与路由器不兼容, 请问该如何解决, openwrt版本是18.06.2, 从官网下载的, R8000现在原生的固件版本是V1.0.4.28_10.1.54

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.