UbuntuにVNCサーバーをインストールして構成する方法
バーチャルネットワークコンピューティング(VNC)は、ユーザーアカウントが別のコンピュータやモバイルデバイスから1台のコンピュータのデスクトップインターフェースにリモート接続し、制御することを可能にする広く使用されているグラフィカルデスクトップ共有システムです。
この記事では、tigervnc-server</strong>プログラムを使用して、Ubuntu 18.04</strong>デスクトップエディションにVNCサーバー</strong>をインストールし、設定する方法を説明します。
テスト環境
VNC Server: 192.168.56.108
VNC Client: 192.168.56.2
Ubuntuにデスクトップ環境をインストールする
私が言ったように、VNCはデスクトップ共有システムですので、Ubuntuサーバーにデスクトップ環境をインストールする必要があります。以下の適切なコマンドを実行することで、お好みのDEをインストールできます。本記事の目的のために、Ubuntu Gnome(公式フレーバー)をインストールします。
$ sudo apt-get install ubuntu-desktop #Default Ubuntu desktop
sudo apt install ubuntu-gnome-desktop #Ubuntu Gnome (Official flavor)
sudo apt-get install xfce4 #LXDE
sudo apt-get install lxde #LXDE
sudo apt-get install kubuntu-desktop #KDE
UbuntuにVNCをインストールして設定する
Tigervnc-serverは、高速でマルチプラットフォームのVNCプログラムで、Xvncサーバーを実行し、VNCデスクトップ上でGnomeや他のデスクトップ環境の並行セッションを開始します。
UbuntuにTigerVNCサーバーおよびその他の関連パッケージをインストールするには、次のコマンドを実行します。
$ sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer
通常のユーザーとしてvncserverコマンドを実行して、VNCサーバーを起動します。この操作により、$HOME/.vncディレクトリに初期設定が作成され、ログインパスワードの設定を促されます。
パスワードを入力してください(6文字以上である必要があります)そして確認してください。その後、必要に応じて、次のように閲覧専用のパスワードを設定してください。
$ vncserver
ls -l ~/.vnc
次に、VNCサーバーと連携するようにDEを設定する必要があります。したがって、いくつかの設定を行うために、次のコマンドを使用してVNCサーバーを停止してください。
$ vncserver -kill :1
GNOMEやインストールされている他のデスクトップを設定するには、お気に入りのテキストエディタを使用して、設定ディレクトリの下にxstartupという名前のファイルを作成します。
$ vi ~/.vnc/xstartup
次の行をファイルに追加してください。これらのコマンドは、TigerVNCサーバーを起動または再起動するたびに自動的に実行されます。コマンドは、インストールしたDEによって異なる場合があることに注意してください。
#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
ファイルを保存し、実行できるようにファイルに適切な権限を設定してください。
$ chmod 700 ~/.vnc/xstartup
次に、通常のユーザーとして以下のコマンドを実行してVNCサーバーを起動します。表示のジオメトリには自分の値を設定してください。また、-localhostフラグを使用して、localhostからの接続のみを許可し、類推として、サーバーで認証されたユーザーからのみ接続を許可します。
さらに、VNCはデフォルトでTCPポート5900+Nを使用し、ここでNはディスプレイ番号です。この場合、:1はVNCサーバーがディスプレイポート番号5901で実行されることを意味します。
$ vncserver :1 -localhost -geometry 1024x768 -depth 32
システム上のVNCサーバーセッションをリストするには、次のコマンドを実行します。
$ vncserver -list
VNCサーバーが起動したら、netstatコマンドを使用して実行中のポートを確認してください。
$ netstat -tlnp
VNCクライアントを介してVNCサーバーに接続する
このセクションでは、VNCサーバーへの接続方法を示しますが、その前に、デフォルトではVNCは安全ではないことを知っておく必要があります(暗号化されたプロトコルではなく、パケットスニッフィングの対象になる可能性があります)。この問題は、クライアントからサーバーへの接続をSSHを通じてトンネルを作成することで解決できます。
SSHトンネリングを使用すると、ローカルマシンのポート5901から同じポートのVNCサーバーにトラフィックを安全に転送できます。
Linuxクライアントマシンで、新しいターミナルウィンドウを開き、次のコマンドを実行してVNCサーバーへのSSHトンネルを作成します。
$ ssh -i ~/.ssh/ubuntu18.04 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.108
次に、TigerVNC Viewerなどのvncviewerクライアントを以下のようにインストールします(お好みの他のクライアントをインストールしても構いません)。
$ sudo apt install tigervnc-viewer #Ubuntu/Debian
sudo yum install tigervnc-viewer #CnetOS/RHEL
sudo yum install tigervnc-viewer #Fedora 22+
sudo zypper install tigervnc-viewer #OpenSUSE
sudo pacman -S tigervnc #Arch Linux
インストールが完了したら、VNCクライアントを実行し、次のように表示1に接続するためにアドレスlocalhost:5901を指定します。
$ vncviewer localhost:5901
または、システムメニューから開き、上記のアドレスを入力してから接続をクリックします。
以前に作成したVNCログインパスワードの入力を求められますので、それを入力し、OKをクリックして続行してください。
パスワードが正しければ、デスクトップのログインインターフェースに入ります。デスクトップにアクセスするには、パスワードを入力してください。
style="color: red;">注意</strong>: セキュリティに敏感な方は、SSHトンネリングを有効にしているにもかかわらず、VNCビューワーに「接続が暗号化されていない</strong>」と表示されていることに気付いたかもしれません。
これは、サーバーに認証を試みる際にSSHトンネリング以外の特定のセキュリティスキームを使用するように設計されているためです。しかし、SSHトンネリングを有効にすると、接続は安全になります。
TigerVNCサーバーのためのSystemdユニットファイルの作成
systemdの下でVNCサーバーを管理するため、つまり必要に応じてVNCサービスを開始、停止、再起動するためには、/etc/systemd/system/ディレクトリにユニットファイルを作成する必要があります。
$ sudo vim /etc/systemd/system/[email
次に、ファイルに以下の行を追加します:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=tecmint
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
ファイルを保存して閉じてください。
次に、次のように新しく作成したユニットファイルを読み込むためにsystemdマネージャーの設定を再読み込みします。
$ sudo systemctl daemon-reload
次に、VNCサービスを開始し、システム起動時に自動的に開始するように設定し、表示されているようにそのステータスを確認します。
sudo systemctl start vncserver@1
sudo systemctl enable vncserver@1
sudo systemctl status vncserver@1
以上です!この記事では、Ubuntu LinuxディストリビューションにVNCサーバーをインストールおよび設定する方法を説明しました。下のフィードバックフォームを通じて、質問や意見をお寄せください。









