Accesso remoto con VNC su Mint LMDE6

Installazione di VNC come servizio. Tutorial provato in Mint LMDE6, dovrebbe andare bene anche per Mint 22 Cinnamon.

  • installare il server VNC con
sudo apt install tigervnc-standalone-server tigervnc-common
  • avviare il server per la prima volta per creare il file di configurazione
vncserver

seguire le istruzioni a video. Verrà richiesta una password. Se fosse necessario modificarla poi in seguito, usare il comando vncpasswd

Il file di configurazione adesso è stato creato nella directory nascosta .vnc all’interno della directory home dell’utente che ha lanciato il comando.

  • Interrompere il servizio con vncserver -kill :1 , dove :1 indica il numero dello “schermo” visibile da remoto. (Lanciando una seconda volta il server sarà possibile vedere lo schermo :2 e così via).
  • Creare nella directory .vnc lo script di avvio con le impostazioni:

nano xstartup , scriverci le seguenti righe:

PATH=/usr/bin:/usr/sbin
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec cinnamon-session-cinnamon
#exec startxfce4

salvare e rendere il file eseguibile con chmod u+x xstartup

NB: la riga exec cinnamon-session-cinnamon va bene per LMDE, per vedere quali gestori di finestre sono installati nel PC in uso, usare il comando

ls /usr/share/xsessions/

se ad esempio è installato xfce, si può decommentare la riga exec startxfce4 e commentare o eliminare quella per cinnamon.

(Se necessario è possibile installare xfce con sudo apt install xfce4 xfce4-goodies, dopo aver provato cinnamon ho preferito xfce perché occupa meno risorse)

  • Creare il file config con le seguenti righe:
localhost=no
geometry=1440x900
depth=24
dpi=96

per: scegliere la risoluzione che verrà usata per lo schermo visualizzato da remoto, e abilitare la ricezione dei collegamenti (di default vncserver ascolta solo su localhost, la riga localhost=no permette i collegamenti)

A questo punto si può riavviare il server con vncserver e verificare che tutto funzioni collegandosi da un client

  • Per impostare vncserver come servizio, creare il file
    /etc/systemd/system/vncserver@.service

e inserirci il seguente testo

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=utente
Group=utente
WorkingDirectory=/home/utente

PIDFile=/home/utente/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1440x900 -localhost no
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
  • aggiornare systemctl con sudo systemctl daemon-reload e abilitare il servizio con sudo systemctl enable vncserver@1.service (@1 indica che il servizio partirà come schermo :1). Modificare le righe User e Group per adattarle al proprio nome utente, e geometry secondo le dimensioni desiderate per lo schermo remoto.
    A questo punto ad ogni avvio del server remoto, il servizio partirà in automatico. Sarà possibile fermarlo e riavviarlo con la stessa sintassi usata per gli altri servizi usando il comando sudo systemctl vncserver@1 e le opzioni start, stop e status.
    (esempio: sudo systemctl start vncserver@1)
  • Sarà quindi possibile collegarsi al server con un client VNC come remmina impostando nella connessione l’IP del server seguito da :5901, impostando l’utente e fornendo la password scelta al momento della configurazione.
fonti:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-debian-11
https://stackoverflow.com/questions/59709214/tigervncserver-crashes-unless-started-with-sudo
https://superuser.com/questions/564658/vnc-viewer-error-unable-connect-to-socket-connection-refused-111