Ubuntu18.04にVNCをインストールして構成する方法

前書き

このガイドでは、Ubuntu 18.04サーバーにVNCサーバーをセットアップし、SSHトンネルを介してそのサーバーに安全に接続します。高速で軽量なリモートコントロールソフトウェアパッケージである[TightVNC](https://www.tightvnc.com/)を使用します。この選択により、低速のインターネット接続でもVNC接続がスムーズで安定します。

準備 ##

このチュートリアルを完了するには、次のものが必要です。

ステップ1-デスクトップ環境とVNCサーバーをインストールする

デフォルトでは、Ubuntu 18.04サーバーにはグラフィカルデスクトップ環境またはVNCサーバーがインストールされていないため、最初にインストールします。具体的には、最新の[Xfce](https://xfce.org/)デスクトップ環境用のソフトウェアパッケージと、公式のUbuntuリポジトリで提供されているTightVNCパッケージをインストールします。

サーバーで、パッケージリストを更新します。

sudo apt update

次に、Xfceデスクトップ環境をサーバーにインストールします。

sudo apt install xfce4 xfce4-goodies

インストールが完了したら、TightVNCサーバーをインストールします。

sudo apt install tightvncserver

インストール後にVNCサーバーの初期構成を完了するには、 vncserverコマンドを使用して安全なパスワードを設定し、初期構成ファイルを作成します。

vncserver

コンピューターにリモートでアクセスするには、パスワードを入力して確認するように求められます。

You will require a password to access your desktops.
​
Password:
Verify:

パスワードの長さは6〜8文字である必要があります。 8文字を超えるパスワードは自動的に切り捨てられます。

パスワードを確認した後、表示専用のパスワードを作成することを選択できます。表示専用パスワードでログインしたユーザーは、マウスやキーボードを使用してVNCインスタンスを制御することはできません。これは、VNCサーバーを使用して他のユーザーにコンテンツをデモンストレーションする場合に便利なオプションですが、必須ではありません。

次に、プロセスはサーバーに必要なデフォルトの構成ファイルと接続情報を作成します。

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

次に、VNCサーバーを構成しましょう。

手順2-VNCサーバーを構成する

VNCサーバーは、起動時に実行されるコマンドを認識する必要があります。具体的には、VNCは接続するグラフィカルデスクトップを知る必要があります。

これらのコマンドは、ホームディレクトリの xstartup .vncフォルダにある設定ファイルにあります。起動スクリプトは、前の手順で vncserverを実行したときに作成されましたが、Xfceデスクトップを起動するための独自のスクリプトを作成します。

VNCが最初にセットアップされると、ポート 5901でデフォルトのサーバーインスタンスが起動します。このポートは* display port *と呼ばれ、VNCでは :1と呼ばれます。 VNCは、 :2:3などの他のディスプレイポートで複数のインスタンスを開始できます。

VNCサーバーの構成方法を変更するため、最初の 5901は次のコマンドを使用して、ポートで実行されているVNCサーバーインスタンスを停止します。

vncserver -kill :1

別のPIDが表示されますが、出力は次のようになります。

Killing Xtightvnc process ID 17648

xstartupファイルを変更する前に、元のファイルをバックアップしてください。

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

次に、新しい xstartupファイルを作成し、テキストエディタで開きます。

nano ~/.vnc/xstartup

VNCサーバーを起動または再起動するたびに、このファイルのコマンドが自動的に実行されます。まだ開始されていない場合は、デスクトップ環境を開始するためにVNCが必要です。次のコマンドをファイルに追加します。

#! /bin/bash
xrdb $HOME/.Xresources
startxfce4 &

ファイル内の最初のコマンド xrdb $ HOME / .Xresourcesは、VNCGUIフレームワークにサーバーユーザーの .Xresourcesファイルを読み取るように指示します。ユーザーは、端末の色、カーソルテーマ、フォントレンダリングなど、「。Xresources」でグラフィカルデスクトップの特定の設定を変更できます。 2番目のコマンドは、サーバーにXfceを起動するように指示します。ここで、サーバーを快適に管理するために必要なすべてのグラフィックソフトウェアを見つけることができます。

VNCサーバーがこの新しい起動ファイルを正しく使用できるようにするには、それを実行可能にする必要があります。

sudo chmod +x ~/.vnc/xstartup

ここで、VNCサーバーを再起動します。

vncserver

次のような出力が表示されます。

New 'X' desktop is your_hostname:1
​
Starting applications specified in/home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

構成が完了したら、ローカルコンピューターからサーバーに接続しましょう。

ステップ3-VNCデスクトップに安全に接続する

VNC自体は、接続時にセキュリティプロトコルを使用しません。 SSHトンネルを使用してサーバーに安全に接続し、VNCクライアントに直接接続する代わりにそのトンネルを使用するように指示します。

ローカルコンピュータにSSH接続を作成して、 localhostVNC接続に安全に転送します。これは、LinuxまたはmacOSのターミナルから次のコマンドを使用して実行できます。

ssh -L 5901:127.0.0.1:5901-C -N -l sammy your_server_ip

-Lスイッチで指定されたポートバインディング。この場合、 5901のリモート接続用のポート 5901をローカルコンピュータのポートにバインドします。 -Cスイッチは圧縮を有効にし、 -Nスイッチは sshにリモートコマンドを実行したくないことを通知します。 -lスイッチはリモートログイン名を指定します。

sammy your_server_ipをサーバーのsudonon-rootユーザー名とIPアドレスに置き換えることを忘れないでください。

グラフィカルSSHクライアント(PuTTYなど)を使用している場合は、接続IPとして your_server_ipを使用し、プログラムのSSHトンネル設定で新しい転送ポートとして localhost:5901を設定してください。

トンネルが実行されたら、VNCクライアントを使用して localhost:5901に接続します。手順1で設定したパスワードで認証するように求められます。

接続すると、デフォルトのXfceデスクトップが表示されます。次のようになります。

次のように、ファイルマネージャまたはコマンドラインを使用して、ホームディレクトリ内のファイルにアクセスできます。

CTRL + Cターミナルを押してSSHトンネルを停止し、プロンプトに戻ります。これにより、VNCセッションも切断されます。

次に、VNCサーバーをサービスとしてセットアップしましょう。

ステップ4-VNCをシステムサービスとして実行する

次に、VNCサーバーをsystemdサービスとして設定し、他のサービスと同じように、必要に応じて開始、停止、および再起動できるようにします。これにより、サーバーの再起動時にVNCが確実に起動します。

まず、お気に入りのテキストエディタを使用して、新しい / etc / systemd / system / vncserver @ .serviceユニットファイルを作成します。

sudo nano /etc/systemd/system/[email protected]

@ 名前の最後にある記号を使用すると、サービス構成で使用できるパラメーターを渡すことができます。これを使用して、サービスを管理するときに使用するVNC表示ポートを指定します。

次の行をファイルに追加します。 ** User Group WorkingDirectory の値、および PIDFILE **値のユーザー名をユーザー名と一致するように変更してください:

[ Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
​
[ Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy
​
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i >/dev/null2>&1
ExecStart=/usr/bin/vncserver -depth 24-geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
​
[ Install]
WantedBy=multi-user.target

VNCがすでに実行されている場合、 ExecStartPreコマンドは停止します。 ExecStartコマンドはVNCを起動し、色の深さを1280x800の解像度で24ビットカラーに設定します。これらの起動オプションをニーズに合わせて変更することもできます。

ファイルを保存して閉じます。

次に、新しいユニットファイルについてシステムに通知します。

sudo systemctl daemon-reload

ユニットファイルを有効にします。

sudo systemctl enable [email protected]

1の下の@記号は、表示番号付きのサービスが表示されているはずであることを示します。この場合、デフォルトの:1について手順2で説明します。

VNCサーバーがまだ実行中の場合は、現在のインスタンスを停止します。

vncserver -kill :1

次に、他のsystemdサービスと同じように起動します。

sudo systemctl start vncserver@1

次のコマンドで起動したかどうかを確認できます。

sudo systemctl status vncserver@1

正しく起動した場合、出力は次のようになります。

[email protected] - Start TightVNC server at startup
 Loaded:loaded(/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
 Active:active(running) since Mon 2018-07-0918:13:53 UTC; 2min 14s ago
 Process:22322 ExecStart=/usr/bin/vncserver -depth 24-geometry 1280x800 :1(code=exited, status=0/SUCCESS)
 Process:22316 ExecStartPre=/usr/bin/vncserver -kill :1>/dev/null2>&1(code=exited, status=0/SUCCESS)
 Main PID:22330(Xtightvnc)
​
...

コンピューターを再起動すると、VNCサーバーが使用可能になります。

SSHトンネルを再度開始します。

ssh -L 5901:127.0.0.1:5901-C -N -l sammy your_server_ip

次に、VNCクライアントソフトウェアを使用して新しい接続 localhost:5901を確立し、コンピューターに接続します。

結論として ##

これで、Ubuntu18.04サーバーで安全なVNCサーバーが稼働しました。これで、使いやすく使い慣れたグラフィカルインターフェイスを使用してファイル、ソフトウェア、および設定を管理できるようになり、Webブラウザなどのグラフィカルソフトウェアをリモートで実行できるようになります。

その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。

参照:「Ubuntu18.04にVNCをインストールして構成する方法」

Recommended Posts

Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu18.04にGogsをインストールして構成する方法
Ubuntu18.04にCyberpanelをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
CentOS8にVNCをインストールして構成する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Ubuntu14.04にOrientDBをインストールして構成する方法
Ubuntu12.04にAppScaleをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu 16.04 /18.04にPycharmとIpythonをインストールする方法
CentOS7にElasticsearchをインストールして構成する方法
Ubuntu20.04にDockerをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
CentOS8にRedisをインストールして構成する方法
Ubuntu20.04にComposerをインストールして使用する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
CentOS6にphpMyAdminをインストールして構成する方法
CentOS8にOwncloudをインストールして構成する方法
Ubuntu16.04にDockerをインストールして使用する方法
CentOS8にRedmineをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
UbuntuにMySQLをインストールして構成する
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にRをインストールする方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法