Ubuntu20.04之VNC的安裝使用與常見問題

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刪除,修改后配置信息如下。
    在這里插入圖片描述
  • 保存退出

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70716.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Day46 反轉字符串

I. 編寫一個函數&#xff0c;其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 s 的形式給出。 不要給另外的數組分配額外的空間&#xff0c;你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 class Solution {public void reverseString(char[] s) {int i …

用FileZilla Server 1.9.4給Windows Server 2025搭建FTP服務端

FileZilla Server 是一款免費的開源 FTP 和 FTPS 服務器軟件&#xff0c;分為服務器版和客戶端版。服務器版原本只支持Windows操作系統&#xff0c;比如筆者曾長期使用過0.9.60版&#xff0c;那時候就只支持Windows操作系統。當時我們生產環境對FTP穩定性要求較高&#xff0c;比…

【愚公系列】《Python網絡爬蟲從入門到精通》033-DataFrame的數據排序

標題詳情作者簡介愚公搬代碼頭銜華為云特約編輯,華為云云享專家,華為開發者專家,華為產品云測專家,CSDN博客專家,CSDN商業化專家,阿里云專家博主,阿里云簽約作者,騰訊云優秀博主,騰訊云內容共創官,掘金優秀博主,亞馬遜技領云博主,51CTO博客專家等。近期榮譽2022年度…

營銷過程烏龜圖模版

營銷過程烏龜圖模版 輸入 公司現狀產品服務客戶問詢客戶期望電話、電腦系統品牌軟件硬件材料 售前 - 溝通 - 確定需求 - 滿足需求 - 售后 機料環 電話、電腦等設備軟件硬件、系統品牌等工具材料 人 責任人協助者生產者客戶 法 訂單由誰評審控制程序營銷過程控制程序顧客滿意度…

Kubernetes (K8S) 高效使用技巧與實踐指南

Kubernetes&#xff08;K8S&#xff09;作為容器編排領域的核心工具&#xff0c;其靈活性和復雜性并存。本文結合實戰經驗&#xff0c;從運維效率提升、生產環境避坑、核心功能應用等維度&#xff0c;總結高頻使用技巧與最佳實踐&#xff0c;分享如何快速掌握 K8S。 一、kubect…

Idea java項目結構介紹

一般來說&#xff0c;一個典型的 IntelliJ IDEA Java 項目具有特定的結構&#xff0c;以下是對其主要部分的介紹&#xff1a; 項目根目錄 項目的最頂層目錄&#xff0c;包含了整個項目的所有文件和文件夾&#xff0c;通常以項目名稱命名。在這個目錄下可以找到.idea文件夾、.g…

C++大整數類的設計與實現

1. 簡介 我們知道現代的計算機大多數都是64位的&#xff0c;因此能處理最大整數為 2 64 ? 1 2^{64}-1 264?1。那如果是超過了這個數怎么辦呢&#xff0c;那就需要我們自己手動模擬數的加減乘除了。 2. 思路 我們可以用一個數組來存儲大數&#xff0c;數組中的每一個位置表…

2024年第十五屆藍橋杯大賽軟件賽省賽Python大學A組真題解析

文章目錄 試題A: 拼正方形(本題總分:5 分)解析答案試題B: 召喚數學精靈(本題總分:5 分)解析答案試題C: 數字詩意解析答案試題A: 拼正方形(本題總分:5 分) 【問題描述】 小藍正在玩拼圖游戲,他有7385137888721 個2 2 的方塊和10470245 個1 1 的方塊,他需要從中挑出一些…

開源RAG主流框架有哪些?如何選型?

開源RAG主流框架有哪些?如何選型? 一、開源RAG框架全景圖 (一)核心框架類型對比 類型典型工具技術特征適用場景傳統RAGLangChain, Haystack線性流程(檢索→生成)通用問答、知識庫檢索增強型RAGRAGFlow, AutoRAG支持重排序、多路召回優化高精度問答、復雜文檔處理輕量級…

Java SE與Java EE

