#author("2023-05-11T11:48:27+09:00","","") #author("2023-05-12T20:56:49+09:00","","") #topicpath //////////////////////////////////////////////////////////////////////////////// * 目次 [#c83e63b2] #contents(); //////////////////////////////////////////////////////////////////////////////// * Tigervnc [#j56ba32e] - 多数ある vnc 派生実装の一つ。 - TightVNC からの派生実装で、 TightVNC の高機能を引き継ぎ、且つ OpenGL による高速化が実装されている。 //////////////////////////////////////////////////////////////////////////////// * ssh トンネルで接続する [#g3d8a919] - '''vnc は通信を暗号化しない為、特に信頼出来るローカルネットワーク内以外では、ssh トンネリングを使用した接続が推奨される。''' - ssh トンネルを使用する接続では、他のポートを開くことなく、vncserver も localhost からの接続を受け付けるようにする。 //============================================================================== ** サーバの起動 [#labdc85f] - サーバを起動する $ vncserver -geometry <display-size> -alwaysshared -dpi 96 -localhost <display-ID> -- <display-size> は、ディスプレイサイズを指定する ex. 1906x1020, 1920x1080, 1440x900, 1200x700, etc., -- <display-ID> は、 vncserver が使う環境変数 DISPLAY を指定する ex. :1, :2, etc., -- 若しくは、引数指定する代わりに設定を ${HOME}/.vnc/config に以下のように記載する ## Supported server options to pass to vncserver upon invocation can be listed ## in this file. See the following manpages for more: vncserver(1) Xvnc(1). ## Several common ones are shown below. Uncomment and modify to your liking. ## geometry=1906x1020 alwaysshared dpi=96 localhost //============================================================================== ** クライアントからの接続 [#e50caeec] + ssh トンネルで接続する場合は、接続先のホストに ssh で接続する。~ この際、 -L でトンネルを有効にする。 - 接続するホストに、ssh でログインする $ ssh <sever> -L <port-cli>:localhost:<port-svr> -- サーバのポート <port-svr> をクライアントのポート <port-cli> に転送する。 -- <port-svr> と <port-cli> は必ずしも一致している必要はない。 -- サーバのポートは、サーバにログインして確認出来る:(下記の例では5901 が該当する) $ vncserver -list | perl -pe 's/^/\ /' $ vncserver -list TigerVNC server sessions: X DISPLAY # RFB PORT # PROCESS ID SERVER :1 5901 14893 Xtigervnc + vncviewer を起動する -- ssh 接続した先から以下を実行する: --- サーバとクライアントで同じポートを使用する場合 $ vncviewer localhost:1 --- サーバとクライアントで異なるポートを使用する場合 $ vncviewer localhost:<port-cli> //////////////////////////////////////////////////////////////////////////////// * ssh トンネルを使用しない起動 [#pf8a47de] - '''信頼出来るローカルネットワーク内以外では、ssh トンネルを使用しない接続は推奨されないことに注意すること。''' //============================================================================== ** サーバの起動 [#c4e02a5d] $ tigervncserver <display-ID> -localhost no - <display-ID>: :1, ;2, etc. - sshトンネルを使わずにリモートから接続する場合は、 -localhost no が必要。 //////////////////////////////////////////////////////////////////////////////// * すでに起動済みのデスクトップをミラーリングする場合 [#ca86d461] $ x0tigervncserver PasswordFile=$HOME/.vnc/passwd //////////////////////////////////////////////////////////////////////////////// * サーバの終了 [#l297f002] $ tigervncserver -kill <display-ID> //////////////////////////////////////////////////////////////////////////////// * トラブルシューティング [#af3f931e] //============================================================================== ** サーバが正常に起動しない場合 [#e1ba89c8] - 以下のようなメッセージが出る場合は、${HOME}/.vnc/xstartup がないか、その内容に問題がある。 $ tigervncserver :1 -localhost no New Xtigervnc server 'hostname:1 (user-name)' on port 5901 for display :1. Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/user-name/.vnc/passwd hostname:1 to connect to the VNC server. =================== tail /home/user-name/.vnc/hostname:5901.log =================== X connection to :1 broken (explicit kill or server shutdown). Sat Jan 8 10:59:31 2022 ComparingUpdateTracker: 0 pixels in / 0 pixels out ComparingUpdateTracker: (1:-nan ratio) Killing Xtigervnc process ID 15789... success! ============================================================================= Session startup via '/etc/X11/Xtigervnc-session' cleanly exited too early (< 3 seconds)! Maybe try something simple first, e.g., tigervncserver -xstartup /usr/bin/xterm The Xtigervnc server cleanly exited! The X session cleanly exited! -- user-name : 起動しようとしたユーザ名 -- hostname : vncserver を起動しようとしたホスト名 - 以下のようなメッセージが出る場合は、 ${HOME}/.vnc/xstartup に実行権限がないので、付与する必要がある。 $ tigervncserver :1 -localhost no New Xtigervnc server 'hostname:1 (user-name)' on port 5901 for display :1. Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/user-name/.vnc/passwd hostname:1 to connect to the VNC server. tigervncserver: Can't exec '/home/user-name/.vnc/xstartup': Permission denied =================== tail /home/user-name/.vnc/hostname:5901.log =================== Can't exec "/home/user-name/.vnc/xstartup": 許可がありません at /usr/share/perl5/TigerVNC/Wrapper.pm line 1073. ============================================================================= Session startup via '/home/user-name/.vnc/xstartup' exited with status 1! Maybe try something simple first, e.g., tigervncserver -xstartup /usr/bin/xterm The X session exited with status 1! Killing Xtigervnc process ID 15980... success! //////////////////////////////////////////////////////////////////////////////// * 参考リンク [#link] - [[TigerVNC - ArchWiki>https://wiki.archlinux.jp/index.php/TigerVNC#SSH_.E3.83.88.E3.83.B3.E3.83.8D.E3.83.AB.E7.B5.8C.E7.94.B1.E3.81.A7_vncserver_.E3.81.AB.E3.82.A2.E3.82.AF.E3.82.BB.E3.82.B9]] - [[つまずかない!?TigerVNCでリモートデスクトップ - Qiita>https://qiita.com/tats-u/items/c170f61a5e03ae045128]]