在OpenWrt上安装ShadowVPN并实现按域名分流

安装所需软件包

ShadowVPN for OpenWrt 官方下载地址: https://github.com/clowwindy/ShadowVPN/releases

配置 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 生成的域名配置文件从 这里 下载

由于我们要让符合条件的域名走 VPN,所以需要使用 iptables 给这些数据包打上值为200的标记,只让带有标记的数据走 VPN,将以下命令加入到防火墙自定义规则中

Continue reading