a1thwn / gfwlist2dnsmasq

Just another script to auto-generate dnsmasq ipset rules using gfwlist

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gfwlist2dnsmasq

Intro

Just another script to auto-generate dnsmasq ipset rules using gfwlist

Notification: Need python2, do not use python3

GFWList is composed by regular expressions, but dnsmasq rules is formed by domain names. So the conversion from GFWList to dnsmasq rule list is not a equivalent conversion. You might need to add extra rules or modify some converted rules.

Using:

Modify gfwlist2dnsmasq.py:

Change this to your DNS server IP&port:

mydnsip = '127.0.0.1'
mydnsport = '5353'

Change this to your ipset name:

ipsetname = 'gfwlist'

Path to save you rule file:

rulefile = './dnsmasq_list.conf'

Add your own extra domain here. One domain in a line. eg:

EX_DOMAIN=[ \
'.google.com', \
'.google.com.hk', \
'.google.com.tw', \
'.google.com.sg', \
'.google.co.jp', \
'.google.co.kr', \
'.blogspot.com', \
'.blogspot.sg', \
'.blogspot.hk', \
'.blogspot.jp', \
'.blogspot.kr', \
'.gvt1.com', \
'.gvt2.com', \
'.gvt3.com', \
'.1e100.net', \
'.blogspot.tw' \
]

Then run gfwlist2dnsmasq.py:

python gfwlist2dnsmasq.py

If you don't want to generate the rules by yourself, you can download the rule file from:

https://github.com/cokebar/gfwlist2dnsmasq/releases

Known bugs:

  1. Invalid lines at the beginning of the list (This script only do with domain address, but gfwlist contains IP addresses):
server=/.85.17.73.31/127.0.0.1#5353
ipset=/.85.17.73.31/gfwlist

How to fix: just delete these lines.

About

Just another script to auto-generate dnsmasq ipset rules using gfwlist

License:GNU General Public License v2.0


Languages

Language:Python 100.0%