Java SE&#xff08;Java 平臺標準版&#xff09; Java SE 是 Java 平臺的核心&#xff0c;提供了 Java 語言的基礎功能。它包含了 Java 開發工具包&#xff08;JDK&#xff09;&#xff0c;其中有 Java 編譯器&#xff08;javac&#xff09;、Java 虛擬機&#xff08;JVM&…

【Java企業生態系統的演進】從單體J2EE到云原生微服務

Java企業生態系統的演進&#xff1a;從單體J2EE到云原生微服務 目錄標題 Java企業生態系統的演進&#xff1a;從單體J2EE到云原生微服務摘要1. 引言2. 整體框架演進&#xff1a;從原始Java到Spring Cloud2.1 原始Java階段&#xff08;1995-1999&#xff09;2.2 J2EE階段&#x…

kicad中R樹的使用

在 KiCad 中&#xff0c;使用 R樹&#xff08;R-tree&#xff09;進行空間索引和加速查詢通常不在用戶層面直接操作&#xff0c;而是作為工具的一部分用于優化電路板設計的性能&#xff0c;尤其在布局、碰撞檢測、設計規則檢查&#xff08;DRC&#xff09;以及元件搜索等方面。…

org.springframework.boot不存在的其中一個解決辦法

最近做項目的時候發現問題&#xff0c;改了幾次pom.xml文件之后突然發現項目中的注解全部爆紅。 可以嘗試點擊左上角的循環小圖標&#xff0c;同步所有maven項目。 建議順便檢查一下Project Structure中的SDK和Language Level是否對應&#xff0c;否則可能報類似&#xff1a;“…

C語言實現通訊錄項目

一、通訊錄功能 實現一個可以存放100個人的信息的通訊錄&#xff08;這里采用靜態版本&#xff09;&#xff0c;每個人的信息有姓名、性別、年齡、電話、地址等。 通訊錄可以執行的操作有添加聯系人信息、刪除指定聯系人、查找指定聯系人信息、修改指定聯系人信息、顯示聯系人信…

HO3D_v3(handposeX-json 格式)數據集-release >> DataBall

注意&#xff1a; 1)為了方便使用&#xff0c;按照 handposeX json 自定義格式存儲 2)使用常見依賴庫進行調用,降低數據集使用難度。 3)部分數據集獲取請加入&#xff1a;DataBall-X數據球(free) 4)完整數據集獲取請加入&#xff1a;DataBall-X數據球(vip) HO3D 數據集官方…

Java線程池入門04

1. 提交任務的兩種方式 executorsubmit 2. executor executor位于Executor接口中 public interface Executor {void executor(Runnable command); }executor提交的是無返回值的任務 下面是一個具體的例子 package LearnThreadPool; import java.util.concurrent.ExecutorSe…

2025-02-26 學習記錄--C/C++-C語言 整數格式說明符

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; C語言 整數格式說明符 【例如 】&#x1f380; &#xff1a;在 C 語言中&#xff0c;%ld 是 printf 或 scanf 等格式化輸入輸出函…

【QT 一 | 信號和槽】

Qt5基本模塊 Qt Creator 中的快捷鍵 ? 注釋&#xff1a;ctrl / ? 運?&#xff1a;ctrl R ? 編譯&#xff1a;ctrl B ? 字體縮放&#xff1a;ctrl 鼠標滑輪 ? 查找&#xff1a;ctrl F ? 整行移動&#xff1a;ctrl shift ?/? ? 幫助?檔&#xff1a;F1 ? 自動…

集成學習方法之隨機森林

隨機森林是一種集成學習算法&#xff0c;它基于決策樹模型&#xff0c;通過構建多個決策樹并將它們的預測結果進行組合&#xff0c;以提高模型的準確性和穩定性。以下是隨機森林的詳細介紹&#xff1a; 原理 隨機森林通過從原始訓練數據中有放回地隨機抽樣&#xff0c;生成多…

react 中,使用antd layout布局中的sider 做sider的展開和收起功能

一 話不多說&#xff0c;先展示效果&#xff1a; 展開時&#xff1a; 收起時&#xff1a; 二、實現代碼如下 react 文件 import React, {useState} from react; import {Layout} from antd; import styles from "./index.module.less"; // 這個是樣式文件&#…