Openwrt折腾记录03

Openwrt+shadowsocks透明代理,实现路由器科学上网

当局域网中设备较多时,对每个主机配置ss客户端将变得繁琐,此时最适合在路由器上实现科学上网


安装

一些东西在镜像源里是没有的

添加用于验证的 gpg key

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

新增feeds

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

更新并安装

opkg update
opkg install dns-forwarder
opkg install luci-app-dns-forwarder
opkg install shadowsocks-libev
opkg install luci-app-shadowsocks

这个ss客户端和镜像源里的ss不同

配置shadowsocks

shadowsocks.json

通过luci配置或者自定义shadowsocks配置文件

{
    "server": "*.*.*.*",
    "server_port": 1080,
    "password": "****",
    "method": "aes-128-cfb",
    "local_address": "0.0.0.0",
    "timeout": 5,
    "reuse_port": true
}

配置dnsmasq和ipset

将如下规则加入到防火墙自定义规则中,最后的1234是shadowsocks的透明代理端口

ipset -N gfwlist iphash
iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1234
iptables -t nat -A OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1234

添加gfwlist配置文件

新建并进入目录/etc/dnsmasq.d,下载 dnsmasq_gfwlist_ipset.conf
在这个列表就是墙列表,里面的域名将走127.0.0.1:5353,稍后对这个端口配置转发,转发到谷歌DNS进行解析

修改dnsmasq配置

修改 /etc/dnsmasq.conf,在最后加入 conf-dir=/etc/dnsmasq.d

配置DNS

防污染

转发墙外域名到谷歌DNS进行解析

5353是多播DNS(mDNS)的端口

最后需要在自定义防火墙规则里再增加一句,来确保8.8.8.8是走代理的:

ipset add gfwlist 8.8.8.8

自定义DNS

对WAN口进行如图配置,将DNS手动指定为127.0.0.1,将域名解析交给dnsmasq

最后在DHCP/DNS设置中将你的ISP的DNS填入(或者使用公共DNS),让国内域名走国内解析

测试

http://www.ip111.cn/


ref

http://openwrt-dist.sourceforge.net/
https://github.com/aa65535/openwrt-dist-luci
https://cokebar.info/archives/962
https://ssr.tools/473