Il -localhost l'opzione sta dicendo al server VNC di collegarsi solo all'interfaccia di loopback, in modo che tu possa connetterti al server VNC solo dalla macchina su cui è in esecuzione. Ciò significa che chiunque cerchi di entrare nella tua sessione VNC dovrebbe essere in grado di accedere a quella particolare macchina. Senza -localhost , il tuo server VNC accetterebbe connessioni non locali, quindi un utente malintenzionato potrebbe utilizzare un'altra macchina per tentare di entrare nella tua sessione VNC.
Se intendi utilizzare -localhost , allora dovresti passare -L 5900:localhost:5901 , non -L 5900:vnc.machine:5901 , poiché il tuo server VNC è in ascolto solo sull'interfaccia di loopback (localhost).
jjlin La risposta di copre la risoluzione dei problemi, ma per renderla davvero sicura dovresti anche passare -nolisten tcp a vncserver . Ciò garantisce che non ci sarà un listener TCP aperto su X lato delle cose.