VNC (Virtual Network Computing) を使用すると、グラフィカルユーザーインターフェイス (GUI)、デスクトップ、マウス、キーボードを使用して、自分のコンピュータを使うのと同じようにサーバーを使用できます。これにより、サーバーでの作業が初めてのユーザーでも、コンピューティングが容易になります。
CloudSigma では、サーバー作成直後に VNC にアクセスできます。それに加えて、このチュートリアルでは、Ubuntu 18.04 上に VNC サーバーをセットアップし、安全なトンネルを使用して接続します。このチュートリアルでは、軽量で高速な VNC サーバーパッケージである TigerVNC を使用します。これにより、低速なネットワークでもスムーズな操作が可能になります。
前提条件
まず、マシンを作成する必要があります。これは、CloudSigma WebApp のコンピュートセクションで簡単に行うことができます。

このチュートリアルでは、以下のリソースを使用できます。
CPU: 8 GHz
RAM: 8 GB
SSD: 50 GB
ディスクは、CloudSigma のライブラリにある Ubuntu 18.04 LTS イメージでマウントできます。
Ubuntu 18.04: VirtIO ドライバー、スーパーユーザー、Python 2.7.17、Pip 20.0.2、OpenSSL 1.1.1d、Cloud-init、および 2019-03-03 までの最新アップデートがプリインストールされた 64 ビット。
マシンを起動した後、次のコマンドを実行して、マシン上の既存のリポジトリとパッケージをすべて更新できます。
|
1 2 |
sudo apt update sudo apt upgrade |
CloudSigma VNC 機能
CloudSigma は、VNC を介してマシンにアクセスする簡単な方法を提供します。

VNC Tunnel’s のトグルボタンをクリックして有効にできます。有効にすると、この画面が表示されます。

SSH キーを添付している場合は、サーバーにアクセスし、次のコマンドを使用してパスワードを変更する必要があります。
|
1 2 3 |
ssh -i key.pem cloudsigma@IP sudo passwd cloudsigma |
SSH キーを添付していない場合は、上記のステップをスキップできます。パスワードはインストールノート(Install Notes)に記載されています。
‘Display VNC’ をクリックしてブラウザで VNC ウィンドウを開くか、‘Display VNC URL’ をクリックして VNC クライアントへの接続に必要な詳細情報を表示できます。‘Display VNC’ をクリックすると、新しいタブが開き、資格情報の入力を求められます。VNC クライアントで VM を使用するのと同じように使用できます。

次に、サーバーに VNC をインストールするもう一つの方法を見ていきます。
VNC サーバーのインストール
Ubuntu イメージには、デフォルトで GUI パッケージが含まれていません。最新の XFCE デスクトップ環境用のパッケージと、Ubuntu のリポジトリで利用可能な TigerVNC パッケージをインストールします。
次のコマンドを使用して XFCE パッケージをインストールできます。
sudo apt install xfce4 xfce4-goodies
XFCE パッケージのインストール後、次のコマンドを使用して TigerVNC サーバーをインストールできます。
|
1 |
sudo apt install tightvncserver |
設定を完了するには、次のコマンドを実行し、VNC 接続用のパスワードを設定します。
|
1 |
vncserver |
上記のコマンドを実行すると、表示専用(view-only)パスワードでログインするかどうかを確認するプロンプトが表示されます。表示専用パスワードを使用すると、画面を表示することはできますが、システムを操作することはできません。このオプションは、他の人に画面を見せたいが、操作はさせたくない場合に適しています。
次に、コマンドによって必要なすべての設定が作成されます。この段階で、リモートシステムまたはお使いのコンピュータから VNC サーバーを使用できます。このチュートリアルの一環として、使用する前にサーバーをさらに設定します。
VNC サーバーの設定
このセクションでは、使用する優先デスクトップを設定する方法を説明します。
これらのコマンドは、ホームディレクトリの .vnc フォルダにある ‘xstartup’ というファイルに設定する必要があります。最初に vncserver コマンドを実行したときに、スタートアップスクリプトが作成されました。XFCE デスクトップを起動するために、別のスクリプトを作成します。
さらに、最初に vncserver コマンドを実行したとき、ポート 5901 でデフォルトのサーバーインスタンスが起動されました。このポートはディスプレイポートと呼ばれ、VNC では “:1” として参照されます。コマンドを再実行すると、VNC は他のポートに別のインスタンス “:2” を作成します(以下同様)。
VNCサーバーを設定するため、すでに実行されているインスタンスを停止します。
|
1 |
vncserver -kill :1 |
起動ファイルを変更する前に、元のファイルのバックアップを作成します:
|
1 |
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak |
これで、vimエディタを使用して元のファイルを編集し、その内容を以下に置き換えることができます:
|
1 2 3 4 5 6 7 |
vim ~/.vnc/xstartup 内容: #!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
vncserverを起動または再起動するたびに、プロセスはこのファイルのコマンドを実行します。これらのコマンドは、デスクトップ環境がまだ起動していない場合に起動します。
最初のコマンドである “xrdb $HOME/.Xresources” は、GUIフレームワークにこの場所から設定を読み取るように指示します。ターミナルの色やカーソルのテーマなど、デスクトップのさまざまな設定を行うことができます。2番目のコマンドはXFCEを起動します。
VNCサーバーがファイルを実行できるようにするには、その権限を変更する必要があります:
|
1 |
sudo chmod +x ~/.vnc/xstartup |
権限を変更した後、VNCサーバーを実行できます:
|
1 |
vncserver |

