Sayid He

Designer

Home

OpenWrt/LEDE 科学上网

Published Mar 13, 2020

前两天把家里多余的小米路由器3G刷了 OpenWrt,关于刷机的部分,下面两个教程都讲的比较清晰了,就不再做过多的赘述。

刷机参考:

下面是将如何在通过装完的 OpenWrt 实现科学上网。

软件包安装 - 源安装方法

首先添加 GPG Key,只有这样,第三方的包才能通过签名验证

$ cd /tmp/
$ wget http://openwrt-dist.sourceforge.net/openwrt-dist.pub
$ opkg-key add openwrt-dist.pub

查看路由器 CPU 架构

$ opkg print-architecture | awk '{print $2}'

呈现如下

all 1
noarch 1
mipsel_24kc 10

然后添加 /etc/opkg/customfeeds.conf

$ vi /etc/opkg/customfeeds.conf

请将 {architecture} 替换成对应的 CPU 架构

src/gz openwrt_dist http://openwrt-dist.sourceforge.net/packages/base/{architecture}
src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/packages/luci

更新 opkg

$ opkg update

安装软件

$ opkg install ChinaDNS
$ opkg install luci-app-chinadns
$ opkg install dns-forwarder
$ opkg install luci-app-dns-forwarder
$ opkg install shadowsocks-libev
$ opkg install luci-app-shadowsocks

安装好后菜单上面会多一个“服务”菜单,会有“影梭、DNS 转发、ChinaDNS”三个子菜单。对应配置即可

安装包方法

对应项目主页最新预编译版本

方法一:通过 Wget 安装

由于 OpenWrt 内建的 wget 不支持 TLS,无法下载 HTTPS 软件包,因此要先安装完整版的 wget 和 CA 证书软件包。

SSH 进入 OpenWrt

执行

$ opkg update
$ opkg install wget ca-certificates

接着安装 shadowsocks UDP-Relay (UDP 转发)功能依赖的软件包 iptables-mod-tproxy

$ opkg install iptables-mod-tproxy

最后,前往下列项目主页下载安装最新预编译版本 shadowsocks-libev 及其 luci 前端,注意选择 current 目录下特定硬件架构版本。

命令为

$ cd /tmp
$ wget https://dl.bintray.com/aa65535/opkg/shadowsocks-libev/3.3.4-1/current/mipsel_24kc/:shadowsocks-libev-server_3.3.4-1_mipsel_24kc.ipk
$ opkg install shadowsocks-libev-server_3.3.4-1_mipsel_24kc.ipk

有时候出现的情况

HTTP request sent, awaiting response... 404 Not Found
2020-03-10 08:14:58 ERROR 404: Not Found.

这时候用方法二

方法二:通过手动下载安装

手动下载对应包至本地电脑(如 Downloads 文件夹),然后运行

$ cd Downloads
$ scp shadowsocks-libev-server_3.3.4-1_mipsel_24kc.ipk [email protected]:/tmp/
$ scp luci-app-shadowsocks-without-ipset_1.9.1-1_all.ipk [email protected]:/tmp/

ssh 进入 openwrt,运行

$ ssh [email protected]
$ cd /tmp
$ opkg update
$ opkg install shadowsocks-libev-server_3.3.4-1_mipsel_24kc.ipk
$ opkg install luci-app-shadowsocks-without-ipset_1.9.1-1_all.ipk

至此 shadowsocks 已经安装完毕,浏览器输入 https://192.168.1.1 即可看到服务里的 shadowocks 了。

安装 ChinaDNS

国内运营商网络 DNS 污染严重,导致大量境外域名无法正确解析。shadowsocks-libev 本身并没有解决 DNS 污染问题,需要配合 ChinaDNS 来解决此问题。

前往下列项目主页下载安装最新版本 ChinaDNS (选择 current 目录下特定硬件平台版本) 及其 luci APP。

安装 ChinaDNS 和 luci-app-chinadns

$ cd /tmp
$ wget http://openwrt-dist.sourceforge.net/archives/ChinaDNS/1.3.3-1/current/mipsel_24kc/ChinaDNS_1.3.3-1_mipsel_24kc.ipk
$ opkg install ChinaDNS_1.3.3-1_mipsel_24kc.ipk
$ wget https://github.com/aa65535/openwrt-dist-luci/releases/download/v1.6.2/luci-app-chinadns_1.6.2-1_all.ipk
$ opkg install luci-app-chinadns_1.6.2-1_all.ipk

立即更新 ChinaDNS 的国内 IP 路由表 /etc/chinadns_chnroute.txt

$ wget -O /tmp/delegated-apnic-latest 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' && awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' /tmp/delegated-apnic-latest > /etc/chinadns_chnroute.txt

编辑 crontab 任务计划,每周一凌晨 3 点更新 chinadns_chnroute.txt

$ crontab -e
$ 0 3 * * 1    wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O /tmp/delegated-apnic-latest && awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' /tmp/delegated-apnic-latest > /etc/chinadns_chnroute.txt
$ /etc/init.d/cron start
$ /etc/init.d/cron enable

验证 crontab 任务是否正确执行

$ logread | grep crond

配置 Dnsmasq

OpenWrt 管理面 网络 -> DHCP and DNS

DNS 转发 修改为 127.0.0.1#5353 即 ChinaDNS 监听的端口;勾选 Ignore resolve file(不使用 /etc/resolv.conf 中的 DNS 即电信运营商分配的 DNS)。

重启一下

$ reboot

至此,一切准备就绪,Enjoy yourself!

一键脚本

$ wget http://openwrt-dist.sourceforge.net/auto_install.sh
$ chmod +x auto_install.sh
$ ./auto_install.sh

参考