From cfce89e79558d6f754528ba08bf648e00d8d7e5b Mon Sep 17 00:00:00 2001 From: nadoo <287492+nadoo@users.noreply.github.com> Date: Sun, 30 Jul 2017 11:44:34 +0800 Subject: [PATCH] add some example configs --- .gitignore | 4 +- README.md | 1 + examples/README.md | 92 +++++++++++++++++++ examples/forward_chain/glider.conf | 8 ++ examples/multiple_forwarders/glider.conf | 21 +++++ examples/one_forwarder/glider.conf | 7 ++ examples/rule_default_direct/glider.conf | 9 ++ examples/rule_default_direct/office.rule | 29 ++++++ examples/rule_default_forwarder/bypass.rule | 8 ++ examples/rule_default_forwarder/glider.conf | 22 +++++ examples/rule_multiple_rule_files/glider.conf | 12 +++ examples/rule_multiple_rule_files/home.rule | 18 ++++ examples/rule_multiple_rule_files/office.rule | 18 ++++ examples/simple_proxy_service/glider.conf | 5 + office.rule.example | 7 ++ 15 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 examples/README.md create mode 100644 examples/forward_chain/glider.conf create mode 100644 examples/multiple_forwarders/glider.conf create mode 100644 examples/one_forwarder/glider.conf create mode 100644 examples/rule_default_direct/glider.conf create mode 100644 examples/rule_default_direct/office.rule create mode 100644 examples/rule_default_forwarder/bypass.rule create mode 100644 examples/rule_default_forwarder/glider.conf create mode 100644 examples/rule_multiple_rule_files/glider.conf create mode 100644 examples/rule_multiple_rule_files/home.rule create mode 100644 examples/rule_multiple_rule_files/office.rule create mode 100644 examples/simple_proxy_service/glider.conf diff --git a/.gitignore b/.gitignore index 3e1e8c8..dafd4ed 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ # custom *.zip -*.conf -*.rule +/*.conf +/*.rule glider bak/ diff --git a/README.md b/README.md index 58ddfd8..f1463a6 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ TODO: - 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 +- SSH tunnel support ## Install Binary: diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..d10a2ef --- /dev/null +++ b/examples/README.md @@ -0,0 +1,92 @@ + +# Glider Configuration Examples + +## Simple Proxy Service +Just listen on 8443 as HTTP/SOCKS5 proxy on the same port, forward all requests directly. + +``` + Clients --> Listener --> Internet +``` + +- [simple_proxy_service](simple_proxy_service) + +## One remote upstream proxy + +``` + Clients --> Listener --> Forwarder --> Internet +``` + +- [one_forwarder](one_forwarder) + +## One remote upstream PROXY CHAIN + +``` + Clients --> Listener --> Forwarder1 --> Forwarder2 --> Internet +``` + +- [forward_chain](forward_chain) + +## Multiple upstream proxies + +``` + |Forwarder ----------------->| + Clients --> Listener --> | | Internet + |Forwarder --> Forwarder->...| +``` + +- [multiple_forwarders](multiple_forwarders) + + +## With Rule File: Default Direct, Rule file use forwarder + +Default: +``` + Clients --> Listener --> Internet +``` +Destinations specified in rule file: +``` + |Forwarder ----------------->| + Clients --> Listener --> | | Internet + |Forwarder --> Forwarder->...| +``` + +- [rule_default_direct](rule_default_direct) + + +## With Rule File: Default use forwarder, rule file use direct + +Default: +``` + |Forwarder ----------------->| + Clients --> Listener --> | | Internet + |Forwarder --> Forwarder->...| +``` + +Destinations specified in rule file: +``` + Clients --> Listener --> Internet +``` + +- [rule_default_forwarder](rule_default_forwarder) + + +## With Rule File: multiple rule files + +Default: +``` + Clients --> Listener --> Internet +``` +Destinations specified in rule file1: +``` + |Forwarder1 ----------------->| + Clients --> Listener --> | | Internet + |Forwarder2 --> Forwarder3->...| +``` +Destinations specified in rule file2: +``` + |Forwarder4 ----------------->| + Clients --> Listener --> | | Internet + |Forwarder5 --> Forwarder6->...| +``` + +- [rule_multiple_rule_files](rule_multiple_rule_files) \ No newline at end of file diff --git a/examples/forward_chain/glider.conf b/examples/forward_chain/glider.conf new file mode 100644 index 0000000..79d1c81 --- /dev/null +++ b/examples/forward_chain/glider.conf @@ -0,0 +1,8 @@ + +# Verbose mode, print logs +verbose=True + +listen=:8443 + +# first connect forwarder1 then forwarder2 then internet +forward=http://forwarder1:8080,socks5://forwarder2:1080, \ No newline at end of file diff --git a/examples/multiple_forwarders/glider.conf b/examples/multiple_forwarders/glider.conf new file mode 100644 index 0000000..26f839a --- /dev/null +++ b/examples/multiple_forwarders/glider.conf @@ -0,0 +1,21 @@ + +# Verbose mode, print logs +verbose=True + +listen=:8443 + +# first connect forwarder1 then forwarder2 then internet +forward=http://forwarder1:8080,socks5://forwarder2:1080, +forward=http://1.1.1.1:8080 + +# Round Robin mode: rr +# High Availability mode: ha +strategy=rr + +# Used to connect via forwarders, if the host is unreachable, the forwarder +# will be set to disabled. +# MUST BE A HTTP or HTTPS WEBSITE HOST ADDRESS +checkwebsite=www.apple.com:443 + +# check duration(seconds) +checkduration=30 diff --git a/examples/one_forwarder/glider.conf b/examples/one_forwarder/glider.conf new file mode 100644 index 0000000..a519c2e --- /dev/null +++ b/examples/one_forwarder/glider.conf @@ -0,0 +1,7 @@ + +# Verbose mode, print logs +verbose=True + +listen=:8443 + +forward=socks5://192.168.1.10:1080 \ No newline at end of file diff --git a/examples/rule_default_direct/glider.conf b/examples/rule_default_direct/glider.conf new file mode 100644 index 0000000..507a34f --- /dev/null +++ b/examples/rule_default_direct/glider.conf @@ -0,0 +1,9 @@ + +# Verbose mode, print logs +verbose=True + +listen=:8443 + +# NOTE HERE: +# Specify a rule file +rulefile=office.rule \ No newline at end of file diff --git a/examples/rule_default_direct/office.rule b/examples/rule_default_direct/office.rule new file mode 100644 index 0000000..f8f731d --- /dev/null +++ b/examples/rule_default_direct/office.rule @@ -0,0 +1,29 @@ + + +# first connect forwarder1 then forwarder2 then internet +forward=http://forwarder1:8080,socks5://forwarder2:1080, +forward=http://1.1.1.1:8080 + +# Round Robin mode: rr +# High Availability mode: ha +strategy=rr + +checkwebsite=www.apple.com:443 +checkduration=30 + + +# matches abc.com and *.abc.com +domain=abc.com + +# matches 1.1.1.1 +ip=1.1.1.1 + +# matches 192.168.100.0/24 +cidr=192.168.100.0/24 + +domain=example1.com +domain=example2.com +domain=example3.com +ip=2.2.2.2 +ip=3.3.3.3 +cidr=172.16.0.0/24 diff --git a/examples/rule_default_forwarder/bypass.rule b/examples/rule_default_forwarder/bypass.rule new file mode 100644 index 0000000..3cda452 --- /dev/null +++ b/examples/rule_default_forwarder/bypass.rule @@ -0,0 +1,8 @@ + +# matches abc.com and *.abc.com +domain=abc.com + +ip=127.0.0.1 +cidr=192.168.0.0/24 +cidr=192.168.1.0/24 +cidr=172.16.0.0/24 \ No newline at end of file diff --git a/examples/rule_default_forwarder/glider.conf b/examples/rule_default_forwarder/glider.conf new file mode 100644 index 0000000..99664f9 --- /dev/null +++ b/examples/rule_default_forwarder/glider.conf @@ -0,0 +1,22 @@ + + +# Verbose mode, print logs +verbose=True + +listen=:8443 + +# first connect forwarder1 then forwarder2 then internet +forward=http://forwarder1:8080,socks5://forwarder2:1080, +forward=http://1.1.1.1:8080 + +# Round Robin mode: rr +# High Availability mode: ha +strategy=rr + +checkwebsite=www.apple.com:443 +checkduration=30 + + +# NOTE HERE: +# Specify a rule file +rulefile=bypass.rule \ No newline at end of file diff --git a/examples/rule_multiple_rule_files/glider.conf b/examples/rule_multiple_rule_files/glider.conf new file mode 100644 index 0000000..43f291e --- /dev/null +++ b/examples/rule_multiple_rule_files/glider.conf @@ -0,0 +1,12 @@ + +# Verbose mode, print logs +verbose=True + +listen=:8443 + +# NOTE HERE: +# specify a rule file +rulefile=office.rule + +# specify another rule file +rulefile=home.rule \ No newline at end of file diff --git a/examples/rule_multiple_rule_files/home.rule b/examples/rule_multiple_rule_files/home.rule new file mode 100644 index 0000000..b104297 --- /dev/null +++ b/examples/rule_multiple_rule_files/home.rule @@ -0,0 +1,18 @@ + + +forward=http://forwarder4:8080 + +# first connect forwarder1 then forwarder2 then internet +forward=http://forwarder5:8080,socks6://forwarder3:1080, + + +# Round Robin mode: rr +# High Availability mode: ha +strategy=rr + +checkwebsite=www.apple.com:443 +checkduration=30 + + +# matches 192.168.0.0/16 +cidr=192.168.0.0/16 diff --git a/examples/rule_multiple_rule_files/office.rule b/examples/rule_multiple_rule_files/office.rule new file mode 100644 index 0000000..9283076 --- /dev/null +++ b/examples/rule_multiple_rule_files/office.rule @@ -0,0 +1,18 @@ + + +forward=http://forwarder1:8080 + +# first connect forwarder1 then forwarder2 then internet +forward=http://forwarder2:8080,socks5://forwarder3:1080, + + +# Round Robin mode: rr +# High Availability mode: ha +strategy=rr + +checkwebsite=www.apple.com:443 +checkduration=30 + + +# matches 172.16.0.0/24 +cidr=172.16.0.0/24 diff --git a/examples/simple_proxy_service/glider.conf b/examples/simple_proxy_service/glider.conf new file mode 100644 index 0000000..8c8e8c9 --- /dev/null +++ b/examples/simple_proxy_service/glider.conf @@ -0,0 +1,5 @@ + +# Verbose mode, print logs +verbose=True + +listen=:8443 \ No newline at end of file diff --git a/office.rule.example b/office.rule.example index 362c741..cb4b97a 100644 --- a/office.rule.example +++ b/office.rule.example @@ -27,3 +27,10 @@ ip=1.1.1.1 # matches 192.168.100.0/24 cidr=192.168.100.0/24 + +domain=example1.com +domain=example2.com +domain=example3.com +ip=2.2.2.2 +ip=3.3.3.3 +cidr=172.16.0.0/24