Xephyr

Linuxの画面を共有させるには

クライアント環境がwindows/MacOSXだと仮定して、その場でX11を操作したいもの。
TeraTermやターミナルでの操作で行えるものはあるのだが、GUI操作を求める物も実際にあるので。

XDMCP経由でXmingを使っての接続はできるのだが、どうしても落ちてしまうことがたまにある。
MacOSXのX11を使っての場合、アプリケーションによっては起動できないものがあった。

なのでXによらない方法で画面転送を考えた。まぁーつまりはvncの利用である。

Linux側のアプリケーションをクライアント側(win/MacOSX)で動かすことを念頭にします。

Linux側の調整

2つありそう。一つはgnomeディスクトップ環境に付属したvino-serverを使う方法。
ただ、これLinuxのモニター画面をただ飛ばしているだけみたい。まぁーログインしたユーザの画面が飛ぶと
思えばいいのだろう。利用は限定されるがこれはこれでいいものかも。
設定は

  • Linuxにログイン
  • gnomeディスクトップ画面の上部メニューから[システム]->[設定]->[リモート・ディスクトップ]を起動
    2012y08m14d_182602655.png
  • 設定画面が表示されて、
    2012y08m14d_194654543.png
    • 「他のユーザが自分のディスクトップを表示でいる」にチェック。閲覧を可能にさせます。
    • 「他のユーザがデスクトップを操作できる」にチェック。乗っ取られます。
    • セキュリティの「このマシンへの接続を毎回確認する」は、接続があるとLinux側に確認画面を出します。「接続が来てるけどどうする?」って感じで
    • 同じくセキュリティの「パスワードの入力を要求する」は、これを有効にしないとログインしたユーザとパスワードを求められます。別なキーワードでしたい場合はこれで。
    • 「他から接続(略」は別のネットワークセグメントからのアクセスしていいよとの意

ログアウトはしないでください。あくまでもログインしている状態の時に使える画面転送です

MacOSX側で接続操作

Finderから[移動]->[サーバへ接続..]を起動させます。
サーバアドレスに
 vnc://<VNCが稼働しているLinuxサーバ>
を指定して、[接続]ボタンをクリックします。
2012y08m14d_200634542.png
その後、通信が暗号化してないけどいいの?と問われますが、[接続]ボタンをクリックします。
2012y08m14d_200959341.png
すると、先ほどLinux側で定義したキーワードが求められます。先ほどのキーワードを入力して[接続]ボタンをクリックします。
2012y08m14d_201041781.png
キーワードが照合されると、Linuxの画面がMacOSX上に表れます。
こんな感じで。
2012y08m14d_201410920.png
意図的に画面を小さくしていますが、アスペクト比に変化なく拡大縮小が可能でした。

っで、目的のcootは、
2012y08m14d_211644769.png
となって、pymolは、
2012y08m14d_212126227.png
となる。

っが、いずれも重い.....

これはユーザがLinuxにログインしている事が前提。っで、ログインしなくても使えるvncを下記に

別なvnc接続

上記はvino-serverを使った方法。欠点としてvnc接続先、つまりLinuxに予めログインしてる必要がある事。
それ以外の方法を下記に示す。vncを使うのは同じだが、サーバ側(linux側)では
 tigervnc-server
を使います。
インストール方法はlinux側にて

# yum install tigervnc-server

として、vncサーバをインストールして完了。

使い方

1.まず、MacOSXのターミナルを立ち上げてtelnetもしくはsshでlinuxサーバにアクセスします。

mac:~ foo$ ssh -l soft w2
soft@w2's password:
[soft@w2 ~] $

2.(初回のみ)vnc接続用パスワードを定義します

[soft@w2 ~] $ vncpasswd
Password:
Verify:

 *パスワードは6文字。123456な簡単なのでもok

3.ユーザ権限で vnc サーバを起動

[soft@w2 ~] $ vncserver -geometry 1400x1050 :1

 *画面サイズ(-geometry 1400x1050)と画面番号(:1)を入力します
 *firewallに注意。画面番号:1は5901番、:2なら5902番が使われるそうな。

4.MacOSXでvncクライアントによる接続操作
 前述と同じく、Finderから[移動]->[サーバへ接続..]を起動させ、
 サーバアドレスに
 vnc://<VNCが稼働しているLinuxサーバ>:<ポート番号>
 を指定して、[接続]ボタンをクリックします。
 2012y09m06d_223720844.png
 画面共有に暗号化されてないぞと言われますが、そのまま[接続]します。
 2012y09m06d_223859923.png
 パスワード入力が求められますが、2.で定義したパスワードを入力して、[接続]します。
 2012y09m06d_224104347.png
 即座にLinuxの画面になります。ccp4iを動かした画面
 2012y09m06d_225053526.png
 vino-serverよりは快適かも....

終了方法は、リモートのlinux画面を閉じて、
2012y09m06d_225223555.png
次に、Linux側で立ち上げた vncサーバを停止させます。MacOSXのターミナルでlinuxサーバにアクセスして、

$ vncserver -kill :1

として。

以上2つの方式を提示しました。
片方は接続先に誰かが入っている事を前提としています。後者はその前提なく使えます。
後者の場合、既に誰かが画面番号:1を使っているなら、:2を代わりに使い、[サーバへ接続..]ではポート番号5902を使います。
vino-serverよりもtigervnc-serverの方が動きはよかった。

モデリングの際は当然コンソールで作業するでしょうが、ccp4iとかの処理の際、この手のGUI操作に便利かと。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2012-09-06 (木) 22:58:36 (1805d)