diff --git a/main.go b/main.go index ca86508..613ca23 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "encoding/json" "flag" "fmt" + "net" "net/http" "net/netip" "os" @@ -86,8 +87,8 @@ var ( dockerSocket string dockerEnforceNetworkValidation string dockerEnforceNetworkValidationBool bool - pingInterval = 1 * time.Second - pingTimeout = 2 * time.Second + pingInterval = 2 * time.Second + pingTimeout = 3 * time.Second publicKey wgtypes.Key pingStopChan chan struct{} stopFunc func() @@ -330,7 +331,7 @@ func main() { clientsHandleNewtConnection(wgData.PublicKey) - logger.Info("Received: %+v", msg) + logger.Debug("Received: %+v", msg) tun, tnet, err = netstack.CreateNetTUN( []netip.Addr{netip.MustParseAddr(wgData.TunnelIP)}, []netip.Addr{netip.MustParseAddr(dns)}, @@ -345,6 +346,14 @@ func main() { "wireguard: ", )) + host, _, err := net.SplitHostPort(wgData.Endpoint) + if err != nil { + logger.Error("Failed to split endpoint: %v", err) + return + } + + logger.Info("Connecting to endpoint: %s", host) + endpoint, err := resolveDomain(wgData.Endpoint) if err != nil { logger.Error("Failed to resolve endpoint: %v", err) @@ -369,7 +378,7 @@ persistent_keepalive_interval=5`, fixKey(privateKey.String()), fixKey(wgData.Pub logger.Error("Failed to bring up WireGuard device: %v", err) } - logger.Info("WireGuard device created. Lets ping the server now...") + logger.Debug("WireGuard device created. Lets ping the server now...") // Even if pingWithRetry returns an error, it will continue trying in the background if pingWithRetryStopChan != nil { @@ -382,7 +391,7 @@ persistent_keepalive_interval=5`, fixKey(privateKey.String()), fixKey(wgData.Pub // Always mark as connected and start the proxy manager regardless of initial ping result // as the pings will continue in the background if !connected { - logger.Info("Starting ping check") + logger.Debug("Starting ping check") pingStopChan = startPingCheck(tnet, wgData.ServerIP, client) } @@ -417,7 +426,6 @@ persistent_keepalive_interval=5`, fixKey(privateKey.String()), fixKey(wgData.Pub // Mark as disconnected connected = false - // start asking for the exit nodes again if stopFunc != nil { stopFunc() // stop the ws from sending more requests stopFunc = nil // reset stopFunc to nil to avoid double stopping @@ -438,7 +446,7 @@ persistent_keepalive_interval=5`, fixKey(privateKey.String()), fixKey(wgData.Pub // Mark as disconnected connected = false - logger.Info("Tunnel destroyed, ready for reconnection") + logger.Info("Tunnel destroyed") }) client.RegisterHandler("newt/ping/exitNodes", func(msg websocket.WSMessage) { @@ -547,7 +555,7 @@ persistent_keepalive_interval=5`, fixKey(privateKey.String()), fixKey(wgData.Pub }) client.RegisterHandler("newt/tcp/add", func(msg websocket.WSMessage) { - logger.Info("Received: %+v", msg) + logger.Debug("Received: %+v", msg) // if there is no wgData or pm, we can't add targets if wgData.TunnelIP == "" || pm == nil { diff --git a/proxy/manager.go b/proxy/manager.go index 0792acb..35d023a 100644 --- a/proxy/manager.go +++ b/proxy/manager.go @@ -213,7 +213,8 @@ func (pm *ProxyManager) startTarget(proto, listenIP string, port int, targetAddr return fmt.Errorf("unsupported protocol: %s", proto) } - logger.Info("Started %s proxy from %s:%d to %s", proto, listenIP, port, targetAddr) + logger.Info("Started %s proxy to %s", proto, targetAddr) + logger.Debug("Started %s proxy from %s:%d to %s", proto, listenIP, port, targetAddr) return nil } diff --git a/util.go b/util.go index c0f634c..9bdab59 100644 --- a/util.go +++ b/util.go @@ -112,10 +112,10 @@ func pingWithRetry(tnet *netstack.Net, dst string, timeout time.Duration) (stopC retryDelay := initialRetryDelay // First try with the initial parameters - logger.Info("Ping attempt %d", attempt) + logger.Debug("Ping attempt %d", attempt) if latency, err := ping(tnet, dst, timeout); err == nil { // Successful ping - logger.Info("Ping latency: %v", latency) + logger.Debug("Ping latency: %v", latency) logger.Info("Tunnel connection to server established successfully!") if healthFile != "" { err := os.WriteFile(healthFile, []byte("ok"), 0644) @@ -137,7 +137,7 @@ func pingWithRetry(tnet *netstack.Net, dst string, timeout time.Duration) (stopC case <-stopChan: return default: - logger.Info("Ping attempt %d", attempt) + logger.Debug("Ping attempt %d", attempt) if latency, err := ping(tnet, dst, timeout); err != nil { logger.Warn("Ping attempt %d failed: %v", attempt, err) @@ -155,8 +155,8 @@ func pingWithRetry(tnet *netstack.Net, dst string, timeout time.Duration) (stopC attempt++ } else { // Successful ping - logger.Info("Ping succeeded after %d attempts", attempt) - logger.Info("Ping latency: %v", latency) + logger.Debug("Ping succeeded after %d attempts", attempt) + logger.Debug("Ping latency: %v", latency) logger.Info("Tunnel connection to server established successfully!") if healthFile != "" { err := os.WriteFile(healthFile, []byte("ok"), 0644)