# Ubuntu 22.04 VNC

直接參考這裡

[https://jackfrisht.medium.com/ubuntu-20-04-vnc%E5%AE%89%E8%A3%9D-b8ce6e7dec4a](https://jackfrisht.medium.com/ubuntu-20-04-vnc%E5%AE%89%E8%A3%9D-b8ce6e7dec4a)

先進行更新(可選)

```
sudo apt-get update<br></br>sudo apt-get upgrade
```

Ubuntu 22.04 默認使用 gdm3，導致 VNC 工作異常(這邊案例就是設定檔設定完成沒有效果)，需切換到lightdm

Ubuntu 16.04 默認使用 lightdm 因此一般不需要調整

```
sudo apt install lightdm  ## ubuntu 22.04 需用到<br></br>sudo dpkg-reconfigure lightdm    ## 將配置切換到 lightdm
```

安裝 x11VNC：

```
sudo apt-get install x11vnc -y
```

若未更新直接執行上面指令可能會出現error，解決方法：

```
sudo apt-get update
```

**設定連接的VNC密碼**

```
sudo x11vnc -storepasswd /etc/x11vnc.pass
```

需手工設置一下權限，默認設置的權限可能會導致其他用戶無法正常讀取

```
sudo chmod 755 /etc/x11vnc.pass
```

`rfbport` 參數指定監聽端口，`-forever` 參數指定客戶端斷開後不要停止服務而是繼續等待下一次的連接請求

```
sudo x11vnc -auth guess -rfbauth /etc/x11vnc.pass -rfbport 5900 -forever -display :0
```

**設置開機自動啟動 VNC 功能**

```
sudo gedit /etc/systemd/system/x11vnc.service[Unit]<br></br>Description=Start x11vnc at startup.<br></br>After=multi-user.target<br></br>[Service]<br></br>Type=simple<br></br>ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared<br></br>[Install]<br></br>WantedBy=multi-user.target
```

配置完 systemd 後啟動服務

```
sudo systemctl daemon-reload<br></br> <br></br>sudo systemctl enable x11vnc<br></br> <br></br>sudo systemctl start x11vnc
```

# Step 2. 設定虛擬解析度

注意：需先裝上 Nvidia driver 再執行下列步驟，如果設定完重啟後導致無法開機，請進入命令行模式刪除該文件

Server 如果沒有外接螢幕顯示器，x-session 不能從外部獲取解析度，需要在 xorg.conf 中設置虛擬解析度。

ubuntu 默認已經沒有 /etc/X11/xorg.conf，也沒有必要用 Xorg -configure創建，直接手動創建就行，並添加如下代碼(用戶端螢幕解析度是 1920x1080，可以根據實際情況修改 Virtual 參數)

turn to /etc/X11

```
cd /etc/X11sudo gedit xorg.conf## VNC-virsual montior<br></br>Section "Device"<br></br>        Identifier "Configured Video Device"<br></br>EndSectionSection "Monitor"<br></br>        Identifier "Configured Monitor"<br></br>EndSectionSection "Screen"<br></br>        Identifier "Default Screen"<br></br>        Monitor "Configured Monitor"<br></br>        Device "Configured Video Device"<br></br>        SubSection "Display"<br></br>                   Depth 24<br></br>                   Virtual 1920 1080<br></br>        EndSubSection<br></br>EndSection
```

**Restart System**

```
sudo reboot
```

查看休眠是否開啟

```bash
systemctl status sleep.target  sleep.target - Sleep
```

關閉休眠模式

```bash
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
```

確認休眠是否關閉

```
systemctl status sleep.target
```