Ubuntu20.04 VNCのインストールと設定の実装

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 をリモート制御するには、この記事の手順に従ってください。ホストがモニターに接続されていない場合、一般的な VNC インストール方法は使用できません。以下の操作は、ホストにモニターがあるかどうかに関係なく正常に動作します。

まずx11vncをインストールします

sudo apt-get install x11vnc -y

VNCパスワードを設定する

sudo x11vnc -storepasswd /etc/x11vnc.pass

x11vnc自動起動サービスを作成する

/etc/systemd/system/x11vnc.serviceを作成し、次の内容を記述します。

[ユニット]
説明=起動時に x11vnc を起動します。
後=マルチユーザー.ターゲット
[サービス]
タイプ=シンプル
ExecStart=/usr/bin/x11vnc -auth /run/user/1000/gdm/Xauthority -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[インストール]
WantedBy=マルチユーザー.ターゲット

x11vncサービスを開始する

sudo systemctl で x11vnc を有効にする
sudo サービス x11vnc 開始

この時点で、モニターがリモート ホストに接続されている場合は、LAN 上の VNC を介してアクセスできます。

ディスプレイの有無にかかわらず、リモートホストにVNC経由でリモートアクセスできるようにするには、次の変更を行う必要があります。

デフォルトのxorg.confファイルを作成する

sudo Xorg:1 -configureを実行します

この時点で、プログラムは/root/xorg.conf.newファイルを生成します。

デフォルトのファイルの内容は次のとおりです

セクション「ServerLayout」
 識別子「X.org 構成済み」
 スクリーン0「スクリーン0」0 0
 入力デバイス「Mouse0」「CorePointer」
 入力デバイス「Keyboard0」「CoreKeyboard」
終了セクション

セクション「ファイル」
 モジュールパス "/usr/lib/xorg/modules"
 フォントパス "/usr/share/fonts/X11/misc"
 フォントパス "/usr/share/fonts/X11/cyrillic"
 フォントパス "/usr/share/fonts/X11/100dpi/:unscaled"
 フォントパス "/usr/share/fonts/X11/75dpi/:unscaled"
 フォントパス "/usr/share/fonts/X11/Type1"
 フォントパス "/usr/share/fonts/X11/100dpi"
 フォントパス "/usr/share/fonts/X11/75dpi"
 FontPath「組み込み」
終了セクション

セクション「モジュール」
 「glx」をロードする
終了セクション

セクション「InputDevice」
 識別子「Keyboard0」
 ドライバー「kbd」
終了セクション

セクション「InputDevice」
 識別子「Mouse0」
 ドライバー「マウス」
 オプション「プロトコル」「自動」
 オプション「デバイス」「/dev/input/mice」
 オプション「ZAxisMapping」「4 5 6 7」
終了セクション

セクション「モニター」
 識別子「Monitor0」
 VendorName「モニターベンダー」
 ModelName「モニターモデル」
終了セクション

セクション「デバイス」
    ### 利用可能なドライバーオプションは次のとおりです:-
    ### 値: <i>: 整数、<f>: 浮動小数点数、<bool>: "True"/"False"、
    ### <文字列>: "文字列", <周波数>: "<f> Hz/kHz/MHz",
    ### <パーセント>: "<f>%"
    ### [arg]: 引数はオプション
    #オプション "Accel" # [<bool>]
    #オプション "AccelMethod" # <str>
    #オプション「バックライト」# <str>
    #オプション "CustomEDID" # <str>
    #オプション "DRI" # <str>
    #オプション "Present" # [<bool>]
    #オプション "ColorKey" # <i>
    #オプション "ビデオキー" # <i>
    #オプション "Tiling" # [<bool>]
    #オプション "LinearFramebuffer" # [<bool>]
    #オプション "HWRotation" # [<bool>]
    #オプション "VSync" # [<bool>]
    #オプション "PageFlip" # [<bool>]
    #オプション "SwapbuffersWait" # [<bool>]
    #オプション "TripleBuffer" # [<bool>]
    #オプション "XvPreferOverlay" # [<bool>]
    #オプション "HotPlug" # [<bool>]
    #オプション "ReprobeOutputs" # [<bool>]
    #オプション "XvMC" # [<bool>]
    #オプション "ZaphodHeads" # <str>
    #オプション "VirtualHeads" # <i>
    #オプション "TearFree" # [<bool>]
    #オプション "PerCrtcPixmaps" # [<bool>]
    #オプション "FallbackDebug" # [<bool>]
    #オプション "DebugFlushBatches" # [<bool>]
    #オプション "DebugFlushCaches" # [<bool>]
    #オプション "DebugWait" # [<bool>]
    #オプション "BufferCache" # [<bool>]
 識別子「Card0」
 ドライバー「インテル」
 バスID「PCI:0:2:0」
終了セクション

セクション「スクリーン」
 識別子「Screen0」
 デバイス「Card0」
 モニター「Monitor0」
 サブセクション「表示」
 ビューポート 0 0
 深さ1
 終了サブセクション
 サブセクション「表示」
 ビューポート 0 0
 深さ4
 終了サブセクション
 サブセクション「表示」
 ビューポート 0 0
 深さ8
 終了サブセクション
 サブセクション「表示」
 ビューポート 0 0
 深さ15
 終了サブセクション
 サブセクション「表示」
 ビューポート 0 0
 深さ16
 終了サブセクション
 サブセクション「表示」
 ビューポート 0 0
 深さ24
 終了サブセクション
