本家様 https://novnc.com/info.html
vncクライアントアプリの代わりに webブラウザ 内でマシン操作が行えます
vncクライアントアプリをwindows/macOSにいちいち用意する必要がない分楽かな. まぁーたったそれだけなのかもしれないけど...
一応vncサーバにこのnoVNCサービスを同居して使えますが、原理的にはvncサーバではなく他の別のマシンでnoVNCサービスを提供することもできるみたい
[vncサーバ+noVNCサービス] <--- webブラウザ
[vncサーバ] -- [noVNCサービス] <--- webブラウザ
複数のvncサーバを1つの[noVNCサービス]で提供することが出来る感じかな
ユーザとディスプレイ番号、port番号を予め固定させた方法で作ります vnc#xa61b597
各ユーザが vncserver で勝手にディスプレイ番号、port番号を用意しても面倒なので
対応表
ディスプレイ番号 | ポート番号 | ユーザ | 備考 | noVNCのポート番号 |
:0 | 5900 + 0 = 5900 | コンソールの画面に割り当てられるみたい | ||
:1 | 5900 + 1 = 5901 | saber | 15901 | |
:2 | 5900 + 2 = 5902 | illya | 15902 |
っで
[root@rockylinux8 ~]# dnf install tigervnc-server
[root@rockylinux8 ~]# firewall-cmd --add-service=vnc-server --zone=public --permanent
[root@rockylinux8 ~]# firewall-cmd --reload
[root@rockylinux8 ~]# vi /etc/tigervnc/vncserver-config-defaults
session=gnome-classic <-- ディスクトップ環境を「gnome-classic」にしてます
alwaysshared
securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=2000x1200
[root@rockylinux8 ~]# vi /etc/tigervnc/vncserver.users
:1=saber
:2=illya
[root@rockylinux8 ~]#
ユーザに vncpasswd を実行してもらって
[saber@rockylinux8 ~]$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
[saber@rockylinux8 ~]$
その後に
[root@rockylinux8 ~]# systemctl enable vncserver@:1 --now
これでユーザsaberさんのvncログインが可能になりました
ここではvncサーバと同一マシンにて noVNC を稼働させます
パッケージのインストール
[root@rockylinux8 ~]# dnf install epel-release -y
[root@rockylinux8 ~]# dnf install novnc
あとポートの開放
[root@rockylinux8 ~]# firewall-cmd --add-port=15901-15902/tcp --zone=public --permanent
[root@rockylinux8 ~]# firewall-cmd --reload
これで準備完了
ユーザがコマンドwebsockifyを使って自分に割り当てられて vnc ポートとnoVNCポートを繋ぐ
[saber@rockylinux8 ~]$ websockify -D --web=/usr/share/novnc/ 15901 localhost:5901
WebSocket server settings:
- Listen on :15901
- Web server. Web root: /usr/share/novnc
- No SSL/TLS support (no cert file)
- Backgrounding (daemon)
[saber@rockylinux8 ~]$
この後にブラウザで、rockylinux8:15901 にアクセスします.
アクセスに成功すると下記のようになります.
ここで「接続」ボタンを押下するとパスワードが聞かれます.
ここのパスワードはユーザがvncpasswdで定義したパスワードになります
認証に成功すると画面が表示されます. ブラウザのかなで.
ブラウザの中でディスクトップ環境を操作できます
もちろん、このvnc画面を表示しているブラウザを閉じて、再度 rockylinux8:15901 にすると
同じように vncpasswd で停止したパスワードが問われ
認証が通ると、さっきブラウザを閉じたときのまま継続して利用できます