From bc407527f4a9768aff8ba5a127c704e8366dda82 Mon Sep 17 00:00:00 2001 From: Viktor Liu Date: Mon, 18 May 2026 14:48:54 +0200 Subject: [PATCH] Register VNC netstack service only when netstack is active --- client/internal/engine_vnc.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/client/internal/engine_vnc.go b/client/internal/engine_vnc.go index fa62f8396..44bb3ea2e 100644 --- a/client/internal/engine_vnc.go +++ b/client/internal/engine_vnc.go @@ -148,11 +148,13 @@ func (e *Engine) startVNCServer(sshConf *mgmProto.SSHConfig) error { e.vncSrv = srv - if registrar, ok := e.firewall.(interface { - RegisterNetstackService(protocol nftypes.Protocol, port uint16) - }); ok { - registrar.RegisterNetstackService(nftypes.TCP, vncInternalPort) - log.Debugf("registered VNC service for TCP:%d", vncInternalPort) + if netstackNet := e.wgInterface.GetNet(); netstackNet != nil { + if registrar, ok := e.firewall.(interface { + RegisterNetstackService(protocol nftypes.Protocol, port uint16) + }); ok { + registrar.RegisterNetstackService(nftypes.TCP, vncInternalPort) + log.Debugf("registered VNC service with netstack for TCP:%d", vncInternalPort) + } } if err := e.setupVNCPortRedirection(); err != nil { @@ -244,10 +246,12 @@ func (e *Engine) stopVNCServer() error { log.Warnf("cleanup VNC port redirection: %v", err) } - if registrar, ok := e.firewall.(interface { - UnregisterNetstackService(protocol nftypes.Protocol, port uint16) - }); ok { - registrar.UnregisterNetstackService(nftypes.TCP, vncInternalPort) + if netstackNet := e.wgInterface.GetNet(); netstackNet != nil { + if registrar, ok := e.firewall.(interface { + UnregisterNetstackService(protocol nftypes.Protocol, port uint16) + }); ok { + registrar.UnregisterNetstackService(nftypes.TCP, vncInternalPort) + } } log.Info("stopping VNC server")