VNC(Virtual Network Computing)
RFB Protocol(remote framebuffer)を使ってリモートアクセスを可能にする. なのでRFBを受信するサーバアプリと送信するクライアント(ビューア)が揃えばいい代物。
例えば、サーバをwindowsPCで動かして、ビューアをLinuxで動かせば、Linuxからwindowsの画面を共有しつつ操作も可能となる。
ここではLinuxでサーバを動かして、windowsから操作してみます。
XDMCPで繋ぐにはvnc/XDMCP
vnc/noVNC
一歩進んで画面共有をブラウザで提供するのがGuacamole
最小構成で構築したなら「yum groupinstall "GNOME Desktop"」を実行
rhel8系なら「dnf groupinstall Workstation」
一般ユーザでログインして、「Settings」を開き、「Sharing」にて「Screen Sharing」を選ぶ
そこで「Allow connections to control the screen」を有効にしてパネル上部のスイッチを「ON」にする
これで vnc が有効になって他、例えばwindowsにいれた vnc-viewer とかでアクセスできる。
だが、下記作業が別途必要です
[root@n1 ~]# firewall-cmd --add-service=vnc-server --permanent
[root@n1 ~]# firewall-cmd --reload
ログインしているユーザの画面共有なら上記方法で足りるのかなと.
*画面にログインしていないユーザをvncで接続させるには、他のサイトで語られている方法を使うしかない。
「vncpasswd」でvnc接続向けのパスワードを作ったり、「vncserver -geometry 1024x1024 :1」で画面サイズとポートを掘ったりと. それなら xdmcpをvncで提供したほうが楽では?vnc/XDMCP
パネルに相手先を入力して「connect」ボタンを押下します
パスワード制御されているとパスワードが求められ、その認証が済むと画面が表示される。
基本は「設定」の「共有」から画面共有設定ができるみたい。っが、netplan経由でないと使えないの?
参照先 https://www.cyberciti.biz/faq/install-and-configure-tigervnc-server-on-ubuntu-18-04/
ディスプレイマネージャGDMをそのまま使うには下記 vnc サーバをインストールします。
root@ubuntu-esxi:~# apt install tigervnc-standalone-server tigervnc-xorg-extension
次にvnc経由で画面共有をさせたいユーザの vnc 接続の際に使用するパスワードを決めます。
illya@ubuntu-esxi:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
illya@ubuntu-esxi:~$
そしてXセッションの起動用のプログラムを記載します。
illya@ubuntu-esxi:~$ cat .vnc/xstartup
#!/bin/sh
# Start Gnome 3 Desktop
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
illya@ubuntu-esxi:~$
その後にvncサービスを起動します。
「vncserver -localhost no -geometry 1024x1024 :1」
illya@ubuntu-esxi:~$ vncserver -localhost no -geometry 1024x1024 :1
/usr/bin/xauth: file /home/illya/.Xauthority does not exist
/usr/bin/xauth: (argv):1: bad display name "ubuntu-esxi.sybyl.local:1" in "add" command
/usr/bin/xauth: file /home/illya/.Xauthority does not exist
New 'ubuntu-esxi.sybyl.local:1 (illya)' desktop at :1 on machine ubuntu-esxi.sybyl.local
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/illya/.vnc/ubuntu-esxi.sybyl.local:1.log
Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/illya/.vnc/passwd ubuntu-esxi.sybyl.local:1 to connect to the VNC server.
illya@ubuntu-esxi:~$
この段階で「ps」コマンドでプロセスを確認するとユーザのXログインセッションに必要なプロセスが稼働しています。
ここでvncクライアントでアクセスします。
終了方法
illya@ubuntu-esxi:~$ vncserver -kill :1
これにて「vncserver」で起動したプロセスがすべて終了します。
「~/.vnc/xstartup」ファイルを用意しないとプロセスが残りますので要注意
留意
ここでは tiger-vncを使っている。vncserverといっても
illya@ubuntu-esxi:~$ update-alternatives --display vncserver
vncserver - auto mode
link best version is /usr/bin/tigervncserver
link currently points to /usr/bin/tigervncserver
link vncserver is /usr/bin/vncserver
slave vncserver.1.gz is /usr/share/man/man1/vncserver.1.gz
/usr/bin/tigervncserver - priority 80
slave vncserver.1.gz: /usr/share/man/man1/tigervncserver.1.gz
illya@ubuntu-esxi:~$
と「tigervncserver」へリンクされています。
ubuntuのGNOMEとtigervncはOKみたい。しかしGNOMEとvnc4serverは無理みたい。
GNOMEが重いなら軽量のディスプレイマネージャで。
こちらを採用されている方が多いのかな
root@ubuntu-esxi:~# apt install xfce4 xfce4-goodies
使用するvncはtigervnc。どうもvnc4serverだと上手く動かない。。こちらだけなのかもしれないけど。
xstartupファイルは
illya@ubuntu-esxi:~$ cat .vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
illya@ubuntu-esxi:~$