yuu_nkjm blog
2011-03-13(Sun) 編集
[Xming][Linux][openSUSE][Windows] Linux上の画面(X11)をWindows上で表示し,操作する
はじめに
本記事で紹介する内容は,Xの転送元と転送先が同一ネットワーク内にある場合に使える.しかし,SSH X11 フォワーディングでXmingにリモートのXを転送する - yuu_nkjm blog(2011-03-20)で紹介する方法はXの転送元と転送先の配置を気にせず使えるので,まずはそちらを試すのがオススメ.
リモートコントロールについて
LinuxをリモートからGUIで操作する場合は,主に3通りの方法があると思う.
- vncを使う: 水銀室 VNC操作 -openSUSE Linuxデスクトップ環境構築-
- RDPを使う: XRDPでLinuxをRDPサーバーにする : アシアルブログ
- X11を使う: xming+puttyでのXの使い方マニュアル
1番目のvncを使う方法は,低速だが一番簡単だった記憶がある.しかし,水銀室 VNC操作 -openSUSE Linuxデスクトップ環境構築-を参考にやってみたが,うまくいかなかった.2番目は,suseのデフォルトのレポジトリにはxrdpが入っていなかったので止めた.以下では,3番目の方法をとる.
Linux側の設定
Linux機には,openSUSE11.2がインストールされている.
yastでの設定
「yast→ネットワークサービス→リモート管理(VNC)」より「リモート管理を許可する」を選択する.
[yast→システム→"/etc/sysconfigエディタ」を選ぶ.ツリーから Desktop → Display manager → DISPLAYMANAGER_REMOTE_ACCESS を選択して,"yes" を選択する.同様に DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN を選択して,"yes" を選択する.
gdmの設定
/etc/gdm/custom.confの以下の項目がtrueになっているか確認する.
[xdmcp] Enable=true
xhostの設定
xhostまたはxauthコマンドでXサーバへのアクセスの許可・不許可を設定する.Windows機のXサーバ(Xming)を使うので,この設定は必要ないかも.
デフォルトでは,ローカルホスト以外からは X サーバにアクセスすることはできない.
xhost +10.200.30.11:0.0として,10.200.30.11:0.0からのアクセスを許可する.
DISPLAY環境変数の設定
操作対象となるLinuxマシンのDISPLAYを"Windows機のIPアドレス:0"とするように.bashrcなどに書く.
export DISPLAY=10.200.30.11:0.0
Windows側の設定
Windows機には,Windows 7がインストールされている.
Xmingのインストール
Xmingをダウンロードし,インストールする.Portable SSH Clientにチェックをする.Xmingをインストールしたディレクトリを覗くと,X0.hostsというファイルがある.この中に,接続を許可するIPアドレスを書いてやる必要がある.0はディスプレイ番号に応じて変更する.
(1)~(3)のいずれかの方法で,Linux機に接続する.
Xmingを使用する
(1) Puttyを使う
三つの方法のなかで一番使いやすいと思う.
- Xming\XLaunch.exeを起動.
- "Display settings"では好きなモードを選ぶ.Display Numberは0で.
- "Session type"では,Start no clientを選ぶ.
- "Additional parameters"はお好きに.無駄なエラーを避けるためにも,初回はClipboardはなしにしても良いかも.
- "Finish configuration"では,設定を保存したければ,Save configurationを押す.完了をクリックすると,Xmingが起動する.
- 先にXmingを起動してから,Puttyでサーバにログインする.この端末を使ってLinux側の操作をする.
- yast2などのGUIベースのアプリケーションをputty上で呼び出すと,Windows内のウィンドウとして立ち上がる.
Windows上にYast2の画面が開いたところ
(2) XmingからXDMCPを使う
Linux機にログインしたデスクトップ全体が必要な時は,(1)ではなくこちらを使う.
- Xming\XLaunch.exeを起動.
- "Display settings"では"Multiple Window"以外を選ぶ.Display Numberは0で.
- "Session type"では,Open session via XDMCPを選ぶ.
- "XDMCP settings"では,Connect to hostに接続先を指定する.
- "Additional parameters"はお好きに.無駄なエラーを避けるためにも,初回はClipboardはなしにしても良いかも.
- "Finish configuration"では,設定を保存したければ,Save configurationを押す.完了をクリックすると,Xmingが起動する.
- ログイン画面が正常に表示された.ユーザ名とパスワードを入力したが,なぜかログインできなかった./home/usera/.xsession-errorsを見てみると,xterm Xt error: Can't open display: ::ffff:192.168.0.111:0というエラーが見つかった.IPv6が悪さをしているようだ.
-
Re: OpenSUSE11.2 でxdmcpが動かない - opensuse-ja.opensuse.org - ArchiveOrangeを参考に, /etc/sysctl.confに以下の変更を加え,IPv6をオフにした.
もう一度,(2)の最初から行うが,やはりログイン後すすまない.今度は,.xsession-errorsには"Fatal IO error 11 (Resource temporarily unavailable) on X server"というエラーが出ていた.しかし,(2)でXmingのウィンドウを開き,その後そのウィンドウを閉じ,さらに(1)の様にStart no clientでXmingを起動すると,XDMCPでログインしたデスクトップが表示された.(1)さえ動けばやりたいことはできるから,この方法はこんなとこでいいや.net.ipv6.conf.all.disable_ipv6 = 1
(3) Xmingから呼び出したxtermを使う
plinkの呼び出し方がよく分からないし,xtermよりputtyの方が好きなので,殆ど使わない.これを使うぐらいなら(1)を使う.
- 普段,Puttyごった煮版のputty.iniに設定を書き出すタイプのplinkを使っているので,Xmingのディレクトリにごった煮版のplinkとputty.iniをコピーする.Xming/putty.confに使用できるplinkが指定できそうだが不明.
- Xming\XLaunch.exeを起動.
- "Display settings"では好きなモードを選ぶ.Display Numberは0で.
- "Session type"では,Start a programを選ぶ.
- "Start program"では,Using PuTTY(plink.exe)にチェックする.接続先とログインユーザを入力する欄があるが,接続先を入れるとputtyのプロファイルが読まれる様だ.
- "Additional parameters"はお好きに.無駄なエラーを避けるためにも,初回はClipboardはなしにしても良いかも.
- "Finish configuration"では,設定を保存したければ,Save configurationを押す.完了をクリックすると,Xmingが起動する.
- Xmingがplinkを使って接続先のxtermを開いてくれる様だ.xming+puttyでのXの使い方マニュアルを参考にした.この方法だと接続にplinkは使うけど,puttyのコンソールは使わず,xming経由(?)で呼び出したxtermを使う事になる