add mkdocs doc

nghttp2
fangdingjun 9 years ago
parent 89e7b6fe89
commit cc36d8a8af

@ -0,0 +1,82 @@
command line options
=====================
###bind###
special the addres the dns server listen to
example:
`-bind 0.0.0.0:53`,
`-bind :53`,
`-bind 127.0.0.1:53`
###server###
special a filter file and the upstream dns server to use
format
**file_name**,**proto**:**addr**:**port**
**file_name** is the file name contains the domain list
**proto** is the upstream dns server protocol, `tcp` or `udp`
**addr** is the ip address of upstream dns server
**port** is the upstream dns server port
this options can special multipe times
example:
`-server domain1.json:udp:8.8.8.8:53`,
`-server domain1.json:tcp:4.2.2.2:53`,
`-server domin2.json:udp:49.32.34.44:5353`
see [example filter file](ex_config.md#filter-file)
###upstream###
special the default upstream dns server
format
**proto**:**addr**:**port**
**proto** is the upstream dns server protocol, `tcp` or `udp`
**addr** is the ip address of upstream dns server
**port** is the upstream dns server port
example:
`-upstream udp:10.10.1.1:53`
###logfile###
special the file name the log save to
example:
`-logfile /var/log/gdns.log`
###debug###
output the debug log or not, default false
this options is only used for debugging
###blacklist###
special the blacklist file
if the reply dns message contains the ip in the blacklist, the message will be dropped
example:
`-blacklist fakeip.json`
see [example black list](ex_config.md#blacklist-file)

@ -0,0 +1,61 @@
Configure example
=============
Configure file
======
Use `gdns -h > config.ini` generate a example configure file
a configure file like this:
```conf
bind = :53 # the address bind to
blacklist = # the blacklist file
configUpdateInterval = 0 # Update interval for re-reading config file set via -config flag. Zero disables config file re-reading.
debug = false # output debug log, default false
logfile = error.log # the logfile, default stdout
server = filter1.txt,udp:8.8.8.8:53 # special the filter and the upstream server to use when match
# format:
# FILTER_FILE_NAME,PROTOCOL:SERVER_NAME:PORT
# example:
# filter1.json,udp:8.8.8.8:53
# means the domains in the filter1.json will use the google dns server by udp
# you can specail multiple filter and upstream server
#
upstream = udp:114.114.114.114:53 # the default upstream server to use
```
comamnd
`gdns -config dns.ini`
use the dns.ini as a configure file
Filter file
===========
The filter file is a domains name list
command line
`--server domain1.json,udp:8.8.8.8:53`
means the domain name listed in domoin1.json will use 8.8.8.8 as the upstream server through udp
a filter file like this
```json
{
"twitter.com":1,
"facebook.com":1,
"google.com":1
}
```
you can special multiple filter file and upstream dns server
Blacklist file
=============
The blacklist file contains the ip that the message will be dropped when the ip dispeared in the upstream server reply
the blacklist file like this
```json
{
"113.123.21.43":1,
"31.53.23.12":1
}
```

@ -0,0 +1,54 @@
# gdns
a dns proxy server write by go
gdns much like dnsmasq or chinadns, but it can run on windows.
Features
========
support different domains use different upstream dns servers
support contact to the upstream dns server by tcp or udp
support blacklist list to block the fake ip
Install
=======
```bash
# get the depended library
go get github.com/miekg/dns
go get github.com/vharitonsky/iniflags
git clone https://github.com/fangdingjun/gdns
cd gdns
go build
# generate a sample config file
./gdns -dumpflags > dns.ini
# edit the dns.ini and run, need root privileges to bind on port 53
sudo ./gdns -config dns.ini
# test it
dig @localhost twitter.com
```
Arguments
===========
use `gdns -h` to show the command line arguments.
all arguments can specialed in config file or in command line.
there is a sample file in the `config_sample/` directory.
Third-part library
==================
use
[dns](https://github.com/miekg/dns)
library to parse the dns message
use
[iniflags](https://github.com/vharitonsky/iniflags)
library to process the command line arguments and the config file

@ -0,0 +1,8 @@
site_name: gdns
docs_dir: docs
pages:
- Usage: 'index.md'
- Command line options: 'command_line.md'
- Config example: 'ex_config.md'
theme: readthedocs
Loading…
Cancel
Save