diff --git a/.gitignore b/.gitignore index 07cb34b..b05f537 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,5 @@ _testmain.go cmd/gost/gost snap -*.pem \ No newline at end of file +*.pem +*.yaml \ No newline at end of file diff --git a/cmd/gost/cmd.go b/cmd/gost/cmd.go index 6b31d07..8a66478 100644 --- a/cmd/gost/cmd.go +++ b/cmd/gost/cmd.go @@ -306,12 +306,20 @@ func buildServiceConfig(url *url.URL) (*config.ServiceConfig, error) { // forward mode if remotes := strings.Trim(url.EscapedPath(), "/"); remotes != "" { svc.Forwarder = &config.ForwarderConfig{ - Targets: strings.Split(remotes, ","), + // Targets: strings.Split(remotes, ","), + } + for i, addr := range strings.Split(remotes, ",") { + svc.Forwarder.Nodes = append(svc.Forwarder.Nodes, + &config.NodeConfig{ + Name: fmt.Sprintf("target-%d", i), + Addr: addr, + }) } if handler != "relay" { if listener == "tcp" || listener == "udp" || listener == "rtcp" || listener == "rudp" || - listener == "tun" || listener == "tap" { + listener == "tun" || listener == "tap" || + listener == "dns" { handler = listener } else { handler = "forward" diff --git a/go.mod b/go.mod index 94796f5..9807dd6 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.18 replace github.com/templexxx/cpu v0.0.7 => github.com/templexxx/cpu v0.0.10-0.20211111114238-98168dcec14a require ( - github.com/go-gost/core v0.0.0-20220823134627-ff51aef51873 - github.com/go-gost/x v0.0.0-20220823134949-bdd239fb09e4 + github.com/go-gost/core v0.0.0-20220825133341-04b4a79b80c2 + github.com/go-gost/x v0.0.0-20220825133537-d043ad94e71b ) require ( @@ -49,7 +49,7 @@ require ( github.com/marten-seemann/qtls-go1-19 v0.1.0 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/miekg/dns v1.1.47 // indirect + github.com/miekg/dns v1.1.50 // indirect github.com/mitchellh/mapstructure v1.4.3 // indirect github.com/mmcloughlin/avo v0.0.0-20200803215136-443f81d77104 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect diff --git a/go.sum b/go.sum index 289475c..390d0dd 100644 --- a/go.sum +++ b/go.sum @@ -119,8 +119,8 @@ github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gost/core v0.0.0-20220823134627-ff51aef51873 h1:e6bpEUHGywqZKcaHDcnZg/rg1nVsbVbGb8HRUKaRkdM= -github.com/go-gost/core v0.0.0-20220823134627-ff51aef51873/go.mod h1:bHVbCS9da6XtKNYMkMUVcck5UqDDUkyC37erVfs4GXQ= +github.com/go-gost/core v0.0.0-20220825133341-04b4a79b80c2 h1:pyFxEUs5ln2rvKDZrk9HKNpJiUYxc4OyEVylkjK4glc= +github.com/go-gost/core v0.0.0-20220825133341-04b4a79b80c2/go.mod h1:bHVbCS9da6XtKNYMkMUVcck5UqDDUkyC37erVfs4GXQ= github.com/go-gost/gosocks4 v0.0.1 h1:+k1sec8HlELuQV7rWftIkmy8UijzUt2I6t+iMPlGB2s= github.com/go-gost/gosocks4 v0.0.1/go.mod h1:3B6L47HbU/qugDg4JnoFPHgJXE43Inz8Bah1QaN9qCc= github.com/go-gost/gosocks5 v0.3.1-0.20211109033403-d894d75b7f09 h1:A95M6UWcfZgOuJkQ7QLfG0Hs5peWIUSysCDNz4pfe04= @@ -129,8 +129,8 @@ github.com/go-gost/relay v0.1.1-0.20211123134818-8ef7fd81ffd7 h1:itaaJhQJ19kUXEB github.com/go-gost/relay v0.1.1-0.20211123134818-8ef7fd81ffd7/go.mod h1:lcX+23LCQ3khIeASBo+tJ/WbwXFO32/N5YN6ucuYTG8= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 h1:xj8gUZGYO3nb5+6Bjw9+tsFkA9sYynrOvDvvC4uDV2I= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451/go.mod h1:/9QfdewqmHdaE362Hv5nDaSWLx3pCmtD870d6GaquXs= -github.com/go-gost/x v0.0.0-20220823134949-bdd239fb09e4 h1:hzt8g3BCzsMJjhkv5pCar2KXZswMXuKnzGlVHmVd2wk= -github.com/go-gost/x v0.0.0-20220823134949-bdd239fb09e4/go.mod h1:OETugRNcdAebZNiho57FIdiyILtwCrhjvGz+c1bKx6k= +github.com/go-gost/x v0.0.0-20220825133537-d043ad94e71b h1:AMOqFNMc+TGhsZEL/LRRX+LUoaUzMc58A228VevaomQ= +github.com/go-gost/x v0.0.0-20220825133537-d043ad94e71b/go.mod h1:+UC1rED7eMompXW69Y/46ARYxtwtBSFp9+WEdedTndw= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -302,8 +302,8 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= -github.com/miekg/dns v1.1.47 h1:J9bWiXbqMbnZPcY8Qi2E3EWIBsIm6MZzzJB9VRg5gL8= -github.com/miekg/dns v1.1.47/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= +github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA= +github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mmcloughlin/avo v0.0.0-20200803215136-443f81d77104 h1:ULR/QWMgcgRiZLUjSSJMU+fW+RDMstRdmnDWj9Q+AsA=