AWSでUbuntu20.04を構築して「LXDE」「TightVNC」「noVNC」をインストールしてブラウザ経由でリモートデスクトップ環境を構築してみる

リモート対応する場合の作業環境として、Ubuntuデスクトップを準備した時のメモです。

環境

  • AWS
  • Ubuntu Server 20.04 LTS(AMI: ami-0f2dd5fc989207c82)

インストール手順

パッケージアップデート

  • 起動直後のUbuntuを最新の状態にする
    sudo apt update
    sudo apt upgrade

LXDEインストール

  • LXDEのインストール(最小限の機能が問題ないのであれば lxde-core のインストール)
    sudo apt install lxde
    sudo reboot

TightVNCインストール

  • vncサーバとしてTightVNCをインストール
sudo apt install tightvncserver
sudo apt install xfonts-base
vncserver :1
cp -p ~/.vnc/xstartup ~/.vnc/xstartup.bk
chmod +x ~/.vnc/xstartup
vi ~/.vnc/xstartup
*** 最終行に追記
-----
lxsession -s LXDE &
-----

vncserver -kill :1
vncserver :1

TightVNC自動起動設定

  • サーバ起動時に自動的に起動するよう設定
sudo vi /lib/systemd/system/vncserver@1.service
*** 新規作成
---
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu

PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x768 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target
---

sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service

noVNCインストール

  • ブラウザ経由でアクセスするためにnoVNCをインストール
    sudo apt install novnc websockify python-numpy
    websockify -D --web=/usr/share/novnc/ 6080 localhost:5901

noVNC自動起動設定

  • サーバ起動時に自動的に起動するよう設定
sudo vi /lib/systemd/system/novnc.service
*** 新規作成
---
[Unit]
Description=noVNC startup

[Service]
Type=simple
ExecStart=/usr/bin/websockify -D --web=/usr/share/novnc/ 6080 localhost:5901
ExecStop=/bin/kill ${MAINPID}
Restart=always
User=ubuntu
Group=ubuntu

[Install]
WantedBy=multi-user.target
---

sudo systemctl enable novnc.service
sudo systemctl start novnc.service

ブラウザ経由で接続してみる

  • http://<IP Address>:6080/vnc.html にアクセス

  • vncserver初回起動時に設定したパスワードを入力

  • リモートデスクトップ環境にログイン完了

ブラウザ経由でアクセスできるのは便利ですね。セキュリティを考えると認証をどうするか・SSL通信で暗号化する必要があるなどの課題があると思います。

タイトルとURLをコピーしました