From b81fdd3479c2704b6efc9a75cdb1f339503ee39d Mon Sep 17 00:00:00 2001 From: wweir Date: Mon, 26 Nov 2018 14:15:01 +0800 Subject: [PATCH] Support client deploy to everywhere --- conf/conf.go | 18 +++++++++++------- conf/sower.toml | 27 +++++++++++++++++++++------ dns/dns.go | 4 ++-- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/conf/conf.go b/conf/conf.go index d32d814..8bb1a1c 100644 --- a/conf/conf.go +++ b/conf/conf.go @@ -2,6 +2,7 @@ package conf import ( "flag" + "net" "strconv" "github.com/BurntSushi/toml" @@ -10,12 +11,14 @@ import ( ) var Conf = struct { - ConfigFile string - ServerPort string `toml:"server_port"` - ServerAddr string `toml:"server_addr"` - DnsServer string `toml:"dns_server"` - BlockList []string `toml:"blocklist"` - Verbose int `toml:"verbose"` + ConfigFile string + ServerPort string `toml:"server_port"` + ServerAddr string `toml:"server_addr"` + DnsServer string `toml:"dns_server"` + ClientIP string `toml:"client_ip"` + ClientIPNet net.IP `toml:"-"` + BlockList []string `toml:"blocklist"` + Verbose int `toml:"verbose"` }{} func init() { @@ -23,6 +26,7 @@ func init() { flag.StringVar(&Conf.ServerPort, "P", "5533", "server mode listen port") flag.StringVar(&Conf.ServerAddr, "s", "", "server IP (run in client mode if set)") flag.StringVar(&Conf.DnsServer, "d", "114.114.114.114", "client dns server") + flag.StringVar(&Conf.ClientIP, "c", "127.0.0.1", "client dns service redirect IP") if !flag.Parsed() { flag.Parse() @@ -41,7 +45,7 @@ var OnRefreash = []func() error{func() error { if _, err := toml.DecodeFile(Conf.ConfigFile, &Conf); err != nil { return err } - + Conf.ClientIPNet = net.ParseIP(Conf.ClientIP) // for glog if err := flag.Set("v", strconv.Itoa(Conf.Verbose)); err != nil { return err diff --git a/conf/sower.toml b/conf/sower.toml index b1dee85..37448a8 100644 --- a/conf/sower.toml +++ b/conf/sower.toml @@ -1,17 +1,32 @@ server_port="5533" -server_addr="127.0.0.1:5533" +server_addr="127.0.0.1:5533" # replce it to server "IP" dns_server="114.114.114.114" +# client_ip="192.168.0.1" blocklist=[ "*.google.com", # google + "*.googleusercontent.com", "*.youtube.com", # youtube "*.ytimg.com", "*.ggpht.com", "*.googlevideo.com", - "golang.org", # golang - "*.googlesource.com", - "zh.wikipedia.org", # wikipeida + "*.vimeo.com", "*.facebook.com", # facebook - "static.xx.fbcdn.net", + "*.xx.fbcdn.net", + "*.twitter.com", # twitter + "*.twimg.com", + "*.*.blogspot.com", # blogspot + "www.blogger.com", + "www.feedburner.com", + "img1.blogblog.com", + "*.golang.org", # golang + "go.googlesource.com", + "*.wikipedia.org", # wikipeida + "*.wikimedia.org", + "*.wikisource.org", + "lookup-api.apple.com", + "lookup-api.apple.com.edgekey.net", + "e16991.b.akamaiedge.net", "*.web.telegram.org", # telegram + "cloud.feedly.com", # feedly ] -verbose=1 \ No newline at end of file +verbose=0 \ No newline at end of file diff --git a/dns/dns.go b/dns/dns.go index 578413d..94d13e1 100644 --- a/dns/dns.go +++ b/dns/dns.go @@ -78,8 +78,8 @@ func localA(r *dns.Msg, domain string) *dns.Msg { m := new(dns.Msg) m.SetReply(r) m.Answer = []dns.RR{&dns.A{ - Hdr: dns.RR_Header{Name: domain, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 0}, - A: net.IPv4(127, 0, 0, 1), + Hdr: dns.RR_Header{Name: domain, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 720}, + A: conf.Conf.ClientIPNet, }} return m }