Ubuntu20.04之VNC的安裝與使用
- 安裝圖形桌面
- 選擇安裝gnome桌面
- 選擇安裝xface桌面
- VNC-Server
- 安裝
- 配置
- 開機自啟
- VNC Client
- root用戶無法登入問題
- 臨時方案
- 永久方案
安裝圖形桌面
Ubuntu20.04主流的圖形桌面有gnome和xface兩種,兩種桌面的安裝方式我都會寫,但這里較推薦gnome桌面
選擇安裝gnome桌面
sudo apt update #更新軟件源
sudo apt install ubuntu-gnome-desktop #安裝gnome
sudo systemctl start gdm #剛安裝Gnome,需要啟動GDM服務以初識化桌面
選擇安裝xface桌面
sudo apt update #更新軟件源
sudo apt install xfce4 xfce4-goodies #安裝xface
這個選項選擇是否啟用顯示管理器,選擇第一個并Enter
顯示管理器是一個程序,使您的 Linux 發行版擁有圖形登錄功能。它還負責在您使用用戶名和密碼登錄后啟動顯示服務器和桌面環境
VNC-Server
安裝
VNC分為Server(服務端,用于提供圖像數據)和Client (客戶端,用于接收圖像數據),這里推薦使用TightVNC Server + RealVNC View的組合
sudo apt install tigervnc-standalone-server #在ubuntu上安裝tigervnc-server
安裝完tigervnc后需要啟動一個vncserver來初識化密碼
sudo vncserver #啟動vnc-server
# 首次啟動需要定義一個6-8位的密碼,超8位密碼會被自動截斷You will require a password to access your desktops.Password:
Verify:
Would you like to enter a view-only password (y/n)? n#Tip: 如需修改密碼,你可以通過下面的命令修改你的vncserver的密碼
# sudo vncpasswd
設置完vncserver的密碼后先關閉vncserver做進一步的配置,否則現在連接你的客戶端上是一篇空白的
sudo vncserver -kill :*
配置
-
創建并添加xstartup文件到
/etc/vnc/xstartup
(這步一定要做)sudo mkdir /etc/vnc #創建VNC目錄 sudo nano /etc/vnc/xstartup #創建并編輯xstartup文件
-
向
/etc/vnc/xstartup
文件中添加下面的內容#!/bin/shtest x"$SHELL" = x"" && SHELL=/bin/bash test x"$1" = x"" && set -- defaultunset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESSvncconfig -iconic & "$SHELL" -l << EOF export XDG_SESSION_TYPE=x11 export GNOME_SHELL_SESSION_MODE=ubuntu dbus-launch --exit-with-session gnome-session --session=ubuntu EOF vncserver -kill $DISPLAY
使用xface桌面的添加下面的內容
#!/bin/sh # Start up the standard system desktop unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS /usr/bin/startxfce4 [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources x-window-manager &
-
設置為可執行文件
sudo chmod +x /etc/vnc/xstartup
-
創建并添加xstartup文件到
~/.vnc/xstartup
(區別于上一步,這步也要做)sudo vim ~/.vnc/xstartup #創建并編輯xstartup文件
-
向
~/.vnc/xstartup
文件中添加下面的內容#!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
-
設置為可執行文件
sudo chmod a+x ~/.vnc/xstartup
-
啟動VCN-Server
sudo vncserver :1 -geometry 1920x1080 -depth 24 -localhost no #注:-localhost no參數一定要有,沒有的話可能無法正常連接,其余參數就是分辨率之類的了,可自定 義參數,如果輸出下面的類似內容則說明服務器端正常運行 # New 'bytexd:1 (edxd)' desktop at :1 on machine bytexd # Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/edxd/.vnc/passwd :1 to connect to the VNC server.
開機自啟
為設置vnc開機自啟,不用每次都需要輸入指令開啟,可以將vnc-server的開啟指令添加到系統服務中
-
創建并添加到
/etc/systemd/system/vncserver@.service
文件中
vim /etc/systemd/system/vncserver@1.service
向文件里面添加以下內容[Unit] Description=Start TigerVNC server at startup After=syslog.target network.target[Service] Type=simple User=root PAMName=login PIDFile=/home/tom/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -fg -depth 24 -geometry 1920x1080 -localhost no :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
-
開機自啟vncserver
sudo systemctl daemon-reload #加載引導程序 sudo sudo systemctl enable vncserver@1.service # 設置開機自啟 # 輸出內容如下: # Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
-
啟動服務
sudo sudo systemctl start vncserver@1.service
-
檢查服務狀態
sudo sudo systemctl status vncserver@1.service
VNC Client
推薦 vnc-view,自接下載安裝即可
大部分的VNC-Client都是只需要Ubuntu的 IP + 端口 + 密碼 即可
# 這里說明一下端口
端口號就是5900+服務器索引,
如 vncserver :1指令開啟的是第一個服務器,因此第一個服務器的端口就是5901,
類推,vncserver :2的端口就是5902
root用戶無法登入問題
Ubuntu安裝圖形化界面后使用root用戶,輸入正確密碼也無法登錄,但是可以通過ssh遠程登錄命令行界面,具體現象如下。
通過命令less /var/log/auth.log查看日志信息如下。
gdm-password]: pam_succeed_if(gdm-password:auth): requirement "user != root" not met by user "root"
臨時方案
loginctl unlock-sessions ## 可以解鎖所有被鎖的會話
永久方案
- 使用命令
vi /etc/pam.d/gdm-password
修改gdm-password
文件。 修改位置如圖示。
- 將配置項的user != root刪除,修改后配置信息如下。
- 保存退出