Ubuntu 20.04にVNCをインストールして設定する方法
導入
仮想ネットワークコンピューティング(VNC)は、キーボードとマウスを使ってリモートサーバー上のグラフィカルデスクトップ環境を操作できる接続システムです。コマンドライン操作に慣れていないユーザーでも、リモートサーバー上のファイル、ソフトウェア、設定を簡単に管理できます。.
このガイドでは、Ubuntu 20.04サーバー上にTightVNCを使ってVNCサーバーを構築し、SSHトンネル経由で接続します。その後、ローカルマシン上のVNCクライアントプログラムを使用して、グラフィカルデスクトップ環境を介してサーバーとやり取りします。.
前提条件
このチュートリアルを完了するには、次のものが必要です。
- 非ルート管理ユーザーと UFW で構成されたファイアウォールを備えた Ubuntu 20.04 サーバー。.
- VNCクライアントがインストールされたローカルコンピュータ。使用するVNCクライアントはSSHトンネル経由の接続をサポートしている必要があります。
- Windows では、TightVNC、RealVNC、または UltraVNC を使用できます。.
- macOS では、組み込みの画面共有アプリを使用することも、RealVNC などのクロスプラットフォーム アプリを使用することもできます。.
- Linux では、次のような多くのオプションから選択できます。 酢、 krdcRealVNC または TightVNC を選択します。.
ステップ1 – デスクトップ環境とVNCサーバーをインストールする
デフォルトでは、Ubuntu 20.04 Server にはグラフィカル デスクトップ環境や VNC サーバーはインストールされていないため、まずこれらをインストールする必要があります。.
VNCサーバーとデスクトップ環境を選ぶ際には、多くの選択肢があります。このチュートリアルでは、最新のXfceデスクトップ環境と、Ubuntu公式リポジトリで入手可能なTightVNCパッケージをインストールします。XfceとTightVNCはどちらも軽量で高速であることで知られており、低速なインターネット接続でもスムーズで安定したVNC接続を実現します。.
SSH でサーバーに接続した後、パッケージ リストを更新します。
$ sudo apt アップデート
Xfceをパッケージ化するには xfce4 のグッズ デスクトップ環境に対するいくつかの改善を含むインストール:
$ sudo apt install xfce4 xfce4-goodies
インストール中に、Xfceのデフォルトのディスプレイマネージャーを選択するように求められる場合があります。ディスプレイマネージャーとは、グラフィカルインターフェースを通してデスクトップ環境を選択し、ログインできるプログラムです。XfceはVNCクライアントで接続する場合のみ使用し、そのセッションでは非rootのUbuntuユーザーとして既にログインしています。そのため、このチュートリアルではディスプレイマネージャーの選択は重要ではありません。ディスプレイマネージャーを1つ選択し、 入力 プレス 。.
インストールが完了したら、TightVNC サーバーをインストールします。
$ sudo apt インストール tightvncserver
次に、コマンドvncサーバー 実行すると、VNC パスワードが設定され、初期設定ファイルが作成され、VNC サーバー インスタンスが起動します。
$ vncサーバー
デバイスにリモートアクセスするには、パスワードの入力と確認を求められます。
出力
デスクトップにアクセスするにはパスワードが必要です。.
パスワード:
確認する:
パスワードは6文字から8文字までの長さにする必要があります。8文字を超えるパスワードは自動的に切り捨てられます。.
パスワードを確認すると、表示専用パスワードを作成するオプションが表示されます。表示専用パスワードでログインしたユーザーは、マウスやキーボードでVNCインスタンスを操作できなくなります。これは、VNCサーバーを使用している他のユーザーに何かを見せたい場合に便利なオプションですが、必須ではありません。.
このプロセスは、サーバーに必要なデフォルトの設定ファイルと接続情報を作成します。さらに、ポートにデフォルトのサーバーインスタンスを作成します。 5901 このポートはディスプレイポートと呼ばれ、VNCでは次のように使用されます。:1 VNCは他のディスプレイポートで複数のインスタンスを実行できます。 :2 港へ5902, 3: 指している 5903 等。:
出力
表示専用パスワードを入力しますか? (y/n)n
xauth: ファイル /home/サミー/.Xauthorityが存在しません
新しい「X」デスクトップは あなたのホスト名:1
デフォルトの起動スクリプト /home/ を作成していますサミー/.vnc/xスタートアップ
/home/ に指定されたアプリケーションを起動するサミー/.vnc/xスタートアップ
ログファイルは/home/ですサミー/.vnc/あなたのホスト名:1.ログ
パスワードを変更したり、表示専用のパスワードを追加したい場合は、次のコマンドで実行できます。 vncpasswd する:
$ vncpasswd
この時点でVNCサーバーはインストールされ、実行されています。次に、Xfceを起動し、グラフィカルインターフェースからサーバーにアクセスできるように設定しましょう。.
##ステップ2 – VNCサーバーの設定
VNCサーバーは起動時に実行するコマンドを認識する必要があります。具体的には、どのグラフィカルデスクトップ環境に接続するかを認識する必要があります。.
VNCサーバが起動時に実行するコマンドは、以下の設定ファイルに保存されます。 xスタートアップ フォルダ内
.vnc 以下がメインディレクトリです。起動スクリプトは、前の手順でコマンドを実行したときに作成されました。 vncサーバー 実行しましたが、Xfce デスクトップを起動するための独自のスクリプトを作成します。.
VNCサーバーの構成を変更するので、まずポートで実行されているVNCサーバーインスタンスを削除します。 5901 実行中です。以下のコマンドで停止してください。
$ vncserver -kill :1
出力は次のようになりますが、異なる PID が表示されます。
出力
Xtightvnc プロセス ID を強制終了する 17648
ファイルの前 xスタートアップ 変更して、元のものをバックアップします。
$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
ファイル xスタートアップ 新しいものを作成し、テキストエディタで開きます。 ナノ 開ける:
$ ナノ ~/.vnc/xstartup
次に、ファイルに次の行を追加します。
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 と
最初の行はシバンです。*nixプラットフォームで実行可能なプレーンテキストファイルでは、 シバン これは、システムにそのファイルをどのインタープリタに送って実行させるかを指示します。この場合、ファイルをBashインタープリタに送っています。これにより、各行が順番にコマンドとして実行されるようになります。.
ファイルの最初のコマンドは、 xrdb $HOME/.Xresources、VNC GUI フレームワークはファイル を呼び出します。 .Xリソース ユーザーはサーバーを読み取ります。 .Xリソース ここでユーザーは、ターミナルの色、カーソルのテーマ、フォントのレンダリングなど、グラフィカルデスクトップの特定の設定を変更できます。2番目のコマンドは、サーバーにXfceを起動するように指示します。これらのコマンドは、VNCサーバーを起動または再起動するたびに自動的に実行されます。.
これらの行を追加したら、ファイルを保存して閉じます。 ナノ 使用するには、 Ctrl + X、Y その後 入力 やれよ。.
VNC サーバーがこの新しいセットアップ ファイルを適切に使用できるようにするには、それを実行可能にする必要があります。
$ chmod +x ~/.vnc/xstartup
次に、VNC サーバーを再起動します。
$ vncサーバー -localhost
今回コマンドにはオプションが含まれていることに注意してください -ローカルホスト これにより、VNCサーバーがサーバーのループバックインターフェースに接続されます。これにより、VNCはインストールされているサーバーからの接続のみを許可するようになります。.
次に、ローカルマシンとサーバーの間にSSHトンネルを作成します。これは、VNCにローカルマシンからの接続がサーバーから発信されたと認識させる仕組みです。この戦略により、VNCにアクセスできるのはサーバーへのSSHアクセス権限を持つユーザーのみとなるため、セキュリティがさらに強化されます。.
次のような出力が表示されます。
出力
新しい「X」デスクトップは あなたのホスト名:1
/home/ に指定されたアプリケーションを起動するサミー/.vnc/xスタートアップ
ログファイルは/home/ですサミー/.vnc/あなたのホスト名:1.ログ
設定が完了したら、ローカル マシンから VNC サーバーに接続する準備が整います。.
ステップ3 – VNCデスクトップに安全に接続する
VNC自体は接続時に安全なプロトコルを使用しません。サーバーに安全に接続するには、SSHトンネルを作成し、VNCクライアントに直接通信するのではなく、そのトンネルを使用して接続するように指示します。.
ローカルコンピュータに安全に接続するSSH接続を作成します ホストのローカル接続 VNC転送。LinuxまたはmacOSのターミナルから次のコマンドで実行できます。SSH 次の操作を実行します。
$ ssh -L 59000 :ローカルホスト: 5901 -C -N -l サミー あなたのサーバーのIP
このコマンドのオプションの意味は次のとおりです SSH 次のように述べられています。
- -L 59000:ローカルホスト:5901: スイッチ -L 指定されたポートがローカルコンピュータ上にあることを指定します(59,000(宛先サーバー上の指定されたホストとポートに送信する必要があります)ローカルホスト:5901、港を意味する 5901 宛先サーバーでは、 あなたのサーバーのIP (指定するローカル ポートはある程度任意であることに注意してください。ポートが別のサービスにまだ接続されていない限り、トンネルの転送ポートとして使用できます。).
- -C: このフラグは圧縮を有効にし、リソースの消費量を削減し、タスクを高速化するのに役立ちます。.
- -N: このオプションはSSH リモートコマンドを実行したくないようです。この設定は、ポート転送のみを行いたい場合に便利です。.
- l sammy your_server_ip-: スイッチ -l サーバーに接続する際にログインするユーザーを指定できます。 サミー そして あなたのサーバーのIP 非ルート ユーザーの名前とサーバーの IP アドレスに置き換えます。.
注記: このコマンドはポートからデータを送信するSSHトンネルを作成します 5901 VNCサーバーでポート 59,000 ローカルマシンのポート経由で 22 各デバイスでは、デフォルトのSSHポートが転送されます。Ubuntu 20.04の基本サーバー設定ガイドに従っている場合は、OpenSSH経由でサーバーに接続できるようにUFWルールを追加してください。.
これは、サーバーのファイアウォールを開いてポートに接続するよりも安全です。 5901 これは、誰でもVNC経由でサーバーにアクセスできるためです。SSHトンネル経由で接続することで、既にサーバーへのSSHアクセス権限を持つマシンのみにVNCアクセスを制限できます。.
PuTTYを使用してサーバーに接続している場合は、ターミナルウィンドウの上部のバーを右クリックし、オプションをクリックしてSSHトンネルを作成できます。 …設定を変更する クリック:

支店 繋がり PuTTY 再構成ウィンドウの左側にあるツリー メニューでブランチを見つけます。 SSH 開いてタップ トンネル クリック。 ポート転送ページコントローラオプション</59000 strong> SSHをソースポートとして、 ローカルホスト:5901 次のように宛先として入力します。

次にボタンをクリックします。 追加 クリックしてボタン 適用する クリックするとトンネルが実装されます。.
トンネルが起動したら、VNCクライアントを使用して接続します。 ローカルホスト:59000 手順 1 で設定したパスワードを使用して認証するよう求められます。.
接続すると、デフォルトのXfceデスクトップが表示されます。以下のような感じになるはずです。

ご覧のとおり、ファイル マネージャーまたはコマンド ラインからホーム ディレクトリ内のファイルにアクセスできます。

Ctrl+C ローカルターミナルで を押してSSHトンネルを停止し、アプリケーションに戻ります。これによりVNCセッションも切断されます。.
これで、VNC サーバーを systemd サービスとして実行するように設定できるようになりました。.
ステップ4 – VNCをシステムサービスとして実行する
VNCサーバーをsystemdサービスとして実行するように設定することで、他のサービスと同様に、必要に応じて起動、停止、再起動できます。また、systemd管理コマンドを使用して、サーバーの起動時にVNCが起動するように設定することもできます。.
まず、新しいユニットファイルを作成します。 /etc/systemd/system/[email protected] 作成する:
$ sudo ナノ /etc/systemd/system/[email protected]
シンボル @ 名前の末尾には、サービス設定で使用できる引数を渡すことができます。これを使用して、サービスの管理時に使用するVNCディスプレイポートを指定します。.
ファイルに以下の行を追加します。必ず以下の値を含めてください。 ユーザー、グループ、作業ディレクトリ 値にユーザー名 PIDファイル ユーザー名に合わせて変更してください:
[ユニット] 説明=起動時にTightVNCサーバーを起動する
後=syslog.target network.target
[サービス] タイプ=フォーク
ユーザー= サミー
グループ= サミー
作業ディレクトリ=/home/サミー
PIDファイル=/home/サミー/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver - 深さ 24 - ジオメトリ 1280×800 -ローカルホスト:%i
ExecStop=/usr/bin/vncserver -kill :%i
[インストール] WantedBy=multi-user.target
注文 実行開始前 VNCがすでに実行されている場合は停止します。コマンド 実行開始 VNCを起動し、解像度1280×800で色深度を24ビットカラーに設定します。必要に応じてこれらの起動オプションを変更することもできます。また、以下のコマンドにも注意してください。実行開始 また
オプションを含む -ローカルホスト そうです。.
ファイルを保存して閉じます。.
次に、新しいユニット ファイルをシステムに通知します。
$ sudo systemctl デーモンリロード
$ sudo systemctl デーモンリロード
ユニットファイルを有効にします。
$ sudo systemctl enable [email protected]
1 看板の下@ サービスが表示されるディスプレイ番号を示します。この場合はデフォルトです。 :1 ステップ 2 で説明したとおりです。.
VNC サーバーの現在のインスタンスがまだ実行中の場合は停止します。
$ vncserver -kill :1
次に、他の systemd サービスと同じように起動します。
$ sudo systemctl start vncserver@1
次のコマンドで起動したことを確認できます。
$ sudo systemctl ステータス vncserver@1
正しく起動すると、出力は次のようになります。
出力
● [email protected] – 起動時にTight VNCサーバーを起動する
ロード済み: ロード済み (/etc/systemd/system/[email protected]; 有効; ベンダープリセット: 有効)
アクティブ: 2020年5月7日(木) 17:23:50 UTC からアクティブ (実行中)、6秒前
プロセス: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (コード=終了、ステータス=2)
プロセス: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (コード=終了、ステータス=0/成功)
メインPID: 39795 (Xtightvnc)
…
これで、VNCサーバーはサーバーの起動時にいつでも使用できる状態になり、他のsystemdサービスと同様に次のコマンドで起動できます。システムctl 管理。.
ただし、クライアント側では違いはありません。再接続するには、SSHトンネルを再起動してください。
$ ssh -L 59000 :ローカルホスト: 5901 -C -N -l サミー あなたのサーバーのIP
次に、VNCクライアントソフトウェアを使用して新しい接続を作成し、 ローカルホスト:59000 サーバーへの接続を作成します。.
結果
これで、Ubuntu 20.04サーバー上で安全なVNCサーバーが稼働しました。ユーザーフレンドリーなグラフィカルインターフェースでファイル、ソフトウェア、設定を管理できるようになり、Webブラウザなどのグラフィカルソフトウェアをリモートで実行できるようになりました。.