終了セクション

このファイルを/usr/share/X11/xorg.conf.d/xorg.confにコピーします。

このファイルにより、モニターがホストに接続されたときに、システム インターフェイスがモニターに正常に表示されるようになります。次に、システムに仮想ディスプレイを追加します。ホストにディスプレイがない場合、システムはこの仮想ディスプレイを使用します。

仮想グラフィックドライバーをインストールする

sudo apt install xserver-xorg-video-dummy

このファイルの最後に次の内容を追加します

セクション「モニター」
 識別子「Monitor1」
 水平同期 1.0 - 2000.0
 頂点リフレッシュ 1.0 - 200.0
 # 16:9 モードを追加します。その他は自動的に検出されます。
 モデリーン「1280x720」74.48 1280 1336 1472 1664 720 721 724 746
 モデライン "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
終了セクション


セクション「デバイス」
 識別子「Card1」
 ドライバー「ダミー」
 ビデオメモリ 256000
終了セクション

セクション「スクリーン」
 デフォルトの深さ 24
 識別子「Screen1」
 デバイス「カード1」
 モニター「モニター1」
 サブセクション「表示」
  深さ24
  モード「1920x1080」
 終了サブセクション
終了セクション

このようにして、仮想グラフィック カードを使用して仮想ディスプレイを作成しました。仮想ディスプレイと実際のディスプレイの両方を機能させるには、上部のServerLayoutを変更する必要があります。

セクション「ServerLayout」
    識別子「X.org 構成済み」
    スクリーン0「スクリーン0」0 0
 スクリーン1「スクリーン1」0 0
終了セクション

リモート コンピューターを再起動すると、モニターなしでリモート接続できるようになります。

上記の方法には別の問題があります。つまり、ユーザーがログインしていない場合は、リモートで制御する方法はありません。そのため、ユーザーが自動的にログインするように設定する必要があります。

Ubuntu 20.04 VNC のインストールとセットアップに関するこの記事はこれで終わりです。Ubuntu 20.04 VNC のインストールとセットアップの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Ubuntu での AndroidStudio4.1 の起動エラー問題の解決方法
  • Vscode が Ubuntu にリモート接続する際のエラー問題の解決方法
  • VS Code の使用と Ubuntu での C/C++ プラグインのインストールに関する詳細なチュートリアル
  • Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法
  • Ubuntuはポート22を開きます
  • Ubuntu 20.04 に GitLab をインストールして設定する方法
  • Ubuntu 20.04にvncserverをインストールする方法
  • Ubuntu 構成 Pytorch on Graph (PoG) 環境プロセス図

<<:  Uniappがスライディングスコアリング効果を実現

>>:  MySQL InnoDBとMyISAMの違いを簡単に理解する

推薦する

Linux 面接で最もよく聞かれる 10 の質問のまとめ

序文Linux システムの運用および保守エンジニア職の面接を受ける場合は、次の 10 個の最も一般的...

HTML における if 判断の使用

Django Web開発の過程で、HTMLを書く際にバックエンドから同じ名前のリスト変数が渡されるが...

Kubernetes の応用分野の概要

Kubernetes は、アプリケーションの移植性とハイブリッド クラウド/マルチクラウドの展開をサ...

Web ページのスクロール バーが右側に設定されているのはなぜですか?

私たちが毎日使っているブラウザや Word 文書のスクロール バーはなぜ右側にあるのでしょうか。多く...

MySQL で戻り値ありと戻り値なしのストアド プロシージャを書く 2 つの方法

プロセス1: 戻り値あり: proc_addNum が存在する場合はプロシージャを削除します。 プロ...

nginx ロードバランシングを介して https にリダイレクトする方法

ウェブ上で証明書とキーをコピーするscp -rp -P52113 /application/ngin...

Portainer を使用して複数の Docker コンテナ環境を管理する方法を説明します。

目次Portainerは複数のDockerコンテナ環境を管理します2. Dockerを管理する2.1...

一意の注文番号を生成するためのMySQLの高同時実行方法

序文このブログ記事が公開された後、何人かの友人からSQL Serverバージョンがあるかどうか尋ねら...

mysql+mybatisはストアドプロシージャ+トランザクション+複数同時シリアル番号取得を実装します

データベースストアドプロシージャ`generate_serial_number_by_date` が...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

vue3.0プロジェクトアーキテクチャを段階的に構築する方法を教えます

目次序文: 1. vue-cliでプロジェクトを作成する2. ルーターをインストールする3. ディレ...

CSS で写真のスタッキング効果を実装するサンプルコード

成果を達成するステップ1. 初期index.html最初の写真、一番上の写真を作成します。写真の i...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

CentOS7にJDK8をrpmモードでインストールする

CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...

Linuxサーバー間のリアルタイムファイル同期の実現

使用シナリオ既存のサーバー A と B の場合、サーバー A の指定されたディレクトリ (たとえば、...