サーバーの準備ができたので、コンピューターから接続できます。
VNC接続用の安全なトンネルの作成
VNCは接続時に安全なプロトコルを使用しないため、SSHを使用して安全な接続を作成します。SSHの安全なトンネルを使用して、仮想デスクトップに接続できます。
接続をローカルホストに安全に転送するSSHトンネルを作成するには、ターミナルまたはPowerShell(Windows用)で次のコマンドを使用できます:
|
1 |
ssh -L 5901:127.0.0.1:5901 -C -N -l <UserName> <ServerIP> -i <pemKey> |
上記のコマンドにおいて、
-L: ポートバインディングを指定するために使用されます。この場合、サーバーの5901ポートをシステムの5901ポートに転送しています
-C: 圧縮を有効にするために使用されます
-N: コマンドのリモート実行が必要ないことを指定するために使用されます
-l: リモートログイン名を指定します
-i: キーの場所を指定します

トンネルが実行されたら、VNCクライアントを使用してlocalhost:5901に接続します。先ほど設定したパスワードの入力を求められます。
接続されると、これに似た画面が表示されます。

Ctrl + Cを押すことで、SSHトンネルを停止できます。
システムサービスとしてのVNCの実行
これで、systemdコマンドを使用して、VNCをシステムサービスとして起動、再起動、またはステータス確認できるように設定できます。これにより、サーバーの再起動時にVNCサーバーが確実に起動するようになります。
これを行うには、新しいユニットファイル – /etc/systemd/system/vncserver@.service を作成します。
|
1 |
touch /etc/systemd/system/vncserver@.service |
上記のファイル名に「@」記号があることに気づくでしょう。これにより、サーバー設定で使用できる引数を渡すことができます。
ファイルに次の内容を追加します:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=<User> Group=<UserGroup> WorkingDirectory=/home/<User> PIDFile=/home/<User>/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target |
「ExecStartPre」コマンドは、VNCがすでに実行されている場合にそれを停止します。一方、ExecStartコマンドは、色深度を24ビットカラー、解像度を1280×800としてVNCを起動します。必要に応じて、このファイルを変更できます。
これで、次のコマンドを使用してsystemdのユニットを再読み込みできます:
|
1 |
sudo systemctl daemon-reload |
systemctlが新しいユニットを認識したので、次のコマンドを使用して有効にできます:
|
1 |
sudo systemctl enable vncserver@1.service |
@の後の数字1は、サービスが表示されるディスプレイ番号を示します。例::1、:2など。
現在のインスタンスを停止するには、次のコマンドを実行します:
|
1 |
vncserver -kill :1 |

これで、他のサービスを起動するのと同様にVNCサーバーを起動できます。
|
1 |
sudo systemctl start vncserver@1 |
サービスが起動しているか確認するには、次のコマンドを実行します:
|
1 |
sudo systemctl status vncserver@1 |
これで、サーバーを再起動したときにVNCサーバーが利用可能になります。
VNCサーバーのセットアップ方法がわかったので、自分のコンピューターを管理するのと同じように、サーバーを簡単に管理できます。
コメント
コメントはまだありません。最初のコメントを投稿しましょう。