From ee6eec0b523887c5f6e8343d0a8aefb364986a66 Mon Sep 17 00:00:00 2001 From: nadoo <287492+nadoo@users.noreply.github.com> Date: Thu, 31 Aug 2017 00:08:22 +0800 Subject: [PATCH] doc: update documents for ver0.4 --- .gitignore | 4 +-- README.md | 27 ++++++++++--------- conf.go | 4 +-- .../1.simple_proxy_service/glider.conf | 0 .../examples}/2.one_forwarder/glider.conf | 0 .../examples}/3.forward_chain/glider.conf | 0 .../4.multiple_forwarders/glider.conf | 0 .../5.rule_default_direct/glider.conf | 0 .../5.rule_default_direct/office.rule | 0 .../6.rule_default_forwarder/bypass.rule | 0 .../6.rule_default_forwarder/glider.conf | 0 .../7.rule_multiple_rule_files/glider.conf | 0 .../7.rule_multiple_rule_files/home.rule | 0 .../7.rule_multiple_rule_files/office.rule | 0 {examples => config/examples}/README.md | 0 .../glider.conf.example | 0 .../rules.d}/bypass.rule.example | 0 .../rules.d}/office.rule.example | 0 18 files changed, 19 insertions(+), 16 deletions(-) rename {examples => config/examples}/1.simple_proxy_service/glider.conf (100%) rename {examples => config/examples}/2.one_forwarder/glider.conf (100%) rename {examples => config/examples}/3.forward_chain/glider.conf (100%) rename {examples => config/examples}/4.multiple_forwarders/glider.conf (100%) rename {examples => config/examples}/5.rule_default_direct/glider.conf (100%) rename {examples => config/examples}/5.rule_default_direct/office.rule (100%) rename {examples => config/examples}/6.rule_default_forwarder/bypass.rule (100%) rename {examples => config/examples}/6.rule_default_forwarder/glider.conf (100%) rename {examples => config/examples}/7.rule_multiple_rule_files/glider.conf (100%) rename {examples => config/examples}/7.rule_multiple_rule_files/home.rule (100%) rename {examples => config/examples}/7.rule_multiple_rule_files/office.rule (100%) rename {examples => config/examples}/README.md (100%) rename glider.conf.example => config/glider.conf.example (100%) rename {rules.d => config/rules.d}/bypass.rule.example (100%) rename {rules.d => config/rules.d}/office.rule.example (100%) diff --git a/.gitignore b/.gitignore index e16b335..f009e21 100644 --- a/.gitignore +++ b/.gitignore @@ -18,8 +18,8 @@ /*.conf /*.rule -rules.d/*.rule -rules.d/*.list +config/rules.d/*.rule +config/rules.d/*.list glider bak/ diff --git a/README.md b/README.md index 2dbbb26..176fb38 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,18 @@ we can set up local listeners as proxy, and forward requests to internet via for ``` ## Features -Listen(local proxy): +Listen(local server): - Socks5 proxy - Http proxy - SS proxy - Linux transparent proxy(iptables redirect) - TCP tunnel -- DNS tunnel(udp2tcp) +- DNS forwarding server(udp2tcp) + - Listen on UDP and forward dns requests to remote dns server in TCP via forwarders + - Specify different upstream dns server based on destinations(in rule file) + - Tunnel mode: forward to a specified upstream dns server + - Add resolved IPs to proxy rules + - Add resolved IPs to ipset Forward(upstream proxy): - Socks5 proxy @@ -27,14 +32,12 @@ General: - Forward chain - HA or RR strategy for multiple forwarders - Periodical proxy checking -- Rule proxy based on destionation: [Config Examples](examples) +- Rule proxy based on destinations: [Config Examples](config/examples) +- Ipset management TODO: -- [x] Specify different remote dns server in rule file -- [x] Improve DNS forwarder to resolve domain name and add ip to proxy rules -- [x] IPSet management -- [x] Improve DNS forwarder to resolve domain name and add ip to ipset -- [ ] UDP Tunnel & UDP Relay +- [ ] UDP Tunnel +- [ ] Linux tproxy support & UDP Relay - [ ] TUN/TAP device support - [ ] Code refactoring: support proxy registering so it can be pluggable - [ ] Conditional compilation so we can abandon needless proxy type and get a smaller binary size @@ -196,8 +199,8 @@ checkduration=30 #rulefile=home.rule ``` See: -- [glider.conf.example](glider.conf.example) -- [examples](examples) +- [glider.conf.example](conf/glider.conf.example) +- [examples](conf/examples) ## Rule File Rule file, **same as the config file but specify forwarders based on destinations**: @@ -221,8 +224,8 @@ ip=1.1.1.1 cidr=192.168.100.0/24 ``` See: -- [office.rule.example](rules.d/office.rule.example) -- [examples](examples) +- [office.rule.example](conf/rules.d/office.rule.example) +- [examples](conf/examples) ## Service - systemd: [https://github.com/nadoo/glider/blob/master/systemd/](https://github.com/nadoo/glider/blob/master/systemd/) diff --git a/conf.go b/conf.go index c18f9a4..bfd3866 100644 --- a/conf.go +++ b/conf.go @@ -39,7 +39,7 @@ func confInit() { flag.StringSliceUniqVar(&conf.RuleFile, "rulefile", nil, "rule file path") flag.StringVar(&conf.RulesDir, "rules-dir", "rules.d", "rule file folder") - flag.StringVar(&conf.DNS, "dns", "", "dns listen address") + flag.StringVar(&conf.DNS, "dns", "", "dns forwarder server listen address") flag.StringSliceUniqVar(&conf.DNSServer, "dnsserver", []string{"8.8.8.8:53"}, "remote dns server") flag.StringVar(&conf.IPSet, "ipset", "", "ipset name") @@ -146,7 +146,7 @@ func usage() { fmt.Fprintf(os.Stderr, "\n") fmt.Fprintf(os.Stderr, "Available methods for ss:\n") - // fmt.Fprintf(os.Stderr, " "+ListCipher()) + fmt.Fprintf(os.Stderr, " "+ListCipher()) fmt.Fprintf(os.Stderr, "\n") fmt.Fprintf(os.Stderr, " NOTE: chacha20-ietf-poly1305 = AEAD_CHACHA20_POLY1305\n") fmt.Fprintf(os.Stderr, "\n") diff --git a/examples/1.simple_proxy_service/glider.conf b/config/examples/1.simple_proxy_service/glider.conf similarity index 100% rename from examples/1.simple_proxy_service/glider.conf rename to config/examples/1.simple_proxy_service/glider.conf diff --git a/examples/2.one_forwarder/glider.conf b/config/examples/2.one_forwarder/glider.conf similarity index 100% rename from examples/2.one_forwarder/glider.conf rename to config/examples/2.one_forwarder/glider.conf diff --git a/examples/3.forward_chain/glider.conf b/config/examples/3.forward_chain/glider.conf similarity index 100% rename from examples/3.forward_chain/glider.conf rename to config/examples/3.forward_chain/glider.conf diff --git a/examples/4.multiple_forwarders/glider.conf b/config/examples/4.multiple_forwarders/glider.conf similarity index 100% rename from examples/4.multiple_forwarders/glider.conf rename to config/examples/4.multiple_forwarders/glider.conf diff --git a/examples/5.rule_default_direct/glider.conf b/config/examples/5.rule_default_direct/glider.conf similarity index 100% rename from examples/5.rule_default_direct/glider.conf rename to config/examples/5.rule_default_direct/glider.conf diff --git a/examples/5.rule_default_direct/office.rule b/config/examples/5.rule_default_direct/office.rule similarity index 100% rename from examples/5.rule_default_direct/office.rule rename to config/examples/5.rule_default_direct/office.rule diff --git a/examples/6.rule_default_forwarder/bypass.rule b/config/examples/6.rule_default_forwarder/bypass.rule similarity index 100% rename from examples/6.rule_default_forwarder/bypass.rule rename to config/examples/6.rule_default_forwarder/bypass.rule diff --git a/examples/6.rule_default_forwarder/glider.conf b/config/examples/6.rule_default_forwarder/glider.conf similarity index 100% rename from examples/6.rule_default_forwarder/glider.conf rename to config/examples/6.rule_default_forwarder/glider.conf diff --git a/examples/7.rule_multiple_rule_files/glider.conf b/config/examples/7.rule_multiple_rule_files/glider.conf similarity index 100% rename from examples/7.rule_multiple_rule_files/glider.conf rename to config/examples/7.rule_multiple_rule_files/glider.conf diff --git a/examples/7.rule_multiple_rule_files/home.rule b/config/examples/7.rule_multiple_rule_files/home.rule similarity index 100% rename from examples/7.rule_multiple_rule_files/home.rule rename to config/examples/7.rule_multiple_rule_files/home.rule diff --git a/examples/7.rule_multiple_rule_files/office.rule b/config/examples/7.rule_multiple_rule_files/office.rule similarity index 100% rename from examples/7.rule_multiple_rule_files/office.rule rename to config/examples/7.rule_multiple_rule_files/office.rule diff --git a/examples/README.md b/config/examples/README.md similarity index 100% rename from examples/README.md rename to config/examples/README.md diff --git a/glider.conf.example b/config/glider.conf.example similarity index 100% rename from glider.conf.example rename to config/glider.conf.example diff --git a/rules.d/bypass.rule.example b/config/rules.d/bypass.rule.example similarity index 100% rename from rules.d/bypass.rule.example rename to config/rules.d/bypass.rule.example diff --git a/rules.d/office.rule.example b/config/rules.d/office.rule.example similarity index 100% rename from rules.d/office.rule.example rename to config/rules.d/office.rule.example