Skip to content

GfwList Support

Jian Chang edited this page Sep 13, 2016 · 7 revisions

##原理

此功能是访问控制功能的扩展应用, 在 ipset ss_spec_dst_bp 中设置 0.0.0.0/1128.0.0.0/1 后, 所有 IP 都不使用 SS 代理了, 而 ipset ss_spec_dst_fw 中的 IP 是会被强制使用 SS 代理的, 且 ss_spec_dst_fw 的优先级要高于 ss_spec_dst_bp, 所有可以达到使用 GfwList 的目的.

##使用

  1. 进入 Luci 界面 -> 访问控制 -> 外网区域
    「被忽略IP列表」 选择留空(/dev/null)
    「额外被忽略IP」 设置为 0.0.0.0/1128.0.0.0/1

  2. 对于 GfwList 中的 IP 地址, 可以直接添加到「强制走代理IP」里
    也可以直接编辑 /etc/config/shadowsocks 文件,在 access_control节下面添加类似如下内容

list wan_fw_ips '123.123.123.123'
  1. 对于 GfwList 中的域名, 新建一个 dnsmasq 的配置文件, 里面写入类似如下的内容
# 使用不受污染干扰的 DNS 解析该域名
server=/google.com/127.0.0.1#5353
# 将解析出来的结果保存到名为 ss_spec_dst_fw 的 ipset 表中
ipset=/google.com/ss_spec_dst_fw

您也可以使用 gfwlist2dnsmasq 更方便的生成 dnsmasq 配置文件

##补充说明

每次重启 shadowsocks 后 ss_spec_dst_fw 都会被销毁重建, 所以您需要在每次重启 shadowsocks 后重启 Dnsmasq 以及将下游设备的 DNS 缓存清空, 使 Dnsmasq 可以重新将查询结果保存到 ss_spec_dst_fw 中.