diff --git a/agent/client.go b/agent/client.go index 4710b8c6..c5104014 100644 --- a/agent/client.go +++ b/agent/client.go @@ -20,7 +20,7 @@ import ( "github.com/fxamacker/cbor/v2" "github.com/lxzan/gws" "golang.org/x/crypto/ssh" - "golang.org/x/net/proxy" + "golang.org/x/net/proxy" ) const ( @@ -105,6 +105,11 @@ func (client *WebSocketClient) getOptions() *gws.ClientOption { } client.hubURL.Path = path.Join(client.hubURL.Path, "api/beszel/agent-connect") + // make sure BESZEL_AGENT_ALL_PROXY works (GWS only checks ALL_PROXY) + if val := os.Getenv("BESZEL_AGENT_ALL_PROXY"); val != "" { + os.Setenv("ALL_PROXY", val) + } + client.options = &gws.ClientOption{ Addr: client.hubURL.String(), TlsConfig: &tls.Config{InsecureSkipVerify: true}, @@ -113,7 +118,7 @@ func (client *WebSocketClient) getOptions() *gws.ClientOption { "X-Token": []string{client.token}, "X-Beszel": []string{beszel.Version}, }, - NewDialer: func() (gws.Dialer, error) { + NewDialer: func() (gws.Dialer, error) { return proxy.FromEnvironment(), nil }, }