「VNCでリモートデスクトップ(Ubuntu-MacOS編)」の版間の差分
細 (Kttn がページ「VNCでリモートデスクトップ」を「VNCでリモートデスクトップ(Ubuntu-MacOS編)」に移動しました) |
|||
(同じ利用者による、間の3版が非表示) | |||
行1: | 行1: | ||
− | + | * TurboVNCとVirtualGLを使用 | |
+ | * リモートのUbuntuマシンのデスクトップをローカルのMacマシンに飛ばして作業 | ||
+ | * OpenGLで描画するアプリなどもサクサク動作 | ||
+ | * <span style="color:orange">のはずでしたが、現状まだ成功しておりませんので、読んでも意味ありません。</span> | ||
== 実行環境 == | == 実行環境 == | ||
行17: | 行20: | ||
** Intel HD Graphics 4000 1536 MB | ** Intel HD Graphics 4000 1536 MB | ||
* XQuartx 2.7.11 | * XQuartx 2.7.11 | ||
− | |||
− | |||
− | |||
== インストール == | == インストール == | ||
=== サーバー側 === | === サーバー側 === | ||
− | ※ 参考文献[1] | + | ※ 参考文献[[#ref1|[1]]]にほぼ丸々従っただけなのでそちらを参照ください。一応実行コマンドを並べておきます。 |
+ | |||
==== VirtualGL ==== | ==== VirtualGL ==== | ||
'''ダウンロード''' | '''ダウンロード''' | ||
* https://www.virtualgl.org | * https://www.virtualgl.org | ||
− | * "Official Binaries and Source Tarballs"から virtualgl-2.6.1_amd64.deb をダウンロードした。 | + | ** "Official Binaries and Source Tarballs"から virtualgl-2.6.1_amd64.deb をダウンロードした。 |
'''インストール''' | '''インストール''' | ||
行38: | 行39: | ||
$ sudo /opt/VirtualGL/bin/vglserver_config | $ sudo /opt/VirtualGL/bin/vglserver_config | ||
何やら色々聞かれたが全部デフォルトの回答にした。 | 何やら色々聞かれたが全部デフォルトの回答にした。 | ||
+ | その中で、"vglusers"ユーザーグループだけがvirtual glを使える様に設定するか否かという項目があり、デフォルトの回答は"Yes"だった。そのため、以下のコマンドで自分のユーザーアカウントをvglusersに追加した。 | ||
+ | $ sudo usermod -a -G vglusers <ユーザー名> | ||
+ | rootユーザーも追加する必要がある様。 | ||
+ | $ sudo usermod -a -G vglusers root | ||
+ | 再度再起動 | ||
$ sudo shutdown -r now | $ sudo shutdown -r now | ||
* 再起動後 | * 再起動後 | ||
− | $ xauth merge /etc/opt/VirtualGL/vgl_xauth_key | + | $ sudo xauth merge /etc/opt/VirtualGL/vgl_xauth_key |
$ xdpyinfo -display :0 | $ xdpyinfo -display :0 | ||
$ /opt/VirtualGL/bin/glxinfo -display :0 -c | $ /opt/VirtualGL/bin/glxinfo -display :0 -c | ||
− | + | テキストが色々出力される。何を確認すればいいのかよくわからない。 | |
==== TurboVNC ==== | ==== TurboVNC ==== | ||
行51: | 行57: | ||
'''ダウンロード''' | '''ダウンロード''' | ||
* https://www.turbovnc.org | * https://www.turbovnc.org | ||
− | * "Official Binaries and Source Tarballs"から turbovnc_2.2.1_amd64.deb をダウンロードした。 | + | ** "Official Binaries and Source Tarballs"から turbovnc_2.2.1_amd64.deb をダウンロードした。 |
'''インストール''' | '''インストール''' | ||
行58: | 行64: | ||
=== クライアント側 === | === クライアント側 === | ||
+ | TurboVNCのドキュメント[[#ref3|[3]]]を参照。 | ||
+ | ==== JDKのインストール ==== | ||
+ | TurboVNC Viewerの使用にはJDK (Java Development Kit)が必要なので、まずそちらをインストールする。 | ||
+ | |||
+ | 無料のOpenJDKを使用した。 | ||
+ | |||
+ | '''ダウンロード''' | ||
+ | * https://jdk.java.net/archive/ | ||
+ | ** version 11.0.2のLinux 64-bit用のtar.gzをダウンロードした。 | ||
+ | ** <span style="color:red">version12ではTurboVNC ViewerがJRE load errorで動作しなかった。</span> | ||
+ | |||
+ | '''インストール''' | ||
+ | |||
+ | [[#ref2|[2]]]を参考にしてインストール。 | ||
+ | $ tar xzvf openjdk-11.0.2_osx-x64_bin.tar.gz | ||
+ | $ sudo mv jdk-11.0.2.jdk /Library/Java/JavaVirtualMachines/ | ||
+ | |||
+ | JAVA_HOME環境変数を設定する。.bash_profileに以下の行を追加する。 | ||
+ | export JAVA_HOME=`/usr/libexec/java_home -v 11` | ||
+ | launchctl setenv JAVA_HOME $JAVA_HOME | ||
+ | |||
+ | 再起動する。 | ||
+ | $ sudo shutdown -r now | ||
+ | |||
+ | ==== TurboVNC viewerのインストール ==== | ||
+ | '''ダウンロード''' | ||
+ | * https://www.turbovnc.org | ||
+ | ** "Official Binaries and Source Tarballs"から TurboVNC-2.2.1.dmg をダウンロードした。 | ||
+ | |||
+ | ダウンロードしたdmgをダブルクリックして展開し、その中のpkgインストーラでインストールすれば良い。 | ||
== 実行 == | == 実行 == | ||
=== サーバー側 === | === サーバー側 === | ||
+ | '''VNCサーバーを起動''' | ||
+ | $ /opt/TurboVNC/bin/vncserver | ||
+ | |||
+ | Desktop 'TurboVNC: <サーバーホスト名>:1 (<ユーザー名>)' started on display <サーバーホスト名>:1<br/> | ||
+ | のような感じでメッセージが出てくる。ホスト名の:の右側にある数字がVNCが使っているディスプレイ番号。 | ||
+ | |||
=== クライアント側 === | === クライアント側 === | ||
+ | '''VNCクライアントを起動'''<br/> | ||
+ | /Applications/TurboVNC/TurboVNC Viewer.app をダブルクリックして起動する。 | ||
+ | |||
+ | [[File:VNCクライアント.png]] | ||
+ | |||
+ | '''接続'''<br/> | ||
+ | サーバー側でVNC起動時に出力された<サーバーホスト名>:<ディスプレイ番号>をウィンドウに打ち込んでConnectすればいいらしいが、<サーバーホスト名>:1と試しに打ち込んでみると"Could not resolve hostname: <サーバーホスト名>: nodename nor servname provided, or not known"と出て接続できなかった。 | ||
+ | |||
+ | <サーバーホスト名>の代わりに<サーバーipアドレス>でも良いらしいのでそれも試してみたが、今度は"Could not connect: Operation timed out"と表示されて接続できなかった。 | ||
+ | |||
+ | |||
+ | '''対処'''<br/> | ||
+ | EMAN2のウェブサイト[[#ref4|[4]]]にある方法を試してみた。 | ||
+ | $ /opt/TurboVNC/bin/vncviewer -tunnel <ユーザー名>@<サーバーipアドレス>:1 | ||
+ | すると "Could not create SSH tunnel: invalid privatekey: "と表示されて接続できなかった。サーバーへの鍵登録はすでに済んでいるし、普段sshで鍵交換でログインしているので、何が悪いのかよくわからない。(/opt/TurboVNC/bin/vncviewer -h でヘルプ読める) | ||
+ | |||
+ | |||
+ | 念の為秘密鍵ファイルのパスをあらわに指定してみた。 | ||
+ | $ /opt/TurboVNC/bin/vncviewer -tunnel -SSHKeyfile=.ssh/id_rsa <ユーザー名>@<サーバーipアドレス>:1 | ||
+ | "Could not create SSH tunnel: invalid privatekey: " はいダメ。 | ||
+ | |||
+ | |||
+ | なんか上記エラーが出る際、一瞬"TurboVNCのネットワーク接続を許可しますか?"的なダイアログが出て一瞬で消えていることに気がついたので、MacOSのセキュリティ設定の問題かと思い、その線でちょっと攻めてみる。 | ||
+ | |||
+ | |||
+ | システム環境設定 > セキュリティとプライバシー > ファイアウォール > ファイアウォールオプション で、TurboVNC Viewer.appを「外部からの接続を許可」に設定し、再度上記コマンドを叩いてみたが、invalid privatekeyで接続失敗した。一応ファイアウォール自体をオフにするパターンも試したが、それもダメだった。 | ||
+ | |||
+ | |||
+ | EMAN2のウェブサイト[[#ref4|[4]]]やgoogleで見つかる他の適当なサイトにある次の方法を試してみた。 | ||
+ | |||
+ | $ ssh <ユーザー名>@<サーバーipアドレス> -L5901:localhost:5901 | ||
+ | をした後に、VNCクライアントを立ち上げてウィンドウに"vnc://localhost:5901"とか"localhost:5901"とか打ち込んでみたが、前者の場合は"Could not resolve hostname: vnc://localhost: nodename nor servname provided, or not known"で、後者の場合は"javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate"でダメだった。ちなみに前者のlocalhostを127.0.0.1に置き換えてもダメだった。 | ||
+ | |||
+ | そうこうしているうちに、気がつくとサーバー側で compiz プロセスが7個、それぞれ100% CPUで走っていることに気づく。vncserver -kill :1 でvncセッションを殺しても解消されない。compizプロセスはkillで殺しておいた。 | ||
+ | |||
+ | つらい。 | ||
+ | |||
+ | |||
+ | == 参考文献 == | ||
+ | <span id="ref1">[1]</span> https://gist.github.com/cyberang3l/422a77a47bdc15a0824d5cca47e64ba2 | ||
+ | |||
+ | <span id="ref2">[2]</span> https://solarianprogrammer.com/2018/09/28/installing-openjdk-macos/ | ||
+ | |||
+ | <span id="ref3>[3]</span> https://cdn.rawgit.com/TurboVNC/turbovnc/2.2.1/doc/index.html | ||
+ | |||
+ | <span id="ref4>[4]</span> https://blake.bcm.edu/emanwiki/EMAN2/Remote |
2019年8月30日 (金) 05:08時点における最新版
- TurboVNCとVirtualGLを使用
- リモートのUbuntuマシンのデスクトップをローカルのMacマシンに飛ばして作業
- OpenGLで描画するアプリなどもサクサク動作
- のはずでしたが、現状まだ成功しておりませんので、読んでも意味ありません。
目次
実行環境
サーバー
Ubuntu 16.04.6 LTS
- 3.6 GHz Intel Xeon E5-1650
- 64 GB 2133 MHz DDR4
- NVIDIA GeForce GTX 1080 8 GB x 4台
- Driverバージョン 418.74
- CUDAバージョン 10.1
クライアント
macOS Mojave 10.14.4
- Mac mini (Late 2012)
- 2.3 GHz Intel Core i7
- 16 GB 1600 MHz DDR3
- Intel HD Graphics 4000 1536 MB
- XQuartx 2.7.11
インストール
サーバー側
※ 参考文献[1]にほぼ丸々従っただけなのでそちらを参照ください。一応実行コマンドを並べておきます。
VirtualGL
ダウンロード
- https://www.virtualgl.org
- "Official Binaries and Source Tarballs"から virtualgl-2.6.1_amd64.deb をダウンロードした。
インストール
- dpkgでインストールして再起動
$ sudo dpkg -i virtualgl-2.6.1_amd64.deb $ sudo shutdown -r now
- 再起動後
$ sudo service lightdm stop $ sudo /opt/VirtualGL/bin/vglserver_config
何やら色々聞かれたが全部デフォルトの回答にした。 その中で、"vglusers"ユーザーグループだけがvirtual glを使える様に設定するか否かという項目があり、デフォルトの回答は"Yes"だった。そのため、以下のコマンドで自分のユーザーアカウントをvglusersに追加した。
$ sudo usermod -a -G vglusers <ユーザー名>
rootユーザーも追加する必要がある様。
$ sudo usermod -a -G vglusers root
再度再起動
$ sudo shutdown -r now
- 再起動後
$ sudo xauth merge /etc/opt/VirtualGL/vgl_xauth_key $ xdpyinfo -display :0 $ /opt/VirtualGL/bin/glxinfo -display :0 -c
テキストが色々出力される。何を確認すればいいのかよくわからない。
TurboVNC
※ 以下はVirtualGLのインストールが終わった後に実行
ダウンロード
- https://www.turbovnc.org
- "Official Binaries and Source Tarballs"から turbovnc_2.2.1_amd64.deb をダウンロードした。
インストール
- dpkgでインストール
$ sudo dpkg -i turbovnc_2.2.1_amd64.deb
クライアント側
TurboVNCのドキュメント[3]を参照。
JDKのインストール
TurboVNC Viewerの使用にはJDK (Java Development Kit)が必要なので、まずそちらをインストールする。
無料のOpenJDKを使用した。
ダウンロード
- https://jdk.java.net/archive/
- version 11.0.2のLinux 64-bit用のtar.gzをダウンロードした。
- version12ではTurboVNC ViewerがJRE load errorで動作しなかった。
インストール
[2]を参考にしてインストール。
$ tar xzvf openjdk-11.0.2_osx-x64_bin.tar.gz $ sudo mv jdk-11.0.2.jdk /Library/Java/JavaVirtualMachines/
JAVA_HOME環境変数を設定する。.bash_profileに以下の行を追加する。
export JAVA_HOME=`/usr/libexec/java_home -v 11` launchctl setenv JAVA_HOME $JAVA_HOME
再起動する。
$ sudo shutdown -r now
TurboVNC viewerのインストール
ダウンロード
- https://www.turbovnc.org
- "Official Binaries and Source Tarballs"から TurboVNC-2.2.1.dmg をダウンロードした。
ダウンロードしたdmgをダブルクリックして展開し、その中のpkgインストーラでインストールすれば良い。
実行
サーバー側
VNCサーバーを起動
$ /opt/TurboVNC/bin/vncserver
Desktop 'TurboVNC: <サーバーホスト名>:1 (<ユーザー名>)' started on display <サーバーホスト名>:1
のような感じでメッセージが出てくる。ホスト名の:の右側にある数字がVNCが使っているディスプレイ番号。
クライアント側
VNCクライアントを起動
/Applications/TurboVNC/TurboVNC Viewer.app をダブルクリックして起動する。
接続
サーバー側でVNC起動時に出力された<サーバーホスト名>:<ディスプレイ番号>をウィンドウに打ち込んでConnectすればいいらしいが、<サーバーホスト名>:1と試しに打ち込んでみると"Could not resolve hostname: <サーバーホスト名>: nodename nor servname provided, or not known"と出て接続できなかった。
<サーバーホスト名>の代わりに<サーバーipアドレス>でも良いらしいのでそれも試してみたが、今度は"Could not connect: Operation timed out"と表示されて接続できなかった。
対処
EMAN2のウェブサイト[4]にある方法を試してみた。
$ /opt/TurboVNC/bin/vncviewer -tunnel <ユーザー名>@<サーバーipアドレス>:1
すると "Could not create SSH tunnel: invalid privatekey: "と表示されて接続できなかった。サーバーへの鍵登録はすでに済んでいるし、普段sshで鍵交換でログインしているので、何が悪いのかよくわからない。(/opt/TurboVNC/bin/vncviewer -h でヘルプ読める)
念の為秘密鍵ファイルのパスをあらわに指定してみた。
$ /opt/TurboVNC/bin/vncviewer -tunnel -SSHKeyfile=.ssh/id_rsa <ユーザー名>@<サーバーipアドレス>:1
"Could not create SSH tunnel: invalid privatekey: " はいダメ。
なんか上記エラーが出る際、一瞬"TurboVNCのネットワーク接続を許可しますか?"的なダイアログが出て一瞬で消えていることに気がついたので、MacOSのセキュリティ設定の問題かと思い、その線でちょっと攻めてみる。
システム環境設定 > セキュリティとプライバシー > ファイアウォール > ファイアウォールオプション で、TurboVNC Viewer.appを「外部からの接続を許可」に設定し、再度上記コマンドを叩いてみたが、invalid privatekeyで接続失敗した。一応ファイアウォール自体をオフにするパターンも試したが、それもダメだった。
EMAN2のウェブサイト[4]やgoogleで見つかる他の適当なサイトにある次の方法を試してみた。
$ ssh <ユーザー名>@<サーバーipアドレス> -L5901:localhost:5901
をした後に、VNCクライアントを立ち上げてウィンドウに"vnc://localhost:5901"とか"localhost:5901"とか打ち込んでみたが、前者の場合は"Could not resolve hostname: vnc://localhost: nodename nor servname provided, or not known"で、後者の場合は"javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate"でダメだった。ちなみに前者のlocalhostを127.0.0.1に置き換えてもダメだった。
そうこうしているうちに、気がつくとサーバー側で compiz プロセスが7個、それぞれ100% CPUで走っていることに気づく。vncserver -kill :1 でvncセッションを殺しても解消されない。compizプロセスはkillで殺しておいた。
つらい。
参考文献
[1] https://gist.github.com/cyberang3l/422a77a47bdc15a0824d5cca47e64ba2
[2] https://solarianprogrammer.com/2018/09/28/installing-openjdk-macos/
[3] https://cdn.rawgit.com/TurboVNC/turbovnc/2.2.1/doc/index.html
[4] https://blake.bcm.edu/emanwiki/EMAN2/Remote