事情的起因是新购了一台Oculus Quest2的VR头戴设备,这个设备需要访问Oculus商店(海外),而它本身上没法安装客户端,所以需要透明代理。

我每个设备上都配置了科学上网的客户端,但是没有在路由器上配置过透明代理,而在实验室因为搬家后,换下来一个NETGEAR R6220,不用白不用。

我所使用的代理服务是Trojan的,使用OpenClash是相对正确的选择。

安装Openwrt

安装OpenWrt的过程没有什么值得细说的。因为OpenWrt的固件可以直接从网站上下载。

安装OpenClash

通过opkg print-architecture命令确认自己的架构类型。如对于R6220,这个命令的输出如下:

1
2
3
4
root@OpenWrt:~# opkg print-architecture
arch all 1
arch noarch 1
arch mipsel_24kc 10

则架构为 mipsel_24kc

安装依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
opkg update
opkg install luci
opkg install luci-base
opkg install iptables
opkg install dnsmasq-full
opkg install coreutils
opkg install coreutils-nohup
opkg install bash
opkg install curl
opkg install jsonfilter
opkg install ca-certificates
opkg install ipset
opkg install ip-full
opkg install iptables-mod-tproxy
opkg install kmod-tun #TUN模式
opkg install luci-compat
  1. 新增依赖:libcap 和 libcap-bin,去对应的openwrt网站上下载。对于不同架构的路由器应当将其中的mips_24kc换为你自己的架构。

    https://downloads.openwrt.org/snapshots/packages/mips_24kc/packages/

  2. 安装dnsmasq-full前,可能需要删除dnsmasq,二者是冲突的。

安装OpenClash本体

openclash项目下载对应架构的ipk文件:

因为最新版本使用了Ruby依赖,而运行之后总是出错,如果无法解决,可以使用没有Ruby依赖的版本0.40.15

OpenClash的配置

如果选择0.40.15版本,不会自动选择内核。

对于mipsel_24kc,应选择mipsle-softfloat内核。

对于mips_24kc,选择 mips-softfloat。

内核存放于 /etc/openclash/core/。如果版本安装错误,可以在这个目录将内核文件删除后,重新选择并下载。