XDMCPでマルチユーザにX画面を提供しようとするとCUDA環境、GNOME3環境で上手くいかないときがあった。

ならばとVNCでX画面を提供しようとすると、

  • ユーザが事前にログインして
  • vncserver を立ち上げ、
  • その590xポートにアクセスする

といった操作が必要
CUDA、GNOME3環境の問題からは回避できるが、手続きが面倒。。。

noVNC
vncクライアントがブラウザになったようなもの。
別に、上記の面倒な操作がいらなくなる訳ではないけど。。

できればXDMCPをそのままnoVNC経由でもいいからブラウザで表示されてほしい。。。ってできた#mfbd676f

参照先:https://www.youtube.com/watch?v=VM-2g1iNyz8

パッケージのインストール

[root@c ~]# yum -y install epel-release
[root@c ~]# yum --enablerepo=epel -y install novnc python-websockify numpy
 
(ubuntu18.04)
apt -y install novnc websockify python-numpy

(オプション)証明書の作成

別に所内で使う分には用意しなくてもいいような気がしますが、、、下記は確かめてません。
証明書は下記のように作るみたい

openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/novnc.pem -out /etc/pki/tls/certs/novnc.pem -days 365

いざ使ってみる。

まず、vncと同じように個々個人で「vncpasswd」でvnc向けのパスワードを作って、「vncserver」でvncサービスを起動させます。
その後、websockify でnoVNCのサービスも起動する。

[illya@c ~]$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
 
[illya@c ~]$ vncserver -geometry 1024x1024 :1
(画面番号:1ならvncのポート番号は 5901 になります)
 
[illya@c ~]$ websockify -D --web=/usr/share/novnc/ 6080 localhost:5901
WebSocket server settings:
  - Listen on :6080
  - Flash security policy server
  - Web server. Web root: /usr/share/novnc
  - No SSL/TLS support (no cert file)      <---- 証明書を指定してません
  - Backgrounding (daemon)
[illya@c ~]$

もし証明書を使うなら、「websockify -D --web=/usr/share/novnc/ --cert=/etc/pki/tls/certs/novnc.perm 6080 localhost:5901」となるみたい

webブラウザでサービスを動かしているマシンの6080ポートに接続します。ここでは「http://c:6080/」へのアクセスになります。
すると、
2019y07m15d_050951895.png
と表示され、vnc向けに作ったパスワードを入力します。すると、
2019y07m15d_051125415.png
となる。
vncと同じ画面が、ブラウザベースで利用可能になります。

一応RELION,EMAN2,Chimeraは動くみたい。
2019y07m15d_051545711.png
操作感はサーバのスペック、回線にも寄るかと

メモ(雑感)

vncの操作の画面が、vncクライアントか、ブラウザなのかの違いでしかない。
利点としてはブラウザならsslを噛まして所外のマシンの操作にも使えるのでしょう。
例えばAWSでマシンを作って、それをssl経由のブラウザベースで操作とかならありかな。
vncをセキュアに使うならsshトンネルかな。sshトンネルを作るならこのnoVNCは楽な選択肢に思える。

ただ、10人20人いるような場面だと個別にvncserverを立ち上げると、その分Xにリソースが割かれる。
単純にXサーバをwindows/macOSに乗せて、X画面だけ持ってこさせたほうが、、、、

 XDMCP

vnc/XDMCPでvncクライアントから接続できることを確認して後、

[root@c ~]# websockify -D --web=/usr/share/novnc/ 6080 localhost:5900

を実行したら noVNC 経由でXDMCP接続ができた。
2019y08m01d_231506589.png


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2019-08-02 (金) 21:56:03 (20d)