# Command line 設定 VNC 遠端桌面 ###### tags: `setting` ## 前言 最近由於工作需要,我需要遠端連線進行工作。然而,我所需處理的任務常常涉及到圖形操作,並不適合僅使用終端 terminal 文字介面。因此,我決定在遠端安裝 [VNC](https://zh.wikipedia.org/zh-tw/VNC) 伺服器,然後在本地使用 VNC 客戶端 Client 進行連線,以便操作圖形使用者介面 [GUI](https://zh.wikipedia.org/zh-tw/%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2)。 為什麼選擇使用 VNC 呢?因為在我實習的公司中就是使用 VNC 界面進行開發伺服器連線,所以我對其比較熟悉。雖然之前我也使用過 MobaXterm 進行圖形相關的設定(X server),但這種方法仍需要使用很多命令 Command,因此還是決定安裝 VNC 比較實在。 本文主要內容將重點介紹如何在遠端伺服器設置 VNC 以及在本地進行連線的步驟。 ## VNC 簡介 VNC 是一種連接系統,允許使用鍵盤和滑鼠與伺服器上的圖形桌面環境進行互動。本篇文將介紹如何使用 [TigereVNC](https://www.tightvnc.com/) 設置 VNC 伺服器,並通過 SSH 安全連接到。 ## 在 Ubuntu 上安裝 VNC 一開始先更新所有 packet ```sudo apt update``` 再來安裝 [Xfce](https://xfce.org/?lang=zh_TW) packets 因為 Ubuntu 可能還沒有相關的環境 ```sudo apt install xfce4 xfce4-goodies``` 接著安裝 TigerVNC Server ```sudo apt install tightvncserver``` 測試 vncserver 是否安裝成功 ```vncserver``` ``` Output You will require a password to access your desktops. Password: Verify: ``` 出現上述結果代表已經安裝成功,輸入六到八位字數密碼 輸入完密碼後會出現 ``` Output Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log ``` `:1` 代表顯示埠,預設值從`5900`開始,所以`:1`表示`5901` 如果需要改密碼,輸入指令`vncpasswd` ## 在 Ubuntu 上設置 VNC 如果要關掉特定連接埠可以使用指令 `vncserver -kill :1` 結果會顯示特定 PID 被刪除 ``` Output Killing Xtightvnc process ID 17648 ``` 進入設定檔中更改預設指令 ``` vim ~/.vnc/xstartup ``` 貼入以下文字 ```#!/bin/bash xrdb $HOME/.Xresources startxfce4 & ``` 如果需要設定可以到`.Xresources` 中進行設定 為了保證`vncserver`正常執行,記得將檔案改成可執行模式 `chmod +x ~/.vnc/xstartup ` 接著就可以再次執行 VNC,有特殊需求的話可以加入設定 `vncserver -localhost -geometry 1080x960` ## 在本地端連接 VNC 因為我所使用的遠端電腦需要 VPN 進行連線,所以我先在本地端建立 SSH 的連接通道 `ssh -L 5901:localhost:5901 -N -f <usename>@<ip>` 建立玩通道之後就可以透過 VNC Client 連線,我用習慣的是 [RealVNC](https://www.realvnc.com/en/) 由於前面已經將 SSH 綁在 localhost 上了,用戶端直接在地址區輸入`localhost:5901`就可以進行遠端連線了 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up