准备
- 一台支持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 updateopkg install shadowsocks-libevopkg install iptables-mod-tproxyopkg 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。
wgethttp://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 wgethttp://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