diff --git a/bin/go-proxy b/bin/go-proxy index d8e19a1..cecc182 100755 Binary files a/bin/go-proxy and b/bin/go-proxy differ diff --git a/src/go-proxy/constants.go b/src/go-proxy/constants.go index 943c619..376f5ed 100644 --- a/src/go-proxy/constants.go +++ b/src/go-proxy/constants.go @@ -42,6 +42,14 @@ var ( }() ) +var wellKnownHTTPPorts = map[uint16]bool{ + 80: true, + 8000: true, + 8008: true, // alternative HTTP port + 8080: true, + 3000: true, // adguardhome, gogs, etc +} + var ( StreamSchemes = []string{StreamType_TCP, StreamType_UDP} // TODO: support "tcp:udp", "udp:tcp" HTTPSchemes = []string{"http", "https"} @@ -92,6 +100,7 @@ var ( Timeout: 5 * time.Second, KeepAlive: 5 * time.Second, }).DialContext, + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }, } ) @@ -147,4 +156,4 @@ var logLevel = func() logrus.Level { logrus.SetLevel(logrus.DebugLevel) } return logrus.GetLevel() -}() \ No newline at end of file +}() diff --git a/src/go-proxy/docker_provider.go b/src/go-proxy/docker_provider.go index a90c939..5b7f029 100755 --- a/src/go-proxy/docker_provider.go +++ b/src/go-proxy/docker_provider.go @@ -201,6 +201,11 @@ func selectPort(c *types.Container) uint16 { } func selectPortInternal(c *types.Container, getPort func(types.Port) uint16) uint16 { + for _, p := range c.Ports { + if isWellKnownHTTPPort(p.PrivatePort) { + return getPort(p) + } + } for _, p := range c.Ports { if port := getPort(p); port != 0 { return port @@ -208,3 +213,8 @@ func selectPortInternal(c *types.Container, getPort func(types.Port) uint16) uin } return 0 } + +func isWellKnownHTTPPort(port uint16) bool { + _, ok := wellKnownHTTPPorts[port] + return ok +} \ No newline at end